Example #1
0
 def test_zoo_tend_animal_no_budget(self):
     z = Zoo("Zoo", 250, 2, 2)
     z.add_animal(Lion("John", "m", 2), 100)
     z.add_animal(Tiger("Bill", "f", 4), 100)
     res = z.tend_animals()
     self.assertEqual(
         res, "You have no budget to tend the animals. They are unhappy.")
Example #2
0
 def test_zoo_tend_animal_success(self):
     z = Zoo("Zoo", 500, 2, 2)
     z.add_animal(Lion("John", "m", 2), 100)
     z.add_animal(Tiger("Bill", "f", 4), 100)
     res = z.tend_animals()
     self.assertEqual(z._Zoo__budget, 205)
     self.assertEqual(
         res,
         "You tended all the animals. They are happy. Budget left: 205")
Example #3
0
 def update_zoos(self):
     zoos = []
     all_zoos = self.get_zoos()
     for zoo in all_zoos:
         zoo = Zoo(zoo["name"], zoo["capacity"], zoo["budget"])
         for animal in self.fetch_animals_from_zoo(zoo.get_name()):
             animal = Animal(animal["species"], animal["age"], animal["name"], animal["gender"], animal["weight"])
             zoo.add_animal(animal)
         zoos.append(zoo)
     return zoos
Example #4
0
class testZoo(unittest.TestCase):

    def setUp(self):
        self.testAnim = Animal("zvqr", 10, 'gosh', 'male', 100)
        self.testZoo = Zoo(15, 12000)

    def test_get_animal_no_animals(self):
        self.assertEqual(0, self.testZoo.get_animal_count())

    def test_add_animal_with_count(self):
        self.testZoo.add_animal(self.testAnim)
        self.assertEqual(1, self.testZoo.get_animal_count())

    def test_remove_animal(self):
        self.testZoo.add_animal(self.testAnim)
        self.testZoo.remove_animal(self.testAnim)
        self.assertEqual(0, self.testZoo.get_animal_count())

    def test_income(self):
        self.testZoo.add_animal(self.testAnim)
        # Add some animals
        self.testAnimTosh = Animal("zver", 10, 'tosh', 'female', 120)
        self.testAnimTesi = Animal("cver", 10, 'tesi', 'male', 20)

        self.testZoo.add_animal(self.testAnimTesi)
        self.testZoo.add_animal(self.testAnimTosh)

        self.assertEqual(180, self.testZoo.income())
Example #5
0
File: main.py Project: skpai/oop
def main():
    a = Animal("cat", 1, 1)
    a.se_deplacer()
    s = Serpent("ss", 1, 1)
    s.se_deplacer()
    o = Oiseau("ss", 1, 1, 100)
    print(o.altmax)
    o.altmax = 150
    print(o.altmax)
    o.se_deplacer()
    o.dosomething()
    z = Zoo([s, o])
    z.dosomething()
    print(z)
    z.add_animal(a)
    print(z)
    print(z + z)
