def test_assess_damage_max_health_add_damage_in_case_of_repair_ship(self): # Arrange name = 'NShip' type_ = 'Battle' align = 'them' x_location = 2 y_location = 2 amount_of_damage = 10 # Act ship = Ship(name, type_, x_location, y_location, align) ship._current_health = 100 ship._max_health = 100 ship.assess_damage(amount_of_damage) # Assert self.assertEqual(100, ship._current_health)
def test_assess_damage_current_health_zero_ship_destroyed(self): # Arrange name = 'NShip' type_ = 'Battle' align = 'them' x_location = 2 y_location = 2 amount_of_damage = -10 # Act ship = Ship(name, type_, x_location, y_location, align) ship._current_health = 0 ship._max_health = 100 ship.assess_damage(amount_of_damage) # Assert self.assertEqual(0, ship._current_health)
def test_move_current_health_is_less(self): # Arrange name = 'NShip' type_ = 'Battle' align = 'us' x_location = 2 y_location = 2 # Act ship = Ship(name, type_, x_location, y_location, align) ship._max_health = 100 ship._current_health = 90 ship.move() print(ship._current_health) # Assert self.assertNotEqual(90, ship._current_health) # 90 and 91 won't be equal
def test__get_distance_from_target(self): # Arrange name = 'NShip' type_ = 'Battle' align = 'them' x_location = 3 y_location = 3 # Act ship = Ship(name, type_, x_location, y_location, align) ship._range = 10 ship._max_health = 100 ship._attack_power = 10 target = Cruiser('Cruise1', 'Cruiser', 0, 7, 'us') result = ship._get_distance_from_target(target) print(result) # Assert self.assertEqual(5, result)
def test_move_current_health_is_max(self): # Arrange name = 'NShip' type_ = 'Battle' align = 'us' x_location = 2 y_location = 2 # Act ship = Ship(name, type_, x_location, y_location, align) ship._max_health = 100 ship._current_health = 100 ship.move() print(ship._current_health) # Assert self.assertEqual( 100, ship._current_health) # current health = max health - so equal
def test_attack_chaotic_alignment_in_range(self): # Arrange # Act ship = Battle('Nship', 'Battle', 3, 3, 'chaotic') target = Ship('BattleEnemy', 'Battle', 0, 7, 'them') ship._current_health = 90 ship._max_health = 100 ship._torpedoes = 9 target._current_health = 50 target._max_health = 100 print(ship._torpedoes) print(target._current_health) ship.attack(target) print(ship._torpedoes) print(target._current_health) # Assert self.assertEqual(8, ship._torpedoes) self.assertEqual(30, target._current_health)
def test_attack_diff_alignment_in_range_zero_torpedoes(self): # Arrange # Act ship = Battle('Nship', 'Battle', 3, 3, 'them') target = Ship('BattleEnemy', 'Battle', 0, 7, 'us') ship._current_health = 90 ship._max_health = 100 ship._torpedoes = 0 target._current_health = 100 target._max_health = 100 print(ship._torpedoes) print(target._current_health) ship.attack(target) print(ship._torpedoes) print(target._current_health) # Assert self.assertEqual(0, ship._torpedoes) self.assertEqual(90, target._current_health)
def test_attack_diff_alignment_out_of_range(self): # Arrange # Act ship = Battle('Nship', 'Battle', 30, 30, 'them') target = Ship('BattleEnemy', 'Battle', 0, 7, 'us') ship._current_health = 90 ship._max_health = 100 ship._torpedoes = 8 target._current_health = 80 target._max_health = 100 print(ship._torpedoes) print(target._current_health) ship.attack(target) print(ship._torpedoes) print(target._current_health) # Assert self.assertEqual(8, ship._torpedoes) self.assertEqual(80, target._current_health)
def test_attack_chaotic_alignment_and_in_range(self): # Arrange name = 'NShip' type_ = 'Battle' align = 'chaotic' x_location = 3 y_location = 3 # Act ship = Ship(name, type_, x_location, y_location, align) ship._range = 10 ship._max_health = 100 ship._current_health = 90 ship._attack_power = 10 target = Battle('BattleEnemy', 'Battle', 0, 7, 'them') target._current_health = 50 ship.attack(target) print(target._current_health) print(ship._current_health) # Assert self.assertEqual(40, target._current_health)