Exemple #1
0
 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)))
Exemple #2
0
 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)
Exemple #3
0
 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)))
Exemple #4
0
 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)
Exemple #5
0
 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)
Exemple #7
0
 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)
Exemple #8
0
 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)
Exemple #9
0
 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)
Exemple #10
0
 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)
Exemple #11
0
 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)
Exemple #12
0
 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)
Exemple #13
0
 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)
Exemple #14
0
 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)
Exemple #15
0
 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)
Exemple #16
0
 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))
Exemple #17
0
 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)))
Exemple #18
0
 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)))
Exemple #19
0
 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)))
Exemple #20
0
 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))
Exemple #21
0
 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)))
Exemple #22
0
 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)))
Exemple #23
0
 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))