123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import unittest
- from kalliope.core.Models import Brain
- from kalliope.core.Models import Neuron
- from kalliope.core.Models import Order
- from kalliope.core.Models import Synapse
- from kalliope.core.Models.MatchedSynapse import MatchedSynapse
- from kalliope.core.OrderAnalyser import OrderAnalyser
- class TestOrderAnalyser(unittest.TestCase):
- """Test case for the OrderAnalyser Class"""
- def setUp(self):
- pass
- def test_get_matching_synapse(self):
- # Init
- neuron1 = Neuron(name='neurone1', parameters={'var1': 'val1'})
- neuron2 = Neuron(name='neurone2', parameters={'var2': 'val2'})
- neuron3 = Neuron(name='neurone3', parameters={'var3': 'val3'})
- neuron4 = Neuron(name='neurone4', parameters={'var4': 'val4'})
- signal1 = Order(sentence="this is the sentence")
- signal2 = Order(sentence="this is the second sentence")
- signal3 = Order(sentence="that is part of the third sentence")
- synapse1 = Synapse(name="Synapse1", neurons=[neuron1, neuron2], signals=[signal1])
- synapse2 = Synapse(name="Synapse2", neurons=[neuron3, neuron4], signals=[signal2])
- synapse3 = Synapse(name="Synapse3", neurons=[neuron2, neuron4], signals=[signal3])
- all_synapse_list = [synapse1,
- synapse2,
- synapse3]
- br = Brain(synapses=all_synapse_list)
- # TEST1: should return synapse1
- spoken_order = "this is the sentence"
- # Create the matched synapse
- matched_synapse_1 = MatchedSynapse(matched_synapse=synapse1,
- matched_order=spoken_order,
- user_order=spoken_order)
- matched_synapses = OrderAnalyser.get_matching_synapse(order=spoken_order, brain=br)
- self.assertEqual(len(matched_synapses), 1)
- self.assertTrue(matched_synapse_1 in matched_synapses)
- # TEST2: should return synapse1 and 2
- spoken_order = "this is the second sentence"
- matched_synapses = OrderAnalyser.get_matching_synapse(order=spoken_order, brain=br)
- self.assertEqual(len(matched_synapses), 2)
- self.assertTrue(synapse1, synapse2 in matched_synapses)
- # TEST3: should empty
- spoken_order = "not a valid order"
- matched_synapses = OrderAnalyser.get_matching_synapse(order=spoken_order, brain=br)
- self.assertFalse(matched_synapses)
- def test_spelt_order_match_brain_order_via_table(self):
- order_to_test = "this is the order"
- sentence_to_test = "this is the order"
- # Success
- self.assertTrue(OrderAnalyser.spelt_order_match_brain_order_via_table(order_to_test, sentence_to_test))
- # Failure
- sentence_to_test = "unexpected sentence"
- self.assertFalse(OrderAnalyser.spelt_order_match_brain_order_via_table(order_to_test, sentence_to_test))
- # Upper/lower cases
- sentence_to_test = "THIS is THE order"
- self.assertTrue(OrderAnalyser.spelt_order_match_brain_order_via_table(order_to_test, sentence_to_test))
- def test_get_split_order_without_bracket(self):
- # Success
- order_to_test = "this is the order"
- expected_result = ["this", "is", "the", "order"]
- self.assertEqual(OrderAnalyser._get_split_order_without_bracket(order_to_test), expected_result,
- "No brackets Fails to return the expected list")
- order_to_test = "this is the {{ order }}"
- expected_result = ["this", "is", "the"]
- self.assertEqual(OrderAnalyser._get_split_order_without_bracket(order_to_test), expected_result,
- "With spaced brackets Fails to return the expected list")
- order_to_test = "this is the {{order }}" # left bracket without space
- expected_result = ["this", "is", "the"]
- self.assertEqual(OrderAnalyser._get_split_order_without_bracket(order_to_test), expected_result,
- "Left brackets Fails to return the expected list")
- order_to_test = "this is the {{ order}}" # right bracket without space
- expected_result = ["this", "is", "the"]
- self.assertEqual(OrderAnalyser._get_split_order_without_bracket(order_to_test), expected_result,
- "Right brackets Fails to return the expected list")
- order_to_test = "this is the {{order}}" # bracket without space
- expected_result = ["this", "is", "the"]
- self.assertEqual(OrderAnalyser._get_split_order_without_bracket(order_to_test), expected_result,
- "No space brackets Fails to return the expected list")
- def test_counter_subset(self):
- list1 = ("word1", "word2")
- list2 = ("word3", "word4")
- list3 = ("word1", "word2", "word3", "word4")
- self.assertFalse(OrderAnalyser._counter_subset(list1, list2))
- self.assertTrue(OrderAnalyser._counter_subset(list1, list3))
- self.assertTrue(OrderAnalyser._counter_subset(list2, list3))
- if __name__ == '__main__':
- unittest.main()
|