123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- import unittest
- import mock
- from kalliope.core import LIFOBuffer
- from kalliope.core.Models import Brain, Signal
- from kalliope.core.Models.MatchedSynapse import MatchedSynapse
- from kalliope.core.Models.Settings import Settings
- from kalliope.core.SynapseLauncher import SynapseLauncher, SynapseNameNotFound
- from kalliope.core.Models import Neuron
- from kalliope.core.Models import Synapse
- class TestSynapseLauncher(unittest.TestCase):
- """
- Test the class SynapseLauncher
- """
- def setUp(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 = 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")
- self.synapse1 = Synapse(name="Synapse1", neurons=[neuron1, neuron2], signals=[signal1])
- self.synapse2 = Synapse(name="Synapse2", neurons=[neuron3, neuron4], signals=[signal2])
- self.synapse3 = Synapse(name="Synapse3", neurons=[neuron2, neuron4], signals=[signal3])
- self.all_synapse_list = [self.synapse1,
- self.synapse2,
- self.synapse3]
- self.brain_test = Brain(synapses=self.all_synapse_list)
- self.settings_test = Settings(default_synapse="Synapse3")
- # clean the LiFO
- LIFOBuffer.lifo_list = list()
- def test_start_synapse_by_name(self):
- # existing synapse in the brain
- with mock.patch("kalliope.core.LIFOBuffer.execute"):
- should_be_created_matched_synapse = MatchedSynapse(matched_synapse=self.synapse1)
- SynapseLauncher.start_synapse_by_name("Synapse1", brain=self.brain_test)
- # we expect that the lifo has been loaded with the synapse to run
- expected_result = [[should_be_created_matched_synapse]]
- self.assertEqual(expected_result, LIFOBuffer.lifo_list)
- # we expect that the lifo has been loaded with the synapse to run and overwritten parameters
- # clean the LiFO
- LIFOBuffer.lifo_list = list()
- overriding_param = {
- "val1": "val"
- }
- SynapseLauncher.start_synapse_by_name("Synapse1", brain=self.brain_test,
- overriding_parameter_dict=overriding_param)
- should_be_created_matched_synapse = MatchedSynapse(matched_synapse=self.synapse1,
- overriding_parameter=overriding_param)
- # we expect that the lifo has been loaded with the synapse to run
- expected_result = [[should_be_created_matched_synapse]]
- self.assertEqual(expected_result, LIFOBuffer.lifo_list)
- # non existing synapse in the brain
- with self.assertRaises(SynapseNameNotFound):
- SynapseLauncher.start_synapse_by_name("not_existing", brain=self.brain_test)
- def test_run_matching_synapse_from_order(self):
- # ------------------
- # test_match_synapse1
- # ------------------
- with mock.patch("kalliope.core.LIFOBuffer.execute"):
- order_to_match = "this is the sentence"
- should_be_created_matched_synapse = MatchedSynapse(matched_synapse=self.synapse1,
- user_order=order_to_match,
- matched_order="this is the sentence")
- expected_result = [[should_be_created_matched_synapse]]
- SynapseLauncher.run_matching_synapse_from_order(order_to_match,
- brain=self.brain_test,
- settings=self.settings_test)
- self.assertEqual(expected_result, LIFOBuffer.lifo_list)
- # -------------------------
- # test_match_synapse1_and_2
- # -------------------------
- # clean LIFO
- LIFOBuffer.lifo_list = list()
- with mock.patch("kalliope.core.LIFOBuffer.execute"):
- order_to_match = "this is the second sentence"
- should_be_created_matched_synapse1 = MatchedSynapse(matched_synapse=self.synapse1,
- user_order=order_to_match,
- matched_order="this is the sentence")
- should_be_created_matched_synapse2 = MatchedSynapse(matched_synapse=self.synapse2,
- user_order=order_to_match,
- matched_order="this is the second sentence")
- expected_result = [[should_be_created_matched_synapse1, should_be_created_matched_synapse2]]
- SynapseLauncher.run_matching_synapse_from_order(order_to_match,
- brain=self.brain_test,
- settings=self.settings_test)
- self.assertEqual(expected_result, LIFOBuffer.lifo_list)
- # -------------------------
- # test_match_default_synapse
- # -------------------------
- # clean LIFO
- LIFOBuffer.lifo_list = list()
- with mock.patch("kalliope.core.LIFOBuffer.execute"):
- order_to_match = "not existing sentence"
- should_be_created_matched_synapse = MatchedSynapse(matched_synapse=self.synapse3,
- user_order=order_to_match,
- matched_order=None)
- expected_result = [[should_be_created_matched_synapse]]
- SynapseLauncher.run_matching_synapse_from_order(order_to_match,
- brain=self.brain_test,
- settings=self.settings_test)
- self.assertEqual(expected_result, LIFOBuffer.lifo_list)
- # -------------------------
- # test_no_match_and_no_default_synapse
- # -------------------------
- # clean LIFO
- LIFOBuffer.lifo_list = list()
- with mock.patch("kalliope.core.LIFOBuffer.execute"):
- order_to_match = "not existing sentence"
- new_settings = Settings()
- expected_result = [[]]
- SynapseLauncher.run_matching_synapse_from_order(order_to_match,
- brain=self.brain_test,
- settings=new_settings)
- self.assertEqual(expected_result, LIFOBuffer.lifo_list)
|