def test_only_one_move_causes_no_item_to_be_guessed(self): self.battle.user.active.stats[constants.SPEED] = 210 messages = [ '|move|p2a: Caterpie|Stealth Rock|', ] check_choicescarf(self.battle, messages) self.assertEqual(constants.UNKNOWN_ITEM, self.battle.opponent.active.item)
def test_unknown_moves_defaults_to_0_priority(self): self.battle.user.active.stats[ constants. SPEED] = 210 # opponent's speed should not be greater than 207 (max speed caterpie) messages = [ '|move|p2a: Caterpie|unknown-move|', '|move|p1a: Caterpie|unknown-move|' ] check_choicescarf(self.battle, messages) self.assertEqual('choicescarf', self.battle.opponent.active.item)
def test_guesses_scarf_in_trickroom_when_opponent_cannot_be_slower(self): self.battle.trick_room = True self.battle.user.active.stats[ constants.SPEED] = 110 # opponent caterpie speed is 113 - 207 messages = [ '|move|p2a: Caterpie|Stealth Rock|', '|move|p1a: Caterpie|Stealth Rock|' ] check_choicescarf(self.battle, messages) self.assertEqual('choicescarf', self.battle.opponent.active.item)
def test_guesses_choicescarf_when_opponent_should_always_be_slower(self): self.battle.user.active.stats[ constants. SPEED] = 210 # opponent's speed should not be greater than 207 (max speed caterpie) messages = [ '|move|p2a: Caterpie|Stealth Rock|', '|move|p1a: Caterpie|Stealth Rock|' ] check_choicescarf(self.battle, messages) self.assertEqual('choicescarf', self.battle.opponent.active.item)
def test_does_not_guess_choicescarf_when_item_is_known(self): self.battle.opponent.active.item = 'leftovers' self.battle.user.active.stats[ constants. SPEED] = 210 # opponent's speed should not be greater than 207 (max speed caterpie) messages = [ '|move|p2a: Caterpie|Stealth Rock|', '|move|p1a: Caterpie|Stealth Rock|' ] check_choicescarf(self.battle, messages) self.assertEqual('leftovers', self.battle.opponent.active.item)
def test_does_not_guess_item_when_opponent_can_be_faster(self): self.battle.user.active.stats[ constants. SPEED] = 200 # opponent's speed can be 207 (max speed caterpie) messages = [ '|move|p2a: Caterpie|Stealth Rock|', '|move|p1a: Caterpie|Stealth Rock|' ] check_choicescarf(self.battle, messages) self.assertEqual(constants.UNKNOWN_ITEM, self.battle.opponent.active.item)
def test_does_not_guess_item_when_moves_are_different_priority(self): self.battle.user.active.stats[ constants. SPEED] = 210 # opponent's speed should not be greater than 207 (max speed caterpie) messages = [ '|move|p2a: Caterpie|Quick Attack|', '|move|p1a: Caterpie|Stealth Rock|' ] check_choicescarf(self.battle, messages) self.assertEqual(constants.UNKNOWN_ITEM, self.battle.opponent.active.item)
def test_priority_move_with_unknown_move_does_not_cause_guess(self): self.battle.user.active.stats[ constants. SPEED] = 210 # opponent's speed should not be greater than 207 (max speed caterpie) messages = [ '|move|p2a: Caterpie|Quick Attack|', '|move|p1a: Caterpie|unknown-move|' ] check_choicescarf(self.battle, messages) self.assertEqual(constants.UNKNOWN_ITEM, self.battle.opponent.active.item)
def test_does_not_guess_scarf_under_trickroom_when_opponent_could_be_slower( self): self.battle.trick_room = True self.battle.user.active.stats[ constants.SPEED] = 205 # opponent caterpie speed is 113 - 207 messages = [ '|move|p2a: Caterpie|Stealth Rock|', '|move|p1a: Caterpie|Stealth Rock|' ] check_choicescarf(self.battle, messages) self.assertEqual(constants.UNKNOWN_ITEM, self.battle.opponent.active.item)
def test_does_not_guess_scarf_in_trickroom(self): self.battle.trick_room = True self.battle.user.active.stats[ constants. SPEED] = 210 # opponent's speed should not be greater than 207 (max speed caterpie) messages = [ '|move|p2a: Caterpie|Stealth Rock|', '|move|p1a: Caterpie|Stealth Rock|' ] check_choicescarf(self.battle, messages) self.assertEqual(constants.UNKNOWN_ITEM, self.battle.opponent.active.item)
def test_does_not_guess_choicescarf_when_bot_is_speed_unboosted(self): self.battle.user.active.stats[ constants. SPEED] = 210 # opponent's speed should not be greater than 207 (max speed caterpie) self.battle.user.active.boosts[constants.SPEED] = -1 messages = [ '|move|p2a: Caterpie|Stealth Rock|', '|move|p1a: Caterpie|Stealth Rock|' ] check_choicescarf(self.battle, messages) self.assertEqual(constants.UNKNOWN_ITEM, self.battle.opponent.active.item)
def test_swiftswim_causing_opponent_to_be_faster_results_in_not_guessing_choicescarf( self): self.battle.opponent.active.ability = 'swiftswim' self.battle.weather = constants.RAIN self.battle.user.active.stats[ constants. SPEED] = 300 # opponent's speed can be 414 (max speed caterpie plus swiftswim) messages = [ '|move|p2a: Caterpie|Stealth Rock|', '|move|p1a: Caterpie|Stealth Rock|' ] check_choicescarf(self.battle, messages) self.assertEqual(constants.UNKNOWN_ITEM, self.battle.opponent.active.item)