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.")
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")
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
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())
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)
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())
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" )
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)
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)
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)
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)
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"))
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
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)
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"):
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()
from zoo import Zoo, Cat if __name__ == '__main__': # 实例化动物园 z = Zoo('时间动物园') # 实例化一只猫,属性包括名字、类型、体型、性格 cat1 = Cat('大花猫 1', '食肉', '小', '温顺') # 增加一只猫到动物园 z.add_animal(cat1) # 动物园是否有猫这种动物 have_cat = hasattr(z, 'Cat')
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)