def test_will_eat_fish_food(self): tank = TestTank() others = [simfish.FishFood()] tank.add_items_with(*others) diver_fish = simfish.DiverFish() self.assertEqual(others, tank.items_with(diver_fish)) diver_fish.turn(tank) self.assertEqual(0, len(tank.items_with(diver_fish)))
def test_will_swim_forward(self): tank = TestTank() fish = TestFish(direction=simfish.EAST) tank.reset_movement_record() for i in range(fish.energy): fish.turn(tank) self.assertEqual(fish, tank.last_item_moved) self.assertEqual(i + 1, tank.total_dx) self.assertEqual(0, tank.total_dy) self.assertEqual(0, fish.energy)
def test_will_only_eat_one_fish_food_per_turn(self): FOOD_COUNT = 10 tank = TestTank() others = [simfish.FishFood()] * FOOD_COUNT tank.add_items_with(*others) snail = simfish.Snail() for count in range(FOOD_COUNT, 0, -1): self.assertEqual(count, len(tank.items_with(snail))) snail.turn(tank) self.assertEqual(0, len(tank.items_with(snail)))
def test_will_sink_when_dead(self): tank = TestTank() snail = simfish.Snail() for i in range(simfish.Snail.ENERGY): snail.turn(tank) self.assertFalse(snail.alive) tank.reset_movement_record() snail.turn(tank) self.assertEqual(snail, tank.last_item_moved) self.assertEqual(0, tank.total_dx) self.assertEqual(1, tank.total_dy)
def test_will_float_when_dead(self): tank = TestTank() diver_fish = simfish.DiverFish() for i in range(simfish.DiverFish.ENERGY): diver_fish.turn(tank) self.assertFalse(diver_fish.alive) tank.reset_movement_record() diver_fish.turn(tank) self.assertEqual(diver_fish, tank.last_item_moved) self.assertEqual(0, tank.total_dx) self.assertEqual(-1, tank.total_dy)
def test_will_float_when_dead(self): tank = TestTank() piranha_fish = simfish.PiranhaFish() for i in range(simfish.PiranhaFish.ENERGY): piranha_fish.turn(tank) self.assertFalse(piranha_fish.alive) tank.reset_movement_record() piranha_fish.turn(tank) self.assertEqual(piranha_fish, tank.last_item_moved) self.assertEqual(0, tank.total_dx) self.assertEqual(-1, tank.total_dy)
def test_can_breathe(self): tank = TestTank() diver_fish = simfish.DiverFish() self.assertTrue(diver_fish.alive) self.assertEqual(simfish.DiverFish.ENERGY, diver_fish.energy) diver_fish.turn(tank) self.assertEqual(simfish.DiverFish.ENERGY - 1, diver_fish.energy)
def test_can_breathe(self): tank = TestTank() snail = simfish.Snail() self.assertTrue(snail.alive) self.assertEqual(simfish.Snail.ENERGY, snail.energy) snail.turn(tank) self.assertEqual(simfish.Snail.ENERGY - 1, snail.energy)
def test_can_breathe(self): tank = TestTank() piranha_fish = simfish.PiranhaFish() self.assertTrue(piranha_fish.alive) self.assertEqual(simfish.PiranhaFish.ENERGY, piranha_fish.energy) piranha_fish.turn(tank) self.assertEqual(simfish.PiranhaFish.ENERGY - 1, piranha_fish.energy)
def test_will_sink(self): tank = TestTank() fish_food = simfish.FishFood() fish_food.turn(tank) self.assertEqual(fish_food, tank.last_item_moved) self.assertEqual(0, tank.total_dx) self.assertEqual(1, tank.total_dy)
def test_can_breathe(self): tank = TestTank() sun_fish = simfish.SunFish() self.assertTrue(sun_fish.alive) self.assertEqual(simfish.SunFish.ENERGY, sun_fish.energy) sun_fish.turn(tank) self.assertEqual(simfish.SunFish.ENERGY - 1, sun_fish.energy)
def test_can_die(self): tank = TestTank() sun_fish = simfish.SunFish() self.assertTrue(sun_fish.alive) self.assertEqual(simfish.SunFish.ENERGY, sun_fish.energy) for i in range(simfish.SunFish.ENERGY): sun_fish.turn(tank) self.assertEqual(0, sun_fish.energy) self.assertFalse(sun_fish.alive)
def test_can_die(self): tank = TestTank() snail = simfish.Snail() self.assertTrue(snail.alive) self.assertEqual(simfish.Snail.ENERGY, snail.energy) for i in range(simfish.Snail.ENERGY): snail.turn(tank) self.assertEqual(0, snail.energy) self.assertFalse(snail.alive)
def test_can_die(self): tank = TestTank() piranha_fish = simfish.PiranhaFish() self.assertTrue(piranha_fish.alive) self.assertEqual(simfish.PiranhaFish.ENERGY, piranha_fish.energy) for i in range(simfish.PiranhaFish.ENERGY): piranha_fish.turn(tank) self.assertEqual(0, piranha_fish.energy) self.assertFalse(piranha_fish.alive)
def test_can_die(self): tank = TestTank() diver_fish = simfish.DiverFish() self.assertTrue(diver_fish.alive) self.assertEqual(simfish.DiverFish.ENERGY, diver_fish.energy) for i in range(simfish.DiverFish.ENERGY): diver_fish.turn(tank) self.assertEqual(0, diver_fish.energy) self.assertFalse(diver_fish.alive)
def test_will_not_eat_fish_food(self): tank = TestTank() others = [simfish.FishFood()] tank.add_items_with(*others) clockwork_fish = simfish.ClockworkFish() self.assertEqual(others, tank.items_with(clockwork_fish)) clockwork_fish.turn(tank) self.assertEqual(others, tank.items_with(clockwork_fish))
def test_will_eat_fish_food(self): tank = TestTank() others = [simfish.FishFood()] tank.add_items_with(*others) snail = simfish.Snail() self.assertEqual(others, tank.items_with(snail)) snail.turn(tank) self.assertEqual(0, len(tank.items_with(snail)))
def test_will_eat_diver_fish(self): tank = TestTank() others = [simfish.DiverFish()] tank.add_items_with(*others) piranha_fish = simfish.PiranhaFish() self.assertEqual(others, tank.items_with(piranha_fish)) piranha_fish.turn(tank) self.assertEqual(0, len(tank.items_with(piranha_fish)))
def test_will_not_eat_clockwork_fish(self): tank = TestTank() others = [simfish.ClockworkFish()] tank.add_items_with(*others) piranha_fish = simfish.PiranhaFish() self.assertEqual(others, tank.items_with(piranha_fish)) piranha_fish.turn(tank) self.assertEqual(others, tank.items_with(piranha_fish))
def test_will_only_eat_one_item_per_turn(self): tank = TestTank() others = [simfish.FishFood(), simfish.SunFish(), simfish.DiverFish()] tank.add_items_with(*others) piranha_fish = simfish.PiranhaFish() for count in range(len(others), 0, -1): self.assertEqual(count, len(tank.items_with(piranha_fish))) piranha_fish.turn(tank) self.assertEqual(0, len(tank.items_with(piranha_fish)))
def test_will_only_eat_one_fish_food_per_turn(self): FOOD_COUNT = 10 tank = TestTank() others = [simfish.FishFood()] * FOOD_COUNT tank.add_items_with(*others) diver_fish = simfish.DiverFish() for count in range(FOOD_COUNT, 0, -1): self.assertEqual(count, len(tank.items_with(diver_fish))) diver_fish.turn(tank) self.assertEqual(0, len(tank.items_with(diver_fish)))
def test_will_not_eat_other_creatures(self): tank = TestTank() others = [ simfish.Snail(), simfish.SunFish(), simfish.DiverFish(), simfish.PiranhaFish(), simfish.ClockworkFish(), ] tank.add_items_with(*others) clockwork_fish = simfish.ClockworkFish() self.assertEqual(others, tank.items_with(clockwork_fish)) clockwork_fish.turn(tank) self.assertEqual(others, tank.items_with(clockwork_fish))