|
@@ -26,14 +26,34 @@ class TestOrderAnalyser(unittest.TestCase):
|
|
|
signal1 = Signal(name="order", parameters="this is the sentence")
|
|
|
signal2 = Signal(name="order", parameters="this is the second sentence")
|
|
|
signal3 = Signal(name="order", parameters="that is part of the third sentence")
|
|
|
+ signal4 = Signal(name="order", parameters={"matching-type": "strict",
|
|
|
+ "text": "that is part of the fourth sentence"})
|
|
|
+ signal5 = Signal(name="order", parameters={"matching-type": "ordered-strict",
|
|
|
+ "text": "sentence 5 with specific order"})
|
|
|
+ signal6 = Signal(name="order", parameters={"matching-type": "normal",
|
|
|
+ "text": "matching type normal"})
|
|
|
+ signal7 = Signal(name="order", parameters={"matching-type": "non-existing",
|
|
|
+ "text": "matching type non existing"})
|
|
|
+ signal8 = Signal(name="order", parameters={"matching-type": "non-existing",
|
|
|
+ "non-existing-parameter": "will not match order"})
|
|
|
|
|
|
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])
|
|
|
+ synapse4 = Synapse(name="Synapse4", neurons=[neuron2, neuron4], signals=[signal4])
|
|
|
+ synapse5 = Synapse(name="Synapse5", neurons=[neuron1, neuron2], signals=[signal5])
|
|
|
+ synapse6 = Synapse(name="Synapse6", neurons=[neuron1, neuron2], signals=[signal6])
|
|
|
+ synapse7 = Synapse(name="Synapse6", neurons=[neuron1, neuron2], signals=[signal7])
|
|
|
+ synapse8 = Synapse(name="Synapse6", neurons=[neuron1, neuron2], signals=[signal8])
|
|
|
|
|
|
all_synapse_list = [synapse1,
|
|
|
synapse2,
|
|
|
- synapse3]
|
|
|
+ synapse3,
|
|
|
+ synapse4,
|
|
|
+ synapse5,
|
|
|
+ synapse6,
|
|
|
+ synapse7,
|
|
|
+ synapse8]
|
|
|
|
|
|
br = Brain(synapses=all_synapse_list)
|
|
|
|
|
@@ -41,39 +61,70 @@ class TestOrderAnalyser(unittest.TestCase):
|
|
|
spoken_order = "this is the sentence"
|
|
|
|
|
|
|
|
|
- matched_synapse_1 = MatchedSynapse(matched_synapse=synapse1,
|
|
|
- matched_order=spoken_order,
|
|
|
- user_order=spoken_order)
|
|
|
+ expected_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)
|
|
|
+ self.assertTrue(expected_matched_synapse_1 in matched_synapses)
|
|
|
+
|
|
|
+
|
|
|
+ spoken_order = "matching type normal"
|
|
|
+ expected_matched_synapse_5 = MatchedSynapse(matched_synapse=synapse6,
|
|
|
+ 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(expected_matched_synapse_5 in matched_synapses)
|
|
|
|
|
|
|
|
|
spoken_order = "this is the second sentence"
|
|
|
+ expected_matched_synapse_2 = 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), 2)
|
|
|
- self.assertTrue(synapse1, synapse2 in matched_synapses)
|
|
|
+ self.assertTrue(expected_matched_synapse_1, expected_matched_synapse_2 in matched_synapses)
|
|
|
|
|
|
|
|
|
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"
|
|
|
+
|
|
|
+ spoken_order = "that is part of the fourth sentence"
|
|
|
+ expected_matched_synapse_3 = MatchedSynapse(matched_synapse=synapse4,
|
|
|
+ matched_order=spoken_order,
|
|
|
+ user_order=spoken_order)
|
|
|
+ matched_synapses = OrderAnalyser.get_matching_synapse(order=spoken_order, brain=br)
|
|
|
+ self.assertTrue(expected_matched_synapse_3 in matched_synapses)
|
|
|
|
|
|
-
|
|
|
- self.assertTrue(OrderAnalyser.spelt_order_match_brain_order_via_table(order_to_test, sentence_to_test))
|
|
|
+ spoken_order = "that is part of the fourth sentence with more word"
|
|
|
+ matched_synapses = OrderAnalyser.get_matching_synapse(order=spoken_order, brain=br)
|
|
|
+ self.assertFalse(matched_synapses)
|
|
|
+
|
|
|
+
|
|
|
+ spoken_order = "sentence 5 with specific order"
|
|
|
+ expected_matched_synapse_4 = MatchedSynapse(matched_synapse=synapse5,
|
|
|
+ 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(expected_matched_synapse_4 in matched_synapses)
|
|
|
|
|
|
-
|
|
|
- sentence_to_test = "unexpected sentence"
|
|
|
- self.assertFalse(OrderAnalyser.spelt_order_match_brain_order_via_table(order_to_test, sentence_to_test))
|
|
|
+ spoken_order = "order specific with 5 sentence"
|
|
|
+ matched_synapses = OrderAnalyser.get_matching_synapse(order=spoken_order, brain=br)
|
|
|
+ self.assertFalse(matched_synapses)
|
|
|
|
|
|
-
|
|
|
- sentence_to_test = "THIS is THE order"
|
|
|
- self.assertTrue(OrderAnalyser.spelt_order_match_brain_order_via_table(order_to_test, sentence_to_test))
|
|
|
+
|
|
|
+ spoken_order = "matching type non existing"
|
|
|
+ expected_matched_synapse_5 = MatchedSynapse(matched_synapse=synapse7,
|
|
|
+ matched_order=spoken_order,
|
|
|
+ user_order=spoken_order)
|
|
|
+ matched_synapses = OrderAnalyser.get_matching_synapse(order=spoken_order, brain=br)
|
|
|
+ self.assertTrue(expected_matched_synapse_5 in matched_synapses)
|
|
|
|
|
|
def test_get_split_order_without_bracket(self):
|
|
|
|
|
@@ -102,15 +153,143 @@ class TestOrderAnalyser(unittest.TestCase):
|
|
|
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")
|
|
|
+ def test_is_normal_matching(self):
|
|
|
+
|
|
|
+ test_order = "expected order in the signal"
|
|
|
+ test_signal = "expected order in the signal"
|
|
|
+
|
|
|
+ self.assertTrue(OrderAnalyser.is_normal_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "this is an order"
|
|
|
+ test_signal = "expected order in the signal"
|
|
|
+
|
|
|
+ self.assertFalse(OrderAnalyser.is_normal_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "expected order in the signal with more word"
|
|
|
+ test_signal = "expected order in the signal"
|
|
|
+
|
|
|
+ self.assertTrue(OrderAnalyser.is_normal_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "expected order in the signal"
|
|
|
+ test_signal = "expected order in the signal {{ variable }}"
|
|
|
+
|
|
|
+ self.assertTrue(OrderAnalyser.is_normal_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "expected order in the signal variable_to_catch"
|
|
|
+ test_signal = "expected order in the signal {{ variable }}"
|
|
|
+
|
|
|
+ self.assertTrue(OrderAnalyser.is_normal_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
|
|
|
- self.assertFalse(OrderAnalyser._counter_subset(list1, list2))
|
|
|
- self.assertTrue(OrderAnalyser._counter_subset(list1, list3))
|
|
|
- self.assertTrue(OrderAnalyser._counter_subset(list2, list3))
|
|
|
+
|
|
|
+ test_order = "expected order in the signal variable_to_catch other word"
|
|
|
+ test_signal = "expected order in the signal {{ variable }} other word"
|
|
|
+
|
|
|
+ self.assertTrue(OrderAnalyser.is_normal_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+ def test_is_strict_matching(self):
|
|
|
+
|
|
|
+ test_order = "expected order in the signal"
|
|
|
+ test_signal = "expected order in the signal"
|
|
|
+
|
|
|
+ self.assertTrue(OrderAnalyser.is_strict_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "expected order in the signal with more word"
|
|
|
+ test_signal = "expected order in the signal"
|
|
|
+
|
|
|
+ self.assertFalse(OrderAnalyser.is_strict_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "expected order in the signal variable_to_catch"
|
|
|
+ test_signal = "expected order in the signal {{ variable }}"
|
|
|
+
|
|
|
+ self.assertTrue(OrderAnalyser.is_strict_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "expected order in the signal variable_to_catch other word"
|
|
|
+ test_signal = "expected order in the signal {{ variable }} other word"
|
|
|
+
|
|
|
+ self.assertTrue(OrderAnalyser.is_strict_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "expected order in the signal variable_to_catch other word and more word"
|
|
|
+ test_signal = "expected order in the signal {{ variable }} other word"
|
|
|
+
|
|
|
+ self.assertFalse(OrderAnalyser.is_strict_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+ def test_ordered_strict_matching(self):
|
|
|
+
|
|
|
+ test_order = "expected order in the signal"
|
|
|
+ test_signal = "expected order in the signal"
|
|
|
+ self.assertTrue(OrderAnalyser.is_ordered_strict_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "signal the in order expected"
|
|
|
+ test_signal = "expected order in the signal"
|
|
|
+ self.assertFalse(OrderAnalyser.is_ordered_strict_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "expected order in the signal variable_to_catch"
|
|
|
+ test_signal = "expected order in the signal {{ variable }}"
|
|
|
+
|
|
|
+ self.assertTrue(OrderAnalyser.is_ordered_strict_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "expected order in the signal variable_to_catch with word"
|
|
|
+ test_signal = "expected order in the signal {{ variable }} with word"
|
|
|
+
|
|
|
+ self.assertTrue(OrderAnalyser.is_ordered_strict_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "signal the in order expected"
|
|
|
+ test_signal = "expected order in the signal {{ variable }}"
|
|
|
+ self.assertFalse(OrderAnalyser.is_ordered_strict_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "word expected order in the signal variable_to_catch with"
|
|
|
+ test_signal = "expected order in the signal {{ variable }} with word"
|
|
|
+
|
|
|
+ self.assertFalse(OrderAnalyser.is_ordered_strict_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+ def test_is_order_matching(self):
|
|
|
+
|
|
|
+ test_order = "expected order in the signal"
|
|
|
+ test_signal = "expected order in the signal"
|
|
|
+ self.assertTrue(OrderAnalyser.is_order_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
+
|
|
|
+
|
|
|
+ test_order = "Expected Order In The Signal"
|
|
|
+ test_signal = "expected order in the signal"
|
|
|
+ self.assertTrue(OrderAnalyser.is_order_matching(user_order=test_order,
|
|
|
+ signal_order=test_signal))
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
unittest.main()
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|