Example #6
0
class ZooTests(unittest.TestCase):
    def setUp(self):
        self.zoo = Zoo("Alexandria Zoo", 2, 1000)
        self.tiger_vitaly = Animal("tiger", 1, "Vitaly", "male", 180)
        self.lion_alex = Animal("lion", 1, "Alex", "male", 210)
        self.hippo_gloria = Animal("hippo", 2, "Gloria", "female", 1600)

    def test_get_zoo_name(self):
        self.assertEqual("Alexandria Zoo", self.zoo.get_name())

    def test_get_zoo_max_capacity(self):
        self.assertEqual(2, self.zoo.get_max_capacity())

    def test_get_zoo_budget(self):
        self.assertEqual(1000, self.zoo.get_budget())

    def test_get_animals(self):
        self.assertEqual("", self.zoo.get_animals())

    def test_add_animal(self):
        self.assertTrue(self.zoo.add_animal(self.tiger_vitaly))
        self.assertEqual("<Vitaly>: <tiger>, <1>, <180>", self.zoo.get_animals())

    def test_add_animal_when_no_space(self):
        self.assertTrue(self.zoo.add_animal(self.tiger_vitaly))
        self.assertEqual("<Vitaly>: <tiger>, <1>, <180>", self.zoo.get_animals())
        self.assertTrue(self.zoo.add_animal(self.lion_alex))
        self.assertEqual("<Vitaly>: <tiger>, <1>, <180>\n<Alex>: <lion>, <1>, <210>", self.zoo.get_animals())
        self.assertFalse(self.zoo.add_animal(self.hippo_gloria))
        self.assertEqual("<Vitaly>: <tiger>, <1>, <180>\n<Alex>: <lion>, <1>, <210>", self.zoo.get_animals())

    def test_remove_animal(self):
        self.assertTrue(self.zoo.add_animal(self.tiger_vitaly))
        self.assertEqual("<Vitaly>: <tiger>, <1>, <180>", self.zoo.get_animals())
        self.assertTrue(self.zoo.remove_animal(0))
        self.assertEqual("", self.zoo.get_animals())

    def test_is_there_space(self):
        self.assertTrue(self.zoo.is_there_space())

    def test_is_there_space_when_no_space(self):
        self.assertTrue(self.zoo.add_animal("Tiger"))
        self.assertTrue(self.zoo.add_animal("Lion"))
        self.assertFalse(self.zoo.is_there_space())

    def test_get_daily_expenses_when_empty_zoo(self):
        self.assertEqual(0, self.zoo.get_daily_expenses())

    def test_get_daily_expenses(self):
        self.assertTrue(self.zoo.add_animal(self.tiger_vitaly))
        expected = 4 * (self.tiger_vitaly.get_food_weight_ratio() * self.tiger_vitaly.weight)
        self.assertEqual(expected, self.zoo.get_daily_expenses())
Example #7
0
 def test_animal_status(self):
     z = Zoo("My Zoo", 500, 3, 3)
     z.add_animal(Lion("Leo", "Male", 3), 100)
     z.add_animal(Tiger("Tigy", "Female", 4), 100)
     z.add_animal(Cheetah("Chi", "Female", 2), 100)
     res = z.animals_status()
     self.assertEqual(
         res,
         "You have 3 animals\n----- 1 Lions:\nName: Leo, Age: 3, Gender: Male\n----- 1 Tigers:\nName: Tigy, Age: 4, Gender: Female\n----- 1 Cheetahs:\nName: Chi, Age: 2, Gender: Female"
     )
Example #8
0
 def test_zoo_add_animal_no_space(self):
     z = Zoo("My Zoo", 1500, 0, 10)
     res = z.add_animal(Lion("Neo", "Male", 2), 1000)
     self.assertEqual(res, "Not enough space for animal")
     self.assertEqual(len(z.animals), 0)
     self.assertEqual(z._Zoo__budget, 1500)
Example #9
0
 def test_zoo_add_animal_no_budget(self):
     z = Zoo("My Zoo", 500, 6, 10)
     res = z.add_animal(Lion("Neo", "Male", 2), 1000)
     self.assertEqual(res, "Not enough budget")
     self.assertEqual(len(z.animals), 0)
     self.assertEqual(z._Zoo__budget, 500)
Example #10
0
 def test_zoo_add_animal_success(self):
     z = Zoo("My Zoo", 1500, 6, 10)
     res = z.add_animal(Lion("Neo", "Male", 2), 1000)
     self.assertEqual(res, "Neo the Lion added to the zoo")
     self.assertEqual(len(z.animals), 1)
     self.assertEqual(z._Zoo__budget, 500)
Example #11
0
class Zoo_test(unittest.TestCase):

    def setUp(self):
        self.zoopark = Zoo(2, 5)
        self.puh_panda = Animal("panda", 3, "Puh", "male", 100)

    def test_init_animal(self):
        self.zoopark.animals.append(self.puh_panda)
        self.assertEqual(self.zoopark.capacity, 2)
        self.assertEqual(self.zoopark.budget, 5)
        self.assertEqual(self.zoopark.animals[0], self.puh_panda)

    def test_add_animal(self):
        self.zoopark.add_animal(self.puh_panda)
        self.assertEqual(self.zoopark.animals[0], self.puh_panda)
        self.assertEqual(len(self.zoopark.animals), 1)

    def test_add_animal_full_zoo(self):
        self.zoopark.add_animal(self.puh_panda)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(gosho_tiger)
        ivan_tiger = Animal("tiger", 4, "Ivan", "male", 30)
        self.zoopark.add_animal(ivan_tiger)
        self.assertEqual(len(self.zoopark.animals), 2)
        self.assertEqual(self.zoopark.animals[0], self.puh_panda)
        self.assertEqual(self.zoopark.animals[1], gosho_tiger)

    def test_add_animal_same_name(self):
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(gosho_tiger)
        ivan_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(ivan_tiger)
        self.assertEqual(len(self.zoopark.animals), 1)
        self.assertEqual(self.zoopark.animals[0], gosho_tiger)

    def test_add_no_same_species(self):
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(gosho_tiger)
        ivan_pantera = Animal("pantera", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(ivan_pantera)
        self.assertEqual(len(self.zoopark.animals), 1)

    def test_check_equal_species_name_false(self):
        ivan_tiger = Animal("tiger", 4, "Ivan", "male", 30)
        self.zoopark.animals.append(ivan_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.assertFalse(self.zoopark._check_equal_species_name(gosho_tiger))

    def test_check_equal_species_name_true(self):
        ivan_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(ivan_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.assertTrue(self.zoopark._check_equal_species_name(gosho_tiger))

    def test_daily_budget_upd(self):
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(gosho_tiger)
        self.assertEqual(self.zoopark._daily_budget_update(), 24)

    def test_daily_budget_upd_no_animals(self):
        self.assertEqual(self.zoopark._daily_budget_update(), 0)

    def test_monthly_budget_upd(self):
        ivan_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(ivan_tiger)
        self.assertEqual(self.zoopark.monthly_budget_update(), 744)

    def test_zoo_budget_update(self):
        ivan_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(ivan_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark._update_zoo_budget(2)
        self.assertEqual(self.zoopark.budget, 2981)

    def test_generate_name(self):
        name = self.zoopark._generate_name()
        self.assertIn(name, config.NAMES)

    def test_generate_gender(self):
        gender = self.zoopark._generate_gender()
        self.assertIn(gender, ["male", "female"])

    def test_born_baby(self):
        yana_tiger = Animal("tiger", 7, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        baby = self.zoopark.born_animal(yana_tiger)
        self.assertEqual(len(self.zoopark.animals), 2)
        self.assertEqual(baby.species, "tiger")
        self.assertEqual(baby.age, 0)
        self.assertIn(baby.name, config.NAMES)
        self.assertIn(baby.gender, ["male", "female"])
        self.assertEqual(baby.weight, 10)

    def test_accommodate(self):
        new_zoo = Zoo(1, 5)
        new_zoo.accommodate("tiger", 6, "misho", "male", 20)
        self.assertEqual(len(new_zoo.animals), 1)

    def test_accommodate_no_same_species(self):
        new_zoo = Zoo(1, 5)
        new_zoo.accommodate("pantera", 6, "misho", "male", 20)
        self.assertEqual(len(new_zoo.animals), 0)

    def test_move_to_habitat(self):
        self.zoopark.add_animal(self.puh_panda)
        self.zoopark.move_to_habitat("panda", "Puh")
        self.assertEqual(len(self.zoopark.animals), 0)

    def test_give_me_female_one(self):
        self.zoopark.add_animal(self.puh_panda)
        yana_tiger = Animal("tiger", 4, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        female = self.zoopark._give_me_female_one(self.puh_panda, yana_tiger)
        self.assertEqual(female.name, "Yana")

    def test_pregnance_reqs_female_true(self):
        yana_tiger = Animal("tiger", 7, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        self.assertTrue(self.zoopark._pregnance_reqs_female(yana_tiger))

    def test_pregnance_reqs_female_false1(self):
        yana_tiger = Animal("tiger", 5, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        self.assertFalse(self.zoopark._pregnance_reqs_female(yana_tiger))

    def test_pregnance_reqs_female_false2(self):
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        yana_tiger.is_pregnant = True
        self.zoopark.animals.append(yana_tiger)
        self.assertFalse(self.zoopark._pregnance_reqs_female(yana_tiger))

    def test_make_reproduction_moves_true_one_couple(self):
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark.make_reproduction_moves()
        self.assertTrue(yana_tiger.is_pregnant)
        self.assertEqual(yana_tiger.gestination_period, 0)

    def test_make_reproduction_moves_true_some_animals(self):
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark.animals.append(self.puh_panda)
        puha_panda_f = Animal("panda", 8, "Vanya", "female", 100)
        self.zoopark.animals.append(puha_panda_f)
        dif_animal = Animal("bear", 8, "Vasilka", "female", 100)
        self.zoopark.animals.append(dif_animal)
        self.zoopark.make_reproduction_moves()
        self.assertTrue(yana_tiger.is_pregnant)
        self.assertEqual(yana_tiger.gestination_period, 0)
        self.assertTrue(puha_panda_f.is_pregnant)
        self.assertEqual(puha_panda_f.gestination_period, 0)

    def test_make_reproduction_moves_false1_one_couple(self):
        yana_tiger = Animal("tiger", 5, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark.make_reproduction_moves()
        self.assertFalse(yana_tiger.is_pregnant)

    def test_make_reproduction_moves_false2_one_couple(self):
        yana_tiger = Animal("tiger", 5, "Yana", "female", 30)
        yana_tiger.is_pregnant = True
        yana_tiger.gestination_period = 4
        self.zoopark.animals.append(yana_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark.make_reproduction_moves()
        self.assertEqual(yana_tiger.gestination_period, 4)

    def test_make_reproduction_moves_false3_one_couple(self):
        yana_tiger = Animal("tiger", 5, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        gosho_tiger = Animal("panda", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark.make_reproduction_moves()
        self.assertFalse(yana_tiger.is_pregnant)

    def test_make_reproduction_moves_false4(self):
        yana_tiger = Animal("tiger", 5, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        self.zoopark.make_reproduction_moves()
        self.assertFalse(yana_tiger.is_pregnant)

    def test_actions_with_pregnant_one(self):
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        yana_tiger.is_pregnant = True
        self.zoopark.animals.append(yana_tiger)
        self.zoopark.actions_with_pregnant_one(5)
        self.assertEqual(yana_tiger.gestination_period, 5)
        self.assertEqual(len(self.zoopark.animals), 1)
        self.assertEqual(yana_tiger.relax_period, 8)

    def test_actions_with_pregnant_one_new_baby(self):
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        yana_tiger.is_pregnant = True
        self.zoopark.animals.append(yana_tiger)
        self.zoopark.actions_with_pregnant_one(8)
        self.assertEqual(yana_tiger.gestination_period, 0)
        self.assertEqual(len(self.zoopark.animals), 2)
        self.assertEqual(yana_tiger.relax_period, 2)
        baby = self.zoopark.animals[1]
        self.assertEqual(baby.age, 2)

    def test_growing(self):
        self.zoopark.animals.append(self.puh_panda)
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        self.zoopark.grow_animals(5)
        self.assertEqual(self.puh_panda.age, 8)
        self.assertEqual(yana_tiger.age, 13)
Example #12
0
class TestZoo(unittest.TestCase):

	def setUp(self):
		self.zoo_test = Zoo(50, 100000)
		self.bear_male = Animal("bear", 5, "Paul", "male", 200)
		self.bear_female = Animal("bear", 4, "Lucy", "female", 170)
		self.monkey = Animal("monkey", 2, "John", "male", 20)
		self.monkey_female = Animal("monkey", 2, "Molly", "female", 15)

	def test_init(self):
		self.assertEqual(self.zoo_test.capacity, 50)
		self.assertEqual(self.zoo_test.budget, 100000)		

	def test_add_animal(self):
		self.zoo_test.add_animal(self.bear_male)
		self.zoo_test.add_animal(self.monkey)
		self.assertIn(self.bear_male, self.zoo_test.animals)
		self.assertIn(self.monkey, self.zoo_test.animals)

	def test_daily_income(self):
		self.zoo_test.add_animal(self.bear_male)
		self.zoo_test.add_animal(self.bear_female)
		self.zoo_test.add_animal(self.monkey)
		self.assertEqual(self.zoo_test.daily_income(), 180)

	def test_daily_outcome(self):
		self.zoo_test.add_animal(self.bear_male)
		self.zoo_test.add_animal(self.bear_female)
		self.assertEqual(self.zoo_test.daily_outcome(), 74)

	def test_is_not_pregnant(self):
		self.zoo_test.add_animal(self.bear_male)
		self.zoo_test.add_animal(self.bear_female)
		self.zoo_test.male_female_couple("bear")
		self.assertIn(self.bear_female, self.zoo_test.pregnant_animals)

	def test_pass_months(self):
		self.zoo_test.add_animal(self.bear_male)
		self.zoo_test.add_animal(self.bear_female)
		self.zoo_test.male_female_couple("bear")
		self.zoo_test.add_animal(self.monkey)
		self.zoo_test.add_animal(self.monkey_female)
		self.zoo_test.male_female_couple("monkey")
		self.zoo_test.pass_months(14)

		self.zoo_test.show_animals()

	def test_male_female_couple(self):
		self.zoo_test.add_animal(self.monkey)
		self.zoo_test.add_animal(self.bear_male)
		self.zoo_test.add_animal(self.bear_female)
		self.assertTrue(self.zoo_test.male_female_couple("bear"))
Example #13
0
    Keeper("John", 26, 100),
    Keeper("Adam", 29, 80),
    Keeper("Anna", 31, 95),
    Caretaker("Bill", 21, 68),
    Caretaker("Marie", 32, 105),
    Caretaker("Stacy", 35, 140),
    Vet("Peter", 40, 300),
    Vet("Kasey", 37, 280),
    Vet("Sam", 29, 220)
]

# Adding all animals
for i in range(len(animals)):
    animal = animals[i]
    price = prices[i]
    print(zoo.add_animal(animal, price))

# Adding all workers
for worker in workers:
    print(zoo.hire_worker(worker))

# Tending animals
print(zoo.tend_animals())

# Paying keepers
print(zoo.pay_workers())

# Fireing worker
print(zoo.fire_worker("Adam"))

# # Printing statuses
Example #14
0
class Zoo_test(unittest.TestCase):
    def setUp(self):
        self.zoopark = Zoo(2, 5)
        self.puh_panda = Animal("panda", 3, "Puh", "male", 100)

    def test_init_animal(self):
        self.zoopark.animals.append(self.puh_panda)
        self.assertEqual(self.zoopark.capacity, 2)
        self.assertEqual(self.zoopark.budget, 5)
        self.assertEqual(self.zoopark.animals[0], self.puh_panda)

    def test_add_animal(self):
        self.zoopark.add_animal(self.puh_panda)
        self.assertEqual(self.zoopark.animals[0], self.puh_panda)
        self.assertEqual(len(self.zoopark.animals), 1)

    def test_add_animal_full_zoo(self):
        self.zoopark.add_animal(self.puh_panda)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(gosho_tiger)
        ivan_tiger = Animal("tiger", 4, "Ivan", "male", 30)
        self.zoopark.add_animal(ivan_tiger)
        self.assertEqual(len(self.zoopark.animals), 2)
        self.assertEqual(self.zoopark.animals[0], self.puh_panda)
        self.assertEqual(self.zoopark.animals[1], gosho_tiger)

    def test_add_animal_same_name(self):
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(gosho_tiger)
        ivan_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(ivan_tiger)
        self.assertEqual(len(self.zoopark.animals), 1)
        self.assertEqual(self.zoopark.animals[0], gosho_tiger)

    def test_add_no_same_species(self):
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(gosho_tiger)
        ivan_pantera = Animal("pantera", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(ivan_pantera)
        self.assertEqual(len(self.zoopark.animals), 1)

    def test_check_equal_species_name_false(self):
        ivan_tiger = Animal("tiger", 4, "Ivan", "male", 30)
        self.zoopark.animals.append(ivan_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.assertFalse(self.zoopark._check_equal_species_name(gosho_tiger))

    def test_check_equal_species_name_true(self):
        ivan_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(ivan_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.assertTrue(self.zoopark._check_equal_species_name(gosho_tiger))

    def test_daily_budget_upd(self):
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.add_animal(gosho_tiger)
        self.assertEqual(self.zoopark._daily_budget_update(), 24)

    def test_daily_budget_upd_no_animals(self):
        self.assertEqual(self.zoopark._daily_budget_update(), 0)

    def test_monthly_budget_upd(self):
        ivan_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(ivan_tiger)
        self.assertEqual(self.zoopark.monthly_budget_update(), 744)

    def test_zoo_budget_update(self):
        ivan_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(ivan_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark._update_zoo_budget(2)
        self.assertEqual(self.zoopark.budget, 2981)

    def test_generate_name(self):
        name = self.zoopark._generate_name()
        self.assertIn(name, config.NAMES)

    def test_generate_gender(self):
        gender = self.zoopark._generate_gender()
        self.assertIn(gender, ["male", "female"])

    def test_born_baby(self):
        yana_tiger = Animal("tiger", 7, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        baby = self.zoopark.born_animal(yana_tiger)
        self.assertEqual(len(self.zoopark.animals), 2)
        self.assertEqual(baby.species, "tiger")
        self.assertEqual(baby.age, 0)
        self.assertIn(baby.name, config.NAMES)
        self.assertIn(baby.gender, ["male", "female"])
        self.assertEqual(baby.weight, 10)

    def test_accommodate(self):
        new_zoo = Zoo(1, 5)
        new_zoo.accommodate("tiger", 6, "misho", "male", 20)
        self.assertEqual(len(new_zoo.animals), 1)

    def test_accommodate_no_same_species(self):
        new_zoo = Zoo(1, 5)
        new_zoo.accommodate("pantera", 6, "misho", "male", 20)
        self.assertEqual(len(new_zoo.animals), 0)

    def test_move_to_habitat(self):
        self.zoopark.add_animal(self.puh_panda)
        self.zoopark.move_to_habitat("panda", "Puh")
        self.assertEqual(len(self.zoopark.animals), 0)

    def test_give_me_female_one(self):
        self.zoopark.add_animal(self.puh_panda)
        yana_tiger = Animal("tiger", 4, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        female = self.zoopark._give_me_female_one(self.puh_panda, yana_tiger)
        self.assertEqual(female.name, "Yana")

    def test_pregnance_reqs_female_true(self):
        yana_tiger = Animal("tiger", 7, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        self.assertTrue(self.zoopark._pregnance_reqs_female(yana_tiger))

    def test_pregnance_reqs_female_false1(self):
        yana_tiger = Animal("tiger", 5, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        self.assertFalse(self.zoopark._pregnance_reqs_female(yana_tiger))

    def test_pregnance_reqs_female_false2(self):
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        yana_tiger.is_pregnant = True
        self.zoopark.animals.append(yana_tiger)
        self.assertFalse(self.zoopark._pregnance_reqs_female(yana_tiger))

    def test_make_reproduction_moves_true_one_couple(self):
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark.make_reproduction_moves()
        self.assertTrue(yana_tiger.is_pregnant)
        self.assertEqual(yana_tiger.gestination_period, 0)

    def test_make_reproduction_moves_true_some_animals(self):
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark.animals.append(self.puh_panda)
        puha_panda_f = Animal("panda", 8, "Vanya", "female", 100)
        self.zoopark.animals.append(puha_panda_f)
        dif_animal = Animal("bear", 8, "Vasilka", "female", 100)
        self.zoopark.animals.append(dif_animal)
        self.zoopark.make_reproduction_moves()
        self.assertTrue(yana_tiger.is_pregnant)
        self.assertEqual(yana_tiger.gestination_period, 0)
        self.assertTrue(puha_panda_f.is_pregnant)
        self.assertEqual(puha_panda_f.gestination_period, 0)

    def test_make_reproduction_moves_false1_one_couple(self):
        yana_tiger = Animal("tiger", 5, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark.make_reproduction_moves()
        self.assertFalse(yana_tiger.is_pregnant)

    def test_make_reproduction_moves_false2_one_couple(self):
        yana_tiger = Animal("tiger", 5, "Yana", "female", 30)
        yana_tiger.is_pregnant = True
        yana_tiger.gestination_period = 4
        self.zoopark.animals.append(yana_tiger)
        gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark.make_reproduction_moves()
        self.assertEqual(yana_tiger.gestination_period, 4)

    def test_make_reproduction_moves_false3_one_couple(self):
        yana_tiger = Animal("tiger", 5, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        gosho_tiger = Animal("panda", 4, "Gosho", "male", 30)
        self.zoopark.animals.append(gosho_tiger)
        self.zoopark.make_reproduction_moves()
        self.assertFalse(yana_tiger.is_pregnant)

    def test_make_reproduction_moves_false4(self):
        yana_tiger = Animal("tiger", 5, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        self.zoopark.make_reproduction_moves()
        self.assertFalse(yana_tiger.is_pregnant)

    def test_actions_with_pregnant_one(self):
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        yana_tiger.is_pregnant = True
        self.zoopark.animals.append(yana_tiger)
        self.zoopark.actions_with_pregnant_one(5)
        self.assertEqual(yana_tiger.gestination_period, 5)
        self.assertEqual(len(self.zoopark.animals), 1)
        self.assertEqual(yana_tiger.relax_period, 8)

    def test_actions_with_pregnant_one_new_baby(self):
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        yana_tiger.is_pregnant = True
        self.zoopark.animals.append(yana_tiger)
        self.zoopark.actions_with_pregnant_one(8)
        self.assertEqual(yana_tiger.gestination_period, 0)
        self.assertEqual(len(self.zoopark.animals), 2)
        self.assertEqual(yana_tiger.relax_period, 2)
        baby = self.zoopark.animals[1]
        self.assertEqual(baby.age, 2)

    def test_growing(self):
        self.zoopark.animals.append(self.puh_panda)
        yana_tiger = Animal("tiger", 8, "Yana", "female", 30)
        self.zoopark.animals.append(yana_tiger)
        self.zoopark.grow_animals(5)
        self.assertEqual(self.puh_panda.age, 8)
        self.assertEqual(yana_tiger.age, 13)
Example #15
0
    vipere.se_deplacer()

    aigle = Oiseau(3.45, 78, 450)
    print("oiseau")
    aigle.getPoidsTaille()
    aigle.se_deplacer()

    #[Super fonction]
    print("Altitude maximal", aigle.oiseau_alt, "m")

    #[Encapsulation]
    chien = Animal(5.6, 37)
    #chien = Animal(-5.6,37)

    #[Association]
    anims = Zoo([chat, vipere, aigle, chien])
    #anims = Zoo([chat, 12, aigle, chien])
    renard = Animal(2.8, 26)
    anims.add_animal(renard)

    #[Operator overloading]
    print(chat)
    print(renard)

    poule = Animal(1.8, 25)
    vache = Animal(140, 250)
    mouton = Animal(80, 124)
    ferme = Zoo([poule, vache, mouton])
    #anims.add_zoo(ferme)
    zoo = anims.__add__(ferme)
Example #16
0
def make_months(time, period):
    if period == "months":
        return time
    elif period == "days":
        return time / config.MONTH_DAYS
    elif period == "weeks":
        return time / config.MONTH_WEEKS
    elif period == "years":
        return time * config.MONTHS_YEAR


#defining zoo and animals
zoopark = Zoo(5, 5)
puh_panda = Animal("panda", 3, "Puh", "male", 100)
zoopark.add_animal(puh_panda)
gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
zoopark.add_animal(gosho_tiger)
ivan_tiger = Animal("tiger", 4, "Ivan", "male", 30)
zoopark.add_animal(ivan_tiger)


def main():
    print(start_message)

    while True:
        command = split_command_str(input("Enter command>"))
        if the_command(command, "see_animals"):
            print_arr(zoopark)

        elif the_command(command, "accommodate"):
Example #17
0

def make_months(time, period):
    if period == "months":
        return time
    elif period == "days":
        return time / config.MONTH_DAYS
    elif period == "weeks":
        return time / config.MONTH_WEEKS
    elif period == "years":
        return time * config.MONTHS_YEAR

#defining zoo and animals
zoopark = Zoo(5, 5)
puh_panda = Animal("panda", 3, "Puh", "male", 100)
zoopark.add_animal(puh_panda)
gosho_tiger = Animal("tiger", 4, "Gosho", "male", 30)
zoopark.add_animal(gosho_tiger)
ivan_tiger = Animal("tiger", 4, "Ivan", "male", 30)
zoopark.add_animal(ivan_tiger)


def main():
    print(start_message)

    while True:
        command = split_command_str(input("Enter command>"))
        if the_command(command, "see_animals"):
            print_arr(zoopark)

        elif the_command(command, "accommodate"):
Example #18
0
from zoo import Zoo
from sozinova_class_giraffe import Giraffe

z = Zoo()
for i in range(4):
    a = Giraffe()
    a.color = '#2E4DFF'
    a.marker = '<'
    z.add_animal(a)
z.start()
Example #19
0
from zoo import Zoo, Cat

if __name__ == '__main__':
    # 实例化动物园
    z = Zoo('时间动物园')
    # 实例化一只猫,属性包括名字、类型、体型、性格
    cat1 = Cat('大花猫 1', '食肉', '小', '温顺')
    # 增加一只猫到动物园
    z.add_animal(cat1)
    # 动物园是否有猫这种动物
    have_cat = hasattr(z, 'Cat')
Example #20
0
add_food_to_reserve - Updates the amount of food in reserve
>>> from zoo import Zoo
>>> zoo = Zoo()
>>> zoo.reserved_food_in_kgs
0
>>> zoo.add_food_to_reserve(10000000)
>>> zoo.reserved_food_in_kgs
10000000

count_animals should return all the animals count in that zoo
>>> zoo.count_animals()
0

add_animal - should add a new animal to the zoo
>>> gold_fish = GoldFish(age_in_months=1, breed="Nemo", required_food_in_kgs=0.5)
>>> zoo.add_animal(gold_fish)
>>> zoo.count_animals()
1

feed : On feeding an animal it grows and the food in zoo reserve should be reduced by required_food_in_kgs of the animal.
>>> zoo.reserved_food_in_kgs
10000000
>>> zoo.feed(gold_fish)
>>> zoo.reserved_food_in_kgs
9999999.5
>>> gold_fish.age_in_months
2

count_animals_in_all_zoos should return the total of all the animals in all zoos (Hint: use whichever is appropriate among classmethod, staticmethod)

count_animals_in_given_zoos should take a list of Zoo objects and return the number of animals in the given list of zoos (Hint: use whichever is appropriate among classmethod, staticmethod)