def test_fight_lose_simfile(self): army1, army2 = simfile.get_army('test1.sim') result, report = army1.attack(army2) self.assertFalse(result) self.assertEqual(len(army1), 0) # no one harmed, that angel killed them all ;-) self.assertEqual(len(army2), 3) self.assertEqual(len(filter(lambda x: x == (0, 1), report.leftovers())), 6)
def simulate(path, powermod): we, them = simfile.get_army(path) we.apply_power_mod(powermod) result, report = we.attack(them) if result: print "Victory! Report: %r" % report else: print "Defeat! Report: %r" % report
def test_fight_lose_simfile(self): army1, army2 = simfile.get_army('test1.sim') result, report = army1.attack(army2) self.assertFalse(result) self.assertEqual(len(army1), 0) # no one harmed, that angel killed them all ;-) self.assertEqual(len(army2), 3) self.assertEqual( len(filter(lambda x: x == (0, 1), report.leftovers())), 6)
def test_fight_win_simfile(self): army1, army2 = simfile.get_army('test1.sim') army1[0].stack += 10 # vampires result, report = army1.attack(army2, dry_run=False) self.assertTrue(result) self.assertEqual(len(army1), 2) self.assertEqual(len(army2), 0) self.assertEqual(army1[0].stack, 4) self.assertEqual(report.leftovers(), [(7, 0), (0, 12), (0, 2), (5, 0), (0, 5), (0, 4), (4, 0)])
def test_fight_win_simfile(self): army1, army2 = simfile.get_army('test1.sim') army1[0].stack += 10 # vampires result, report = army1.attack(army2, dry_run=False) self.assertTrue(result) self.assertEqual(len(army1), 2) self.assertEqual(len(army2), 0) self.assertEqual(army1[0].stack, 4) self.assertEqual( report.leftovers(), [(7, 0), (0, 12), (0, 2), (5, 0), (0, 5), (0, 4), (4, 0)] )
def optimize(path, powermod): we, them = simfile.get_army(path) we.apply_power_mod(powermod) print "Best constellation: %s" % optimizer.optimize(we, them)
def test_optimize(self): army1, army2 = simfile.get_army('test3.sim') best = optimizer.optimize(army1, army2, show_pbar=False) self.assertEqual(best[0].stack, 119) self.assertEqual(best[1].stack, 5)
def test_dry_run(self): army1, army2 = simfile.get_army('test1.sim') result1, report1 = army1.attack(army2, dry_run=True) result2, report2 = army1.attack(army2, dry_run=True) self.assertEqual(result1, result2) self.assertEqual(report1.leftovers(), report2.leftovers())
def test_hard_battle(self): army1, army2 = simfile.get_army('test1.sim') result, report = army1.attack(army2) self.assertFalse(result)
def test_open_simfile(self): army1, army2 = simfile.get_army('test1.sim') self.assertEqual(len(army1), 6) self.assertEqual(len(army2), 3)