(self, callback, clazz)
| 180 | self._test_attacks(charged_attacks, ChargedAttacks) |
| 181 | |
| 182 | def _test_attacks(self, callback, clazz): |
| 183 | charged = clazz is ChargedAttacks |
| 184 | self.assertIs(callback(), clazz) |
| 185 | |
| 186 | # check consistency |
| 187 | attacks = clazz.all_by_dps() |
| 188 | number = len(attacks) |
| 189 | assert (number > 0) |
| 190 | self.assertGreaterEqual(len(clazz.BY_TYPE), 17) |
| 191 | self.assertEqual(number, len(clazz.all())) |
| 192 | self.assertEqual(number, len(clazz.STATIC_DATA)) |
| 193 | self.assertEqual(number, len(clazz.BY_NAME)) |
| 194 | self.assertEqual(number, sum([len(l) for l in clazz.BY_TYPE.values()])) |
| 195 | |
| 196 | # check data |
| 197 | prev_dps = float("inf") |
| 198 | for attack in attacks: # type: Attack |
| 199 | self.assertGreater(attack.id, 0) |
| 200 | self.assertGreater(len(attack.name), 0) |
| 201 | self.assertIsInstance(attack.type, Type) |
| 202 | self.assertGreaterEqual(attack.damage, 0) |
| 203 | self.assertGreater(attack.duration, .0) |
| 204 | self.assertGreater(attack.energy, 0) |
| 205 | self.assertGreaterEqual(attack.dps, 0) |
| 206 | assert (.0 <= attack.rate_in_type <= 1.0) |
| 207 | self.assertLessEqual(attack.dps, prev_dps) |
| 208 | self.assertEqual(attack.is_charged, charged) |
| 209 | self.assertIs(attack, clazz.data_for(attack.id)) |
| 210 | self.assertIs(attack, clazz.by_name(attack.name)) |
| 211 | assert (attack in clazz.list_for_type(attack.type)) |
| 212 | assert (attack in clazz.list_for_type(attack.type.name)) |
| 213 | self.assertIsInstance(attack, ChargedAttack if charged else Attack) |
| 214 | prev_dps = attack.dps |
no test coverage detected