Skip to content

Commit ba7e205

Browse files
committed
Change test to use unittest and use old division to make tests pass.
1 parent 6f6793b commit ba7e205

File tree

2 files changed

+35
-38
lines changed

2 files changed

+35
-38
lines changed

sc2reader/engine/plugins/creeptracker.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
from Image import ANTIALIAS
88
from StringIO import StringIO
99
from collections import defaultdict
10+
from sc2reader.engine import PluginExit
11+
1012

1113
# The creep tracker plugin
1214
class CreepTracker(object):
@@ -15,9 +17,12 @@ class CreepTracker(object):
1517
player.creep_spread by minute
1618
This uses the creep_tracker class to calculate the features
1719
'''
20+
name = "CreepTracker"
21+
1822
def handleInitGame(self, event, replay):
19-
if len( replay.tracker_events) ==0 :
20-
return
23+
if len(replay.tracker_events) == 0 :
24+
yield PluginExit(self, code=0, details={})
25+
2126
if replay.map is None:
2227
replay.load_map()
2328
self.creepTracker = creep_tracker(replay)
@@ -38,8 +43,6 @@ def handleUnitBornEvent(self,event,replay):
3843
(event.x,event.y),event.unit_type_name,event.second)
3944

4045
def handleEndGame(self, event, replay):
41-
if len( replay.tracker_events) ==0 :
42-
return
4346
for player_id in replay.player:
4447
self.creepTracker.reduce_cgu_per_minute(player_id)
4548
for player in replay.players:
@@ -168,16 +171,16 @@ def reduce_cgu_per_minute(self,player_id):
168171
cgu_last_minute_list = list()
169172
for index,cgu_time in enumerate(self.creep_gen_units_times[player_id]):
170173
cgu_last_minute_list.append(self.creep_gen_units[player_id][index])
171-
if (cgu_time/60) ==0:
174+
if (cgu_time//60) ==0:
172175
cgu_per_player_new.append(self.creep_gen_units[player_id][0])
173176
cgu_time_per_player_new.append(0)
174177
cgu_last_minute_list = list()
175-
if (cgu_time/60)>last_minute_found:
178+
if (cgu_time//60)>last_minute_found:
176179
cgu_max_in_min = max(cgu_last_minute_list,key = len)
177180
cgu_per_player_new.append(cgu_max_in_min)
178181
cgu_max_in_min_index = self.creep_gen_units[player_id].index(cgu_max_in_min)
179182
cgu_time_per_player_new.append(self.creep_gen_units_times[player_id][cgu_max_in_min_index])
180-
last_minute_found = cgu_time/60
183+
last_minute_found = cgu_time//60
181184
cgu_last_minute_list=list()
182185

183186
self.creep_gen_units[player_id] = cgu_per_player_new
@@ -187,17 +190,15 @@ def get_creep_spread_area(self,player_id):
187190
## iterates through all cgus and and calculate the area
188191
for index,cgu_per_player in enumerate(self.creep_gen_units[player_id]):
189192
# convert cgu list into centre of circles and radius
190-
cgu_radius = map(lambda x: (x[1], self.unit_name_to_radius[x[2]]),\
191-
cgu_per_player)
193+
cgu_radius = map(lambda x: (x[1], self.unit_name_to_radius[x[2]]), cgu_per_player)
192194
# convert event coords to minimap coords
193195
cgu_radius = self.convert_cgu_radius_event_to_map_coord(cgu_radius)
194196
creep_area_positions = self.cgu_radius_to_map_positions(cgu_radius,self.radius_to_coordinates)
195-
cgu_last_event_time = self.creep_gen_units_times[player_id][index]/60
196-
if self.debug:
197+
cgu_last_event_time = self.creep_gen_units_times[player_id][index]//60
198+
if self.debug:
197199
self.print_image(creep_area_positions,player_id,cgu_last_event_time)
198200
creep_area = len(creep_area_positions)
199-
self.creep_spread_by_minute[player_id][cgu_last_event_time]=\
200-
float(creep_area)/self.mapSize*100
201+
self.creep_spread_by_minute[player_id][cgu_last_event_time]=float(creep_area)/self.mapSize*100
201202
return self.creep_spread_by_minute[player_id]
202203

203204
def cgu_radius_to_map_positions(self,cgu_radius,radius_to_coordinates):

test_replays/test_all.py

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -359,31 +359,27 @@ def test_gameheartnormalizer_plugin(self):
359359
self.assertEqual(replay.winner, replay.teams[0])
360360

361361

362-
def test_creepTracker():
363-
from sc2reader.engine.plugins import CreepTracker
364-
365-
for replayfilename in [
366-
"test_replays/2.0.8.25605/ggtracker_3621322.SC2Replay",
367-
"test_replays/2.0.8.25605/ggtracker_3621402.SC2Replay",
368-
"test_replays/2.0.8.25605/ggtracker_3663861.SC2Replay",
369-
"test_replays/2.0.8.25605/ggtracker_3695400.SC2Replay",
370-
]:
371-
factory = sc2reader.factories.SC2Factory()
372-
pluginEngine=sc2reader.engine.GameEngine(plugins=[
373-
CreepTracker()
374-
])
375-
replay =factory.load_replay(replayfilename,engine=pluginEngine,load_map= True,load_level=4)
376-
377-
for player_id in replay.player:
378-
if replay.player[player_id].play_race == "Zerg":
379-
assert replay.player[player_id].max_creep_spread >0
380-
assert replay.player[player_id].creep_spread_by_minute
381-
382-
383-
replay =factory.load_replay("test_replays/2.0.8.25605/ggtracker_3621402.SC2Replay",load_map= True,engine=pluginEngine,load_level=4)
384-
assert replay.player[2].max_creep_spread == (14,22.95)
385-
assert replay.player[2].creep_spread_by_minute[7] == 8.21
386-
assert replay.player[2].creep_spread_by_minute[13] == 22.42
362+
def test_creepTracker(self):
363+
from sc2reader.engine.plugins import CreepTracker
364+
pluginEngine = sc2reader.engine.GameEngine(plugins=[CreepTracker()])
365+
366+
for replayfilename in [
367+
"test_replays/2.0.8.25605/ggtracker_3621322.SC2Replay",
368+
"test_replays/2.0.8.25605/ggtracker_3621402.SC2Replay",
369+
"test_replays/2.0.8.25605/ggtracker_3663861.SC2Replay",
370+
"test_replays/2.0.8.25605/ggtracker_3695400.SC2Replay",
371+
]:
372+
373+
replay = sc2reader.load_replay(replayfilename, engine=pluginEngine, load_map=True)
374+
for player_id in replay.player:
375+
if replay.player[player_id].play_race == "Zerg":
376+
self.assertTrue(replay.player[player_id].max_creep_spread > 0)
377+
self.assertTrue(replay.player[player_id].creep_spread_by_minute)
378+
379+
replay = sc2reader.load_replay("test_replays/2.0.8.25605/ggtracker_3621402.SC2Replay", load_map=True, engine=pluginEngine)
380+
self.assertEqual(replay.player[2].max_creep_spread, (14,22.95))
381+
self.assertEqual(replay.player[2].creep_spread_by_minute[7], 8.21)
382+
self.assertEqual(replay.player[2].creep_spread_by_minute[13], 22.42)
387383

388384
if __name__ == '__main__':
389385
unittest.main()

0 commit comments

Comments
 (0)