Skip to content

Commit

Permalink
Fix some cpm issues (#5529)
Browse files Browse the repository at this point in the history
  • Loading branch information
anakin5 authored Sep 19, 2016
1 parent 86d9bf7 commit bab7b7e
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 102 deletions.
163 changes: 81 additions & 82 deletions data/level_to_cpm.json
Original file line number Diff line number Diff line change
@@ -1,82 +1,81 @@
{
"1": 0.094,
"1.5": 0.135137432,
"2": 0.16639787,
"2.5": 0.192650919,
"3": 0.21573247,
"3.5": 0.236572661,
"4": 0.25572005,
"4.5": 0.273530381,
"5": 0.29024988,
"5.5": 0.306057377,
"6": 0.3210876,
"6.5": 0.335445036,
"7": 0.34921268,
"7.5": 0.362457751,
"8": 0.37523559,
"8.5": 0.387592406,
"9": 0.39956728,
"9.5": 0.411193551,
"10": 0.42250001,
"10.5": 0.432926419,
"11": 0.44310755,
"11.5": 0.4530599578,
"12": 0.46279839,
"12.5": 0.472336083,
"13": 0.48168495,
"13.5": 0.4908558,
"14": 0.49985844,
"14.5": 0.508701765,
"15": 0.51739395,
"15.5": 0.525942511,
"16": 0.53435433,
"16.5": 0.542635767,
"17": 0.55079269,
"17.5": 0.558830576,
"18": 0.56675452,
"18.5": 0.574569153,
"19": 0.58227891,
"19.5": 0.589887917,
"20": 0.59740001,
"20.5": 0.604818814,
"21": 0.61215729,
"21.5": 0.619399365,
"22": 0.62656713,
"22.5": 0.633644533,
"23": 0.64065295,
"23.5": 0.647576426,
"24": 0.65443563,
"24.5": 0.661214806,
"25": 0.667934,
"25.5": 0.674577537,
"26": 0.68116492,
"26.5": 0.687680648,
"27": 0.69414365,
"27.5": 0.700538673,
"28": 0.70688421,
"28.5": 0.713164996,
"29": 0.71939909,
"29.5": 0.725571552,
"30": 0.7317,
"30.5": 0.734741009,
"31": 0.73776948,
"31.5": 0.740785574,
"32": 0.74378943,
"32.5": 0.746781211,
"33": 0.74976104,
"33.5": 0.752729087,
"34": 0.75568551,
"34.5": 0.758630378,
"35": 0.76156384,
"35.5": 0.764486065,
"36": 0.76739717,
"36.5": 0.770297266,
"37": 0.7731865,
"37.5": 0.776064962,
"38": 0.77893275,
"38.5": 0.781790055,
"39": 0.78463697,
"39.5": 0.787473578,
"40": 0.79030001,
"40.5": 0.7931163849
}
[
0.094,
0.135137432,
0.16639787,
0.192650919,
0.21573247,
0.236572661,
0.25572005,
0.273530381,
0.29024988,
0.306057377,
0.3210876,
0.335445036,
0.34921268,
0.362457751,
0.37523559,
0.387592406,
0.39956728,
0.411193551,
0.42250001,
0.432926419,
0.44310755,
0.4530599578,
0.46279839,
0.472336083,
0.48168495,
0.4908558,
0.49985844,
0.508701765,
0.51739395,
0.525942511,
0.53435433,
0.542635767,
0.55079269,
0.558830576,
0.56675452,
0.574569153,
0.58227891,
0.589887917,
0.59740001,
0.604818814,
0.61215729,
0.619399365,
0.62656713,
0.633644533,
0.64065295,
0.647576426,
0.65443563,
0.661214806,
0.667934,
0.674577537,
0.68116492,
0.687680648,
0.69414365,
0.700538673,
0.70688421,
0.713164996,
0.71939909,
0.725571552,
0.7317,
0.734741009,
0.73776948,
0.740785574,
0.74378943,
0.746781211,
0.74976104,
0.752729087,
0.75568551,
0.758630378,
0.76156384,
0.764486065,
0.76739717,
0.770297266,
0.7731865,
0.776064962,
0.77893275,
0.781790055,
0.78463697,
0.787473578,
0.79030001
]
2 changes: 0 additions & 2 deletions data/pokemon_upgrade_cost.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,5 @@
[12, 9000],
[12, 9000],
[15, 10000],
[15, 10000],
[15, 10000],
[15, 10000]
]
14 changes: 2 additions & 12 deletions pokemongo_bot/inventory.py
Original file line number Diff line number Diff line change
Expand Up @@ -584,8 +584,6 @@ class LevelToCPm(_StaticInventoryComponent):
STATIC_DATA_FILE = os.path.join(_base_dir, 'data', 'level_to_cpm.json')
MAX_LEVEL = 40
MAX_CPM = .0
# half of the lowest difference between CPMs
HALF_DIFF_BETWEEN_HALF_LVL = 14e-3

@classmethod
def init_static_data(cls):
Expand All @@ -595,19 +593,11 @@ def init_static_data(cls):

@classmethod
def cp_multiplier_for(cls, level):
# type: (Union[float, int, string]) -> float
level = float(level)
level = str(int(level) if level.is_integer() else level)
return cls.STATIC_DATA[level]
return cls.STATIC_DATA[int(2 * (level - 1))]

@classmethod
def level_from_cpm(cls, cp_multiplier):
# type: (float) -> float
for lvl, cpm in cls.STATIC_DATA.iteritems():
diff = abs(cpm - cp_multiplier)
if diff <= cls.HALF_DIFF_BETWEEN_HALF_LVL:
return float(lvl)
raise ValueError("Unknown cp_multiplier: {}".format(cp_multiplier))
return min(range(len(cls.STATIC_DATA)), key=lambda i: abs(cls.STATIC_DATA[i] - cp_multiplier)) * 0.5 + 1


class _Attacks(_StaticInventoryComponent):
Expand Down
9 changes: 3 additions & 6 deletions tests/inventory_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ def test_pokemons(self):
"cp_multiplier": 0.4627983868122101,
"additional_cp_multiplier": 0.018886566162109375,
"cp": 653, "nickname": "Golb", "id": 13632861873471324})
self.assertEqual(poke.level, 12.5)
self.assertEqual(poke.level, 13)
self.assertEqual(poke.iv, 0.47)
self.assertAlmostEqual(poke.ivcp, 0.488747515)
self.assertAlmostEqual(poke.static.max_cp, 1921.34561459)
Expand All @@ -141,7 +141,7 @@ def test_pokemons(self):
"move_1": 221, "move_2": 129, "pokemon_id": 19, "cp": 106,
"individual_attack": 6, "stamina_max": 22, "individual_defense": 14,
"cp_multiplier": 0.37523558735847473, "id": 7841053399})
self.assertEqual(poke.level, 7.5)
self.assertEqual(poke.level, 8)
self.assertEqual(poke.iv, 0.44)
self.assertAlmostEqual(poke.ivcp, 0.3804059)
self.assertAlmostEqual(poke.static.max_cp, 581.64643575)
Expand All @@ -162,14 +162,11 @@ def test_levels_to_cpm(self):
max_cpm = l2c.cp_multiplier_for(l2c.MAX_LEVEL)
self.assertEqual(l2c.MAX_LEVEL, 40)
self.assertEqual(l2c.MAX_CPM, max_cpm)
self.assertEqual(len(l2c.STATIC_DATA), 80)
self.assertEqual(len(l2c.STATIC_DATA), 79)

self.assertEqual(l2c.cp_multiplier_for("1"), 0.094)
self.assertEqual(l2c.cp_multiplier_for(1), 0.094)
self.assertEqual(l2c.cp_multiplier_for(1.0), 0.094)
self.assertEqual(l2c.cp_multiplier_for("17.5"), 0.558830576)
self.assertEqual(l2c.cp_multiplier_for(17.5), 0.558830576)
self.assertEqual(l2c.cp_multiplier_for('40.0'), 0.79030001)
self.assertEqual(l2c.cp_multiplier_for(40.0), 0.79030001)
self.assertEqual(l2c.cp_multiplier_for(40), 0.79030001)

Expand Down

0 comments on commit bab7b7e

Please sign in to comment.