|
@@ -0,0 +1,175 @@
|
|
|
|
+import unittest
|
|
|
|
+
|
|
|
|
+from kalliope.core.NeuronParameterLoader import NeuronParameterLoader
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class TestNeuronParameterLoader(unittest.TestCase):
|
|
|
|
+
|
|
|
|
+ def test_get_parameters(self):
|
|
|
|
+
|
|
|
|
+ synapse_order = "this is the {{ sentence }}"
|
|
|
|
+ user_order = "this is the value"
|
|
|
|
+ expected_result = {'sentence': 'value'}
|
|
|
|
+
|
|
|
|
+ self.assertEquals(NeuronParameterLoader.get_parameters(synapse_order=synapse_order, user_order=user_order),
|
|
|
|
+ expected_result,
|
|
|
|
+ "Fail to retrieve 'the params' of the synapse_order from the order")
|
|
|
|
+
|
|
|
|
+ # Multiple match
|
|
|
|
+ synapse_order = "this is the {{ sentence }}"
|
|
|
|
+
|
|
|
|
+ user_order = "this is the value with multiple words"
|
|
|
|
+ expected_result = {'sentence': 'value with multiple words'}
|
|
|
|
+
|
|
|
|
+ self.assertEqual(NeuronParameterLoader.get_parameters(synapse_order=synapse_order, user_order=user_order),
|
|
|
|
+ expected_result,
|
|
|
|
+ "Fail to retrieve the 'multiple words params' of the synapse_order from the order")
|
|
|
|
+
|
|
|
|
+ # Multiple params
|
|
|
|
+ synapse_order = "this is the {{ sentence }} with multiple {{ params }}"
|
|
|
|
+
|
|
|
|
+ user_order = "this is the value with multiple words"
|
|
|
|
+ expected_result = {'sentence': 'value',
|
|
|
|
+ 'params':'words'}
|
|
|
|
+
|
|
|
|
+ self.assertEqual(NeuronParameterLoader.get_parameters(synapse_order=synapse_order, user_order=user_order),
|
|
|
|
+ expected_result,
|
|
|
|
+ "Fail to retrieve the 'multiple params' of the synapse_order from the order")
|
|
|
|
+
|
|
|
|
+ # Multiple params with multiple words
|
|
|
|
+ synapse_order = "this is the {{ sentence }} with multiple {{ params }}"
|
|
|
|
+
|
|
|
|
+ user_order = "this is the multiple values with multiple values as words"
|
|
|
|
+ expected_result = {'sentence': 'multiple values',
|
|
|
|
+ 'params': 'values as words'}
|
|
|
|
+
|
|
|
|
+ self.assertEqual(NeuronParameterLoader.get_parameters(synapse_order=synapse_order, user_order=user_order),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ # params at the begining of the sentence
|
|
|
|
+ synapse_order = "{{ sentence }} this is the sentence"
|
|
|
|
+
|
|
|
|
+ user_order = "hello world this is the multiple values with multiple values as words"
|
|
|
|
+ expected_result = {'sentence': 'hello world'}
|
|
|
|
+
|
|
|
|
+ self.assertEqual(NeuronParameterLoader.get_parameters(synapse_order=synapse_order, user_order=user_order),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ # all of the sentence is a variable
|
|
|
|
+ synapse_order = "{{ sentence }}"
|
|
|
|
+
|
|
|
|
+ user_order = "this is the all sentence is a variable"
|
|
|
|
+ expected_result = {'sentence': 'this is the all sentence is a variable'}
|
|
|
|
+
|
|
|
|
+ self.assertEqual(NeuronParameterLoader.get_parameters(synapse_order=synapse_order, user_order=user_order),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ def test_associate_order_params_to_values(self):
|
|
|
|
+ ##
|
|
|
|
+ # Testing the brackets position behaviour
|
|
|
|
+ ##
|
|
|
|
+
|
|
|
|
+ # Success
|
|
|
|
+ order_brain = "This is the {{ variable }}"
|
|
|
|
+ order_user = "This is the value"
|
|
|
|
+ expected_result = {'variable': 'value'}
|
|
|
|
+ self.assertEqual(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ # Success
|
|
|
|
+ order_brain = "This is the {{variable }}"
|
|
|
|
+ order_user = "This is the value"
|
|
|
|
+ expected_result = {'variable': 'value'}
|
|
|
|
+ self.assertEqual(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ # Success
|
|
|
|
+ order_brain = "This is the {{ variable}}"
|
|
|
|
+ order_user = "This is the value"
|
|
|
|
+ expected_result = {'variable': 'value'}
|
|
|
|
+ self.assertEqual(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ # Success
|
|
|
|
+ order_brain = "This is the {{variable}}"
|
|
|
|
+ order_user = "This is the value"
|
|
|
|
+ expected_result = {'variable': 'value'}
|
|
|
|
+ self.assertEqual(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ # Fail
|
|
|
|
+ order_brain = "This is the {variable}"
|
|
|
|
+ order_user = "This is the value"
|
|
|
|
+ expected_result = {'variable': 'value'}
|
|
|
|
+ self.assertNotEquals(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ # Fail
|
|
|
|
+ order_brain = "This is the { variable}}"
|
|
|
|
+ order_user = "This is the value"
|
|
|
|
+ expected_result = {'variable': 'value'}
|
|
|
|
+ self.assertNotEquals(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ ##
|
|
|
|
+ # Testing the brackets position in the sentence
|
|
|
|
+ ##
|
|
|
|
+
|
|
|
|
+ # Success
|
|
|
|
+ order_brain = "{{ variable }} This is the"
|
|
|
|
+ order_user = "value This is the"
|
|
|
|
+ expected_result = {'variable': 'value'}
|
|
|
|
+ self.assertEqual(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ # Success
|
|
|
|
+ order_brain = "This is {{ variable }} the"
|
|
|
|
+ order_user = " This is value the"
|
|
|
|
+ expected_result = {'variable': 'value'}
|
|
|
|
+ self.assertEqual(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ ##
|
|
|
|
+ # Testing multi variables
|
|
|
|
+ ##
|
|
|
|
+
|
|
|
|
+ # Success
|
|
|
|
+ order_brain = "This is {{ variable }} the {{ variable2 }}"
|
|
|
|
+ order_user = "This is value the value2"
|
|
|
|
+ expected_result = {'variable': 'value',
|
|
|
|
+ 'variable2': 'value2'}
|
|
|
|
+ self.assertEqual(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ ##
|
|
|
|
+ # Testing multi words in variable
|
|
|
|
+ ##
|
|
|
|
+
|
|
|
|
+ # Success
|
|
|
|
+ order_brain = "This is the {{ variable }}"
|
|
|
|
+ order_user = "This is the value with multiple words"
|
|
|
|
+ expected_result = {'variable': 'value with multiple words'}
|
|
|
|
+ self.assertEqual(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ # Success
|
|
|
|
+ order_brain = "This is the {{ variable }} and {{ variable2 }}"
|
|
|
|
+ order_user = "This is the value with multiple words and second value multiple"
|
|
|
|
+ expected_result = {'variable': 'value with multiple words',
|
|
|
|
+ 'variable2': 'second value multiple'}
|
|
|
|
+ self.assertEqual(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+ ##
|
|
|
|
+ # Specific Behaviour
|
|
|
|
+ ##
|
|
|
|
+
|
|
|
|
+ # Upper/Lower case
|
|
|
|
+ order_brain = "This Is The {{ variable }}"
|
|
|
|
+ order_user = "ThiS is tHe VAlue"
|
|
|
|
+ expected_result = {'variable': 'VAlue'}
|
|
|
|
+ self.assertEqual(NeuronParameterLoader._associate_order_params_to_values(order_user, order_brain),
|
|
|
|
+ expected_result)
|
|
|
|
+
|
|
|
|
+if __name__ == '__main__':
|
|
|
|
+ unittest.main()
|