Browse Source

update test to test stockage area

Bastien Sevajol 8 years ago
parent
commit
b7a3fa287d
1 changed files with 42 additions and 18 deletions
  1. 42 18
      intelligine/tests/simulation/mode/TestChangeMode.py

+ 42 - 18
intelligine/tests/simulation/mode/TestChangeMode.py View File

@@ -1,4 +1,7 @@
1
+from intelligine.display.Pygame import Pygame
2
+from intelligine.synergy.Environment import Environment
1 3
 from intelligine.synergy.object.Food import Food
4
+from intelligine.synergy.object.StockedFood import StockedFood
2 5
 from intelligine.tests.simulation.mode.Base import Base
3 6
 from intelligine.synergy.Colony import Colony
4 7
 from intelligine.synergy.Simulation import Simulation
@@ -15,8 +18,8 @@ from intelligine.cst import PHEROMON_DIR_EXPLO
15 18
 
16 19
 class TestChangeMode(Base):
17 20
 
18
-    def __init__(self, methodName='runTest'):
19
-        super().__init__(methodName)
21
+    def __init__(self, *args, **kwargs):
22
+        super().__init__(*args, **kwargs)
20 23
         self.ant = None
21 24
         self.food = None
22 25
         self._force_move = self._force_move
@@ -24,12 +27,12 @@ class TestChangeMode(Base):
24 27
     @staticmethod
25 28
     def _force_move(self_move_action, object_id, context):
26 29
         object_movement_mode = context.metas.value.get(MOVE_MODE, object_id)
27
-        if object_movement_mode == MOVE_MODE_GOHOME:
30
+        if object_movement_mode == MOVE_MODE_GOHOME or object_movement_mode == MOVE_MODE_HOME:
28 31
             return SOUTH
29 32
         return NORTH
30 33
 
31 34
     def _get_set_up_simulations(self):
32
-        return [Simulation([self._get_colony(), self._get_foods()])]
35
+        return [Simulation([self._get_colony(), self._get_foods(), self._get_environment()])]
33 36
 
34 37
     def _get_colony(self):
35 38
         test_case = self
@@ -63,17 +66,25 @@ class TestChangeMode(Base):
63 66
             def get_start_objects(self, collection, context):
64 67
                 foods = []
65 68
                 food = Food(collection, context)
66
-                food.set_position((0, 0, -3))
67
-                #  TEST (en attendant d'avoir des algo pour deposer dans un depot)
68
-                food1 = Food(collection, context)
69
-                food1.set_position((0, 0, -1))
70
-                food1.is_takable = lambda: False
71
-                foods.append(food1)
69
+                stocked_food = StockedFood(collection, context)
70
+                food.set_position((0, 0, -20))
71
+                stocked_food.set_position((0, 0, 0))
72
+                foods.append(stocked_food)
72 73
                 foods.append(food)
73 74
                 test_case.food = food
74 75
                 return foods
75 76
         return FoodConfiguration()
76 77
 
78
+    def _get_environment(self):
79
+        class TestEnvironment(Environment):
80
+            pass
81
+        return TestEnvironment(self._get_environment_configuration())
82
+
83
+    def _get_environment_configuration(self):
84
+        class TestEnvironmentConfiguration(Configuration):
85
+            pass
86
+        return TestEnvironmentConfiguration()
87
+
77 88
     def _get_core_configuration(self, cycles, main_process=True):
78 89
         config = super()._get_core_configuration(cycles, main_process)
79 90
         config.update({
@@ -103,8 +114,8 @@ class TestChangeMode(Base):
103 114
         self.assertFalse(self.ant.is_carrying())
104 115
 
105 116
         # Ant has take Food piece
106
-        self._run_and_get_core(2)
107
-        self.assertEquals((0, 0, -2), self.ant.get_position())
117
+        self._run_and_get_core(19)
118
+        self.assertEquals((0, 0, -19), self.ant.get_position())
108 119
         self.assertTrue(self.ant.is_carrying())
109 120
         self.assertIsNotNone(self.ant.get_carried())
110 121
         self.assertEquals(self.food.__class__, self.ant.get_carried().__class__)
@@ -114,12 +125,25 @@ class TestChangeMode(Base):
114 125
         self.assertEquals(MOVE_MODE_GOHOME, self.ant.get_brain().get_movement_mode())
115 126
         self.assertEquals(PHEROMON_DIR_EXPLO, self.ant.get_movement_molecule_gland().get_molecule_type())
116 127
 
117
-        self._run_and_get_core(3)
118
-        self.assertEquals((0, 0, -1), self.ant.get_position())
128
+        self._run_and_get_core(32)
129
+        self.assertEquals((0, 0, -6), self.ant.get_position())
119 130
         self.assertTrue(self.ant.is_carrying())
131
+        self.assertEquals(MOVE_MODE_HOME, self.ant.get_brain().get_movement_mode())
120 132
 
121
-        self._run_and_get_core(4)
122
-        self.assertEquals((0, 0, 0), self.ant.get_position())
123
-        # Ant has NOT put his food piece
133
+        self._run_and_get_core(33)
134
+        self.assertEquals((0, 0, -5), self.ant.get_position())
124 135
         self.assertTrue(self.ant.is_carrying())
125
-        # TODO: Le "poser" depend maintenant de matiere où poser. Tests à ecrires.
136
+        self.assertEquals(MOVE_MODE_HOME, self.ant.get_brain().get_movement_mode())
137
+
138
+        self._run_and_get_core(34)
139
+        self.assertEquals((0, 0, -4), self.ant.get_position())
140
+        self.assertEquals(MOVE_MODE_HOME, self.ant.get_brain().get_movement_mode())
141
+
142
+        self._run_and_get_core(37)
143
+        self.assertEquals((0, 0, -1), self.ant.get_position())
144
+        # Ant has NOT put his food piece
145
+        self.assertFalse(self.ant.is_carrying())
146
+
147
+        self._run_and_get_core(38)
148
+        self.assertEquals((0, 0, -2), self.ant.get_position())
149
+        self.assertFalse(self.ant.is_carrying())