Updated WAM logic for cases when there are too many RAW factories

This commit is contained in:
Eriks K
2022-02-01 22:21:29 +02:00
parent 7e5312df18
commit d5ce52162a
5 changed files with 192 additions and 151 deletions

View File

@ -26,111 +26,111 @@ class TestErepublik(unittest.TestCase):
self.citizen.energy.energy = 1000
self.assertFalse(self.citizen.should_do_levelup)
def test_should_travel_to_fight(self):
self.citizen.config.always_travel = True
self.assertTrue(self.citizen.should_travel_to_fight())
self.citizen.config.always_travel = False
self.assertFalse(self.citizen.should_travel_to_fight())
self.citizen.energy.energy = 5960
self.citizen.energy.interval = 30
self.citizen.energy.limit = 6000
self.citizen.details.xp = 14850
self.assertTrue(self.citizen.should_travel_to_fight())
self.citizen.details.xp = 15000
self.citizen.energy.energy = 5000
self.assertFalse(self.citizen.should_travel_to_fight())
self.citizen.energy.energy = 5910
self.assertTrue(self.citizen.should_travel_to_fight())
self.citizen.energy.energy = 5900
self.assertFalse(self.citizen.should_travel_to_fight())
# self.citizen.next_reachable_energy and self.citizen.config.next_energy
self.citizen.config.next_energy = True
self.citizen.energy.limit = 10000
self.citizen.details.next_pp = [5000, 5250, 5750, 6250, 6750]
self.citizen.details.pp = 4900
self.citizen.energy.energy = 8510
self.assertEqual(self.citizen.next_reachable_energy, 850)
self.citizen.energy.energy = 8490
self.assertTrue(self.citizen.should_travel_to_fight())
self.assertEqual(self.citizen.next_reachable_energy, 350)
self.citizen.energy.energy = 250
self.assertFalse(self.citizen.should_travel_to_fight())
self.assertEqual(self.citizen.next_reachable_energy, 0)
def test_should_fight(self):
def is_wc_close():
return self.citizen.max_time_till_full_ff > self.citizen.time_till_week_change
self.citizen.config.fight = False
self.assertEqual(self.citizen.should_fight(), (0, "Fighting not allowed!", False))
self.citizen.config.fight = True
# Level up
self.citizen.energy.limit = 3000
self.citizen.details.xp = 24705
if not is_wc_close:
self.assertEqual(self.citizen.should_fight(), (0, "Level up", False))
self.citizen.energy.energy = 5950
self.citizen.energy.interval = 30
self.assertEqual(self.citizen.should_fight(), (900, "Level up", True))
self.citizen.my_companies.ff_lockdown = 160
self.assertEqual(self.citizen.should_fight(), (900, "Level up", True))
self.citizen.my_companies.ff_lockdown = 0
# Level up reachable
self.citizen.details.xp = 24400
self.assertEqual(self.citizen.should_fight(), (305, "Fighting for close Levelup. Doing 305 hits", True))
self.citizen.my_companies.ff_lockdown = 160
self.assertEqual(self.citizen.should_fight(), (305, "Fighting for close Levelup. Doing 305 hits", True))
self.citizen.my_companies.ff_lockdown = 0
self.citizen.details.xp = 21000
self.assertEqual(self.citizen.should_fight(), (75, "Obligatory fighting for at least 75pp", True))
self.citizen.my_companies.ff_lockdown = 160
self.assertEqual(self.citizen.should_fight(), (75, "Obligatory fighting for at least 75pp", True))
self.citizen.my_companies.ff_lockdown = 0
self.citizen.details.pp = 80
# All-in (type = all-in and full ff)
self.citizen.config.all_in = True
self.assertEqual(self.citizen.should_fight(), (595, "Fighting all-in. Doing 595 hits", False))
self.citizen.my_companies.ff_lockdown = 160
self.assertEqual(
self.citizen.should_fight(),
(435, "Fight count modified (old count: 595 | FF: 595 | WAM ff_lockdown: 160 | New count: 435)", False),
)
self.citizen.my_companies.ff_lockdown = 0
self.citizen.config.air = True
self.citizen.energy.energy = 4000
self.assertEqual(self.citizen.should_fight(), (400, "Fighting all-in in AIR. Doing 400 hits", False))
self.citizen.my_companies.ff_lockdown = 160
self.assertEqual(
self.citizen.should_fight(),
(240, "Fight count modified (old count: 400 | FF: 400 | WAM ff_lockdown: 160 | New count: 240)", False),
)
self.citizen.my_companies.ff_lockdown = 0
self.citizen.config.all_in = False
self.citizen.config.next_energy = True
self.citizen.energy.limit = 10000
self.citizen.details.next_pp = [100, 150, 250, 400, 500]
self.assertEqual(self.citizen.should_fight(), (320, "Fighting for +1 energy. Doing 320 hits", False))
self.citizen.my_companies.ff_lockdown = 160
self.assertEqual(
self.citizen.should_fight(),
(160, "Fight count modified (old count: 320 | FF: 400 | WAM ff_lockdown: 160 | New count: 160)", False),
)
self.citizen.my_companies.ff_lockdown = 0
self.citizen.energy.limit = 3000
self.citizen.details.next_pp = [19250, 20000]
self.citizen.config.next_energy = False
# 1h worth of energy
self.citizen.energy.energy = 5910
self.assertEqual(self.citizen.should_fight(), (30, "Fighting for 1h energy. Doing 30 hits", True))
# def deprecated_test_should_travel_to_fight(self):
# self.citizen.config.always_travel = True
# self.assertTrue(self.citizen.should_travel_to_fight())
# self.citizen.config.always_travel = False
# self.assertFalse(self.citizen.should_travel_to_fight())
#
# self.citizen.energy.energy = 5960
# self.citizen.energy.interval = 30
# self.citizen.energy.limit = 6000
# self.citizen.details.xp = 14850
# self.assertTrue(self.citizen.should_travel_to_fight())
# self.citizen.details.xp = 15000
# self.citizen.energy.energy = 5000
# self.assertFalse(self.citizen.should_travel_to_fight())
#
# self.citizen.energy.energy = 5910
# self.assertTrue(self.citizen.should_travel_to_fight())
# self.citizen.energy.energy = 5900
# self.assertFalse(self.citizen.should_travel_to_fight())
#
# # self.citizen.next_reachable_energy and self.citizen.config.next_energy
# self.citizen.config.next_energy = True
# self.citizen.energy.limit = 10000
# self.citizen.details.next_pp = [5000, 5250, 5750, 6250, 6750]
# self.citizen.details.pp = 4900
# self.citizen.energy.energy = 8510
# self.assertEqual(self.citizen.next_reachable_energy, 850)
# self.citizen.energy.energy = 8490
# self.assertTrue(self.citizen.should_travel_to_fight())
# self.assertEqual(self.citizen.next_reachable_energy, 350)
# self.citizen.energy.energy = 250
# self.assertFalse(self.citizen.should_travel_to_fight())
# self.assertEqual(self.citizen.next_reachable_energy, 0)
#
# def deprecated_test_should_fight(self):
# def is_wc_close():
# return self.citizen.max_time_till_full_ff > self.citizen.time_till_week_change
#
# self.citizen.config.fight = False
# self.assertEqual(self.citizen.should_fight(), (0, "Fighting not allowed!", False))
#
# self.citizen.config.fight = True
#
# # Level up
# self.citizen.energy.limit = 3000
# self.citizen.details.xp = 24705
# if not is_wc_close:
# self.assertEqual(self.citizen.should_fight(), (0, "Level up", False))
#
# self.citizen.energy.energy = 5950
# self.citizen.energy.interval = 30
# self.assertEqual(self.citizen.should_fight(), (900, "Level up", True))
# self.citizen.my_companies.ff_lockdown = 160
# self.assertEqual(self.citizen.should_fight(), (900, "Level up", True))
# self.citizen.my_companies.ff_lockdown = 0
#
# # Level up reachable
# self.citizen.details.xp = 24400
# self.assertEqual(self.citizen.should_fight(), (305, "Fighting for close Levelup. Doing 305 hits", True))
# self.citizen.my_companies.ff_lockdown = 160
# self.assertEqual(self.citizen.should_fight(), (305, "Fighting for close Levelup. Doing 305 hits", True))
# self.citizen.my_companies.ff_lockdown = 0
#
# self.citizen.details.xp = 21000
# self.assertEqual(self.citizen.should_fight(), (75, "Obligatory fighting for at least 75pp", True))
# self.citizen.my_companies.ff_lockdown = 160
# self.assertEqual(self.citizen.should_fight(), (75, "Obligatory fighting for at least 75pp", True))
# self.citizen.my_companies.ff_lockdown = 0
# self.citizen.details.pp = 80
#
# # All-in (type = all-in and full ff)
# self.citizen.config.all_in = True
# self.assertEqual(self.citizen.should_fight(), (595, "Fighting all-in. Doing 595 hits", False))
# self.citizen.my_companies.ff_lockdown = 160
# self.assertEqual(
# self.citizen.should_fight(),
# (435, "Fight count modified (old count: 595 | FF: 595 | WAM ff_lockdown: 160 | New count: 435)", False),
# )
# self.citizen.my_companies.ff_lockdown = 0
#
# self.citizen.config.air = True
# self.citizen.energy.energy = 4000
# self.assertEqual(self.citizen.should_fight(), (400, "Fighting all-in in AIR. Doing 400 hits", False))
# self.citizen.my_companies.ff_lockdown = 160
# self.assertEqual(
# self.citizen.should_fight(),
# (240, "Fight count modified (old count: 400 | FF: 400 | WAM ff_lockdown: 160 | New count: 240)", False),
# )
# self.citizen.my_companies.ff_lockdown = 0
# self.citizen.config.all_in = False
#
# self.citizen.config.next_energy = True
# self.citizen.energy.limit = 10000
# self.citizen.details.next_pp = [100, 150, 250, 400, 500]
# self.assertEqual(self.citizen.should_fight(), (320, "Fighting for +1 energy. Doing 320 hits", False))
# self.citizen.my_companies.ff_lockdown = 160
# self.assertEqual(
# self.citizen.should_fight(),
# (160, "Fight count modified (old count: 320 | FF: 400 | WAM ff_lockdown: 160 | New count: 160)", False),
# )
# self.citizen.my_companies.ff_lockdown = 0
# self.citizen.energy.limit = 3000
# self.citizen.details.next_pp = [19250, 20000]
# self.citizen.config.next_energy = False
#
# # 1h worth of energy
# self.citizen.energy.energy = 5910
# self.assertEqual(self.citizen.should_fight(), (30, "Fighting for 1h energy. Doing 30 hits", True))