|
@@ -9,6 +9,9 @@ from intelligine.tests.simulation.pheromone.Base import Base
|
9
|
9
|
from intelligine.simulation.pheromone.DirectionPheromone import DirectionPheromone
|
10
|
10
|
from intelligine.core.Context import Context
|
11
|
11
|
from intelligine.cst import PHEROMON_DIRECTION, PHEROMON_DIR_EXPLO, PHEROMON_DIR_HOME
|
|
12
|
+from intelligine.synergy.event.move.direction import NORTH, NORTH_EST, EST, SOUTH_EST, SOUTH, SOUTH_WEST, WEST, \
|
|
13
|
+ NORTH_WEST, CENTER
|
|
14
|
+from intelligine.synergy.event.move.direction import get_position_with_direction_decal as _p
|
12
|
15
|
|
13
|
16
|
|
14
|
17
|
class TestDirection(Base):
|
|
@@ -27,7 +30,7 @@ class TestDirection(Base):
|
27
|
30
|
self._context.pheromones().set_pheromones(position, pheromones[position])
|
28
|
31
|
|
29
|
32
|
def _test_direction_for_point(self, pheromones, direction, pheromone_type=PHEROMON_DIR_EXPLO,
|
30
|
|
- reference_point=(0, 0, 0)):
|
|
33
|
+ reference_point=_p(CENTER)):
|
31
|
34
|
"""
|
32
|
35
|
|
33
|
36
|
:param pheromones:
|
|
@@ -41,7 +44,7 @@ class TestDirection(Base):
|
41
|
44
|
self.assertEqual(direction, direction_tested, "Direction must be %s" % direction)
|
42
|
45
|
|
43
|
46
|
def _test_direction_for_points(self, pheromones, direction, pheromone_type=PHEROMON_DIR_EXPLO,
|
44
|
|
- reference_point=(0, 0, 0)):
|
|
47
|
+ reference_point=_p(CENTER)):
|
45
|
48
|
"""
|
46
|
49
|
|
47
|
50
|
:param pheromones:
|
|
@@ -64,37 +67,37 @@ class TestDirection(Base):
|
64
|
67
|
:return:
|
65
|
68
|
"""
|
66
|
69
|
test_data = {
|
67
|
|
- 10: {
|
68
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
69
|
|
- (0, -1, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
|
70
|
+ NORTH_WEST: {
|
|
71
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
|
72
|
+ _p(NORTH_WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
70
|
73
|
},
|
71
|
|
- 11: {
|
72
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
73
|
|
- (0, 0, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
|
74
|
+ NORTH: {
|
|
75
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
|
76
|
+ _p(NORTH): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
74
|
77
|
},
|
75
|
|
- 12: {
|
76
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
77
|
|
- (0, 1, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
|
78
|
+ NORTH_EST: {
|
|
79
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
|
80
|
+ _p(NORTH_EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
78
|
81
|
},
|
79
|
|
- 13: {
|
80
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
81
|
|
- (0, -1, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
|
82
|
+ WEST: {
|
|
83
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
|
84
|
+ _p(WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
82
|
85
|
},
|
83
|
|
- 15: {
|
84
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
85
|
|
- (0, 1, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
|
86
|
+ EST: {
|
|
87
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
|
88
|
+ _p(EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
86
|
89
|
},
|
87
|
|
- 16: {
|
88
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
89
|
|
- (0, -1, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
|
90
|
+ SOUTH_WEST: {
|
|
91
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
|
92
|
+ _p(SOUTH_WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
90
|
93
|
},
|
91
|
|
- 17: {
|
92
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
93
|
|
- (0, 0, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
|
94
|
+ SOUTH: {
|
|
95
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
|
96
|
+ _p(SOUTH): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
94
|
97
|
},
|
95
|
|
- 18: {
|
96
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
97
|
|
- (0, 1, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
|
98
|
+ SOUTH_EST: {
|
|
99
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
|
100
|
+ _p(SOUTH_EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}}
|
98
|
101
|
}
|
99
|
102
|
}
|
100
|
103
|
|
|
@@ -107,22 +110,22 @@ class TestDirection(Base):
|
107
|
110
|
:return:
|
108
|
111
|
"""
|
109
|
112
|
test_data = {
|
110
|
|
- 10: {
|
111
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
112
|
|
- (0, -1, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}},
|
113
|
|
- (0, 1, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (12, 1)}}
|
|
113
|
+ NORTH_WEST: {
|
|
114
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
|
115
|
+ _p(NORTH_WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}},
|
|
116
|
+ _p(SOUTH_EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (12, 1)}}
|
114
|
117
|
},
|
115
|
|
- 10: {
|
116
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
117
|
|
- (0, -1, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}},
|
118
|
|
- (0, 1, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (12, 1)}},
|
119
|
|
- (0, 0, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (12, 1)}}
|
|
118
|
+ NORTH_WEST: {
|
|
119
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
|
120
|
+ _p(NORTH_WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}},
|
|
121
|
+ _p(SOUTH_EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (12, 1)}},
|
|
122
|
+ _p(SOUTH): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (12, 1)}}
|
120
|
123
|
},
|
121
|
|
- 10: {
|
122
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
123
|
|
- (0, -1, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}},
|
124
|
|
- (0, 1, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (12, 1)}},
|
125
|
|
- (0, 0, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_HOME: (8, 1)}}
|
|
124
|
+ NORTH_WEST: {
|
|
125
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 1)}},
|
|
126
|
+ _p(NORTH_WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 1)}},
|
|
127
|
+ _p(SOUTH_EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (12, 1)}},
|
|
128
|
+ _p(SOUTH): {PHEROMON_DIRECTION: {PHEROMON_DIR_HOME: (8, 1)}}
|
126
|
129
|
},
|
127
|
130
|
}
|
128
|
131
|
|
|
@@ -135,16 +138,16 @@ class TestDirection(Base):
|
135
|
138
|
:return:
|
136
|
139
|
"""
|
137
|
140
|
test_data = {
|
138
|
|
- 10: {
|
139
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 2)}},
|
140
|
|
- (0, -1, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 2)}},
|
141
|
|
- (0, 1, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (8, 1)}}
|
|
141
|
+ NORTH_WEST: {
|
|
142
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 2)}},
|
|
143
|
+ _p(NORTH_WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 2)}},
|
|
144
|
+ _p(SOUTH_EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (8, 1)}}
|
142
|
145
|
},
|
143
|
|
- 10: {
|
144
|
|
- (0, 0, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 2)}},
|
145
|
|
- (0, -1, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 2)}},
|
146
|
|
- (0, 1, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (8, 1)}},
|
147
|
|
- (0, 1, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_HOME: (5, 10)}} # an other pheromone type
|
|
146
|
+ NORTH_WEST: {
|
|
147
|
+ _p(CENTER): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (10, 2)}},
|
|
148
|
+ _p(NORTH_WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 2)}},
|
|
149
|
+ _p(SOUTH_EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (8, 1)}},
|
|
150
|
+ _p(SOUTH_EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_HOME: (5, 10)}} # an other pheromone type
|
148
|
151
|
}
|
149
|
152
|
}
|
150
|
153
|
|
|
@@ -153,12 +156,12 @@ class TestDirection(Base):
|
153
|
156
|
|
154
|
157
|
def test_direction_direct(self):
|
155
|
158
|
test_data = {
|
156
|
|
- 11: {
|
157
|
|
- (0, 0, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 2)}}
|
|
159
|
+ NORTH: {
|
|
160
|
+ _p(NORTH): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 2)}}
|
158
|
161
|
},
|
159
|
|
- 11: {
|
160
|
|
- (0, 0, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 2)}},
|
161
|
|
- (0, -1, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_HOME: (9, 500)}} # An other pheromone type
|
|
162
|
+ NORTH: {
|
|
163
|
+ _p(NORTH): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 2)}},
|
|
164
|
+ _p(NORTH_WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_HOME: (9, 500)}} # An other pheromone type
|
162
|
165
|
}
|
163
|
166
|
}
|
164
|
167
|
|
|
@@ -167,16 +170,16 @@ class TestDirection(Base):
|
167
|
170
|
|
168
|
171
|
def test_direction_with_multiple_intensity(self):
|
169
|
172
|
test_data = {
|
170
|
|
- 11: {
|
171
|
|
- (0, 0, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 5)}},
|
172
|
|
- (0, 1, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 4)}},
|
173
|
|
- (0, -1, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 4)}}
|
|
173
|
+ NORTH: {
|
|
174
|
+ _p(NORTH): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 5)}},
|
|
175
|
+ _p(SOUTH_EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 4)}},
|
|
176
|
+ _p(NORTH_WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 4)}}
|
174
|
177
|
},
|
175
|
|
- 11: {
|
176
|
|
- (0, 0, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 5)}},
|
177
|
|
- (0, -1, 0): {PHEROMON_DIRECTION: {PHEROMON_DIR_HOME: (9, 500)}}, # An other pheromone_type
|
178
|
|
- (0, 1, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 4)}},
|
179
|
|
- (0, -1, -1): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 4)}}
|
|
178
|
+ NORTH: {
|
|
179
|
+ _p(NORTH): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 5)}},
|
|
180
|
+ _p(WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_HOME: (9, 500)}}, # An other pheromone_type
|
|
181
|
+ _p(SOUTH_EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 4)}},
|
|
182
|
+ _p(NORTH_WEST): {PHEROMON_DIRECTION: {PHEROMON_DIR_EXPLO: (9, 4)}}
|
180
|
183
|
}
|
181
|
184
|
}
|
182
|
185
|
|
|
@@ -193,7 +196,7 @@ class TestDirection(Base):
|
193
|
196
|
# Wrong pheromone type
|
194
|
197
|
try: # WTF ?
|
195
|
198
|
self.assertRaises(NoPheromone, self._test_direction_for_points({
|
196
|
|
- (0, 1, 1): {PHEROMON_DIRECTION: {PHEROMON_DIR_HOME: (9, 5)}}
|
|
199
|
+ _p(SOUTH_EST): {PHEROMON_DIRECTION: {PHEROMON_DIR_HOME: (9, 5)}}
|
197
|
200
|
}, -1))
|
198
|
201
|
except NoPheromone:
|
199
|
202
|
self.assertTrue(True)
|