Browse Source

tests pheromones: test appose

Bastien Sevajol 9 years ago
parent
commit
3f530bd416
2 changed files with 42 additions and 4 deletions
  1. 3 0
      TODO
  2. 39 4
      intelligine/tests/simulation/pheromone/TestDirection.py

+ 3 - 0
TODO View File

1
 TODO:
1
 TODO:
2
  * Tester les Action et classes de pheromones
2
  * Tester les Action et classes de pheromones
3
+   * test des directions (a partir d'une pheromone et vers une pheromone)
4
+   * Changement de mode (explo;go home)
5
+
3
  * Nettoyer le code des pheromones: Refactoriser
6
  * Nettoyer le code des pheromones: Refactoriser
4
  * Mechanisme qui donne les pheromones arround
7
  * Mechanisme qui donne les pheromones arround
5
  * Mettre au propre la logique qui dit que l'objet peut etre pose (meme type si larve; zone de depot si Food, etc)
8
  * Mettre au propre la logique qui dit que l'objet peut etre pose (meme type si larve; zone de depot si Food, etc)

+ 39 - 4
intelligine/tests/simulation/pheromone/TestDirection.py View File

30
             self._context.pheromones().set_pheromones(position, pheromones[position])
30
             self._context.pheromones().set_pheromones(position, pheromones[position])
31
 
31
 
32
     def _test_direction_for_point(self, pheromones, direction, pheromone_type=PHEROMON_DIR_EXPLO,
32
     def _test_direction_for_point(self, pheromones, direction, pheromone_type=PHEROMON_DIR_EXPLO,
33
-                                  reference_point=_p(CENTER)):
33
+                                  reference_point=_p(CENTER), re_init=True):
34
         """
34
         """
35
 
35
 
36
         :param pheromones:
36
         :param pheromones:
39
         :param reference_point:
39
         :param reference_point:
40
         :return:
40
         :return:
41
         """
41
         """
42
-        self._set_up_pheromones(pheromones)
42
+        self._set_up_pheromones(pheromones, re_init=re_init)
43
         direction_tested = DirectionPheromone.get_direction_for_point(self._context, reference_point, pheromone_type)
43
         direction_tested = DirectionPheromone.get_direction_for_point(self._context, reference_point, pheromone_type)
44
         self.assertEqual(direction, direction_tested, "Direction must be %s" % direction)
44
         self.assertEqual(direction, direction_tested, "Direction must be %s" % direction)
45
 
45
 
46
     def _test_direction_for_points(self, pheromones, direction, pheromone_type=PHEROMON_DIR_EXPLO,
46
     def _test_direction_for_points(self, pheromones, direction, pheromone_type=PHEROMON_DIR_EXPLO,
47
-                                   reference_point=_p(CENTER)):
47
+                                   reference_point=_p(CENTER), re_init=True):
48
         """
48
         """
49
 
49
 
50
         :param pheromones:
50
         :param pheromones:
53
         :param reference_point:
53
         :param reference_point:
54
         :return:
54
         :return:
55
         """
55
         """
56
-        self._set_up_pheromones(pheromones)
56
+        self._set_up_pheromones(pheromones, re_init=re_init)
57
         around_points = self._context.get_arround_points_of(reference_point)
57
         around_points = self._context.get_arround_points_of(reference_point)
58
         direction_tested = DirectionPheromone.get_best_pheromone_direction_in(self._context,
58
         direction_tested = DirectionPheromone.get_best_pheromone_direction_in(self._context,
59
                                                                               reference_point,
59
                                                                               reference_point,
200
             }, -1))
200
             }, -1))
201
         except NoPheromone:
201
         except NoPheromone:
202
             self.assertTrue(True)
202
             self.assertTrue(True)
203
+
204
+    def test_appose(self):
205
+        self._test_point_raise_no_pheromone()
206
+        self._test_points_raise_no_pheromone()
207
+
208
+        # Une pheromone au centre
209
+        DirectionPheromone.appose(self._context,
210
+                                  _p(CENTER),
211
+                                  (PHEROMON_DIR_EXPLO, 2))
212
+        # Ne permet pas de trouver une route
213
+        self._test_point_raise_no_pheromone(re_init=False)
214
+        self._test_points_raise_no_pheromone(re_init=False)
215
+
216
+        # Une pheromone au nord
217
+        DirectionPheromone.appose(self._context,
218
+                                  _p(NORTH),
219
+                                  (PHEROMON_DIR_EXPLO, 1))
220
+        # le permet
221
+        self._test_direction_for_points({}, NORTH, re_init=False)
222
+        self._test_direction_for_point({}, NORTH, re_init=False)
223
+
224
+
225
+    def _test_point_raise_no_pheromone(self, pheromones={}, direction=-1, pheromone_type=PHEROMON_DIR_EXPLO,
226
+                                 reference_point=_p(CENTER), re_init=True):
227
+        try:  # WTF ?
228
+            self._test_direction_for_point(pheromones, direction, re_init=re_init)
229
+        except NoPheromone:
230
+            self.assertTrue(True)
231
+
232
+    def _test_points_raise_no_pheromone(self, pheromones={}, direction=-1, pheromone_type=PHEROMON_DIR_EXPLO,
233
+                                 reference_point=_p(CENTER), re_init=True):
234
+        try:  # WTF ?
235
+            self._test_direction_for_points(pheromones, direction, re_init=re_init)
236
+        except NoPheromone:
237
+            self.assertTrue(True)