test_geolocalisation.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import unittest
  2. from kalliope.core.SignalModule import MissingParameter
  3. from kalliope.core.Models import Brain
  4. from kalliope.core.Models import Neuron
  5. from kalliope.core.Models import Synapse
  6. from kalliope.core.Models.Signal import Signal
  7. from kalliope.signals.geolocation.geolocation import Geolocation
  8. class Test_Geolocation(unittest.TestCase):
  9. def test_check_geolocation_valid(self):
  10. expected_parameters = ["latitude", "longitude", "radius"]
  11. self.assertTrue(Geolocation.check_parameters(expected_parameters))
  12. def test_check_geolocation_valid_with_other(self):
  13. expected_parameters = ["latitude", "longitude", "radius", "kalliope", "random"]
  14. self.assertTrue(Geolocation.check_parameters(expected_parameters))
  15. def test_check_geolocation_no_radius(self):
  16. expected_parameters = ["latitude", "longitude", "kalliope", "random"]
  17. self.assertFalse(Geolocation.check_parameters(expected_parameters))
  18. def test_check_geolocation_no_latitude(self):
  19. expected_parameters = ["longitude", "radius", "kalliope", "random"]
  20. self.assertFalse(Geolocation.check_parameters(expected_parameters))
  21. def test_check_geolocation_no_longitude(self):
  22. expected_parameters = ["latitude", "radius", "kalliope", "random"]
  23. self.assertFalse(Geolocation.check_parameters(expected_parameters))
  24. def test_get_list_synapse_with_geolocation(self):
  25. # Init
  26. neuron1 = Neuron(name='neurone1', parameters={'var1': 'val1'})
  27. neuron2 = Neuron(name='neurone2', parameters={'var2': 'val2'})
  28. neuron3 = Neuron(name='neurone3', parameters={'var3': 'val3'})
  29. neuron4 = Neuron(name='neurone4', parameters={'var4': 'val4'})
  30. fake_geolocation_parameters = {
  31. "latitude": 66,
  32. "longitude": 66,
  33. "radius": 66,
  34. }
  35. signal1 = Signal(name="geolocation", parameters=fake_geolocation_parameters)
  36. signal2 = Signal(name="order", parameters="this is the second sentence")
  37. synapse1 = Synapse(name="Synapse1", neurons=[neuron1, neuron2], signals=[signal1])
  38. synapse2 = Synapse(name="Synapse2", neurons=[neuron3, neuron4], signals=[signal2])
  39. synapses_list = [synapse1, synapse2]
  40. br = Brain(synapses=synapses_list)
  41. expected_list = [synapse1]
  42. # Stubbing the Geolocation Signal with the brain
  43. geo = Geolocation()
  44. geo.brain = br
  45. geo.run()
  46. self.assertEqual(expected_list, geo.list_synapses_with_geolocalion)
  47. def test_get_list_synapse_with_raise_missing_parameters(self):
  48. # Init
  49. neuron1 = Neuron(name='neurone1', parameters={'var1': 'val1'})
  50. neuron2 = Neuron(name='neurone2', parameters={'var2': 'val2'})
  51. neuron3 = Neuron(name='neurone3', parameters={'var3': 'val3'})
  52. neuron4 = Neuron(name='neurone4', parameters={'var4': 'val4'})
  53. fake_geolocation_parameters = {
  54. "longitude": 66,
  55. "radius": 66,
  56. }
  57. signal1 = Signal(name="geolocation", parameters=fake_geolocation_parameters)
  58. signal2 = Signal(name="order", parameters="this is the second sentence")
  59. synapse1 = Synapse(name="Synapse1", neurons=[neuron1, neuron2], signals=[signal1])
  60. synapse2 = Synapse(name="Synapse2", neurons=[neuron3, neuron4], signals=[signal2])
  61. synapses_list = [synapse1, synapse2]
  62. br = Brain(synapses=synapses_list)
  63. # Stubbing the Geolocation Signal with the brain
  64. geo = Geolocation()
  65. geo.brain = br
  66. with self.assertRaises(MissingParameter):
  67. geo.run()
  68. if __name__ == '__main__':
  69. unittest.main()