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,5 +1,8 @@
1 1
 TODO:
2 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 6
  * Nettoyer le code des pheromones: Refactoriser
4 7
  * Mechanisme qui donne les pheromones arround
5 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,7 +30,7 @@ class TestDirection(Base):
30 30
             self._context.pheromones().set_pheromones(position, pheromones[position])
31 31
 
32 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 36
         :param pheromones:
@@ -39,12 +39,12 @@ class TestDirection(Base):
39 39
         :param reference_point:
40 40
         :return:
41 41
         """
42
-        self._set_up_pheromones(pheromones)
42
+        self._set_up_pheromones(pheromones, re_init=re_init)
43 43
         direction_tested = DirectionPheromone.get_direction_for_point(self._context, reference_point, pheromone_type)
44 44
         self.assertEqual(direction, direction_tested, "Direction must be %s" % direction)
45 45
 
46 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 50
         :param pheromones:
@@ -53,7 +53,7 @@ class TestDirection(Base):
53 53
         :param reference_point:
54 54
         :return:
55 55
         """
56
-        self._set_up_pheromones(pheromones)
56
+        self._set_up_pheromones(pheromones, re_init=re_init)
57 57
         around_points = self._context.get_arround_points_of(reference_point)
58 58
         direction_tested = DirectionPheromone.get_best_pheromone_direction_in(self._context,
59 59
                                                                               reference_point,
@@ -200,3 +200,38 @@ class TestDirection(Base):
200 200
             }, -1))
201 201
         except NoPheromone:
202 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)