def main():
    # This is wrong, since animal is abstract.
    # However, Python does not prevent you from doing it.
    animal = animals.Animal('Harry', 65)
    # The below will throw an error, since eat() relies on primaryFood(),
    # which is not implemented in the base class.
    # animal.eat()

    # Should never do this.
    # tailedAnimal = animals.TailedAnimalMixin('Rex', tailLength=6.5)

    dog = animals.Dog('Rex', 65, tailLength=6.5, breed='Dalmatian')
    dog.bark()
    dog.eat()
    dog.sleep()
    dog.wagTail()
    print dog.weight()
    dog.takeToVet()

    # Bat itself does not have an __init__, but its first base class (WingedAnimalMixin) does.
    # Hence, we pass in three parameters, to match the signature of WingedAnimalMixin's __init__.
    bat = animals.Bat('Ted', 0.5, wingSpan=1.2)
    bat.fly()
    print bat.weight()
    bat.land()
    print bat.weight()
    bat.eat()
    bat.sleep()
    bat.hangUpsideDown()
示例#2
0
 def test_unit(self):
     bagira = animals.Animal("Puma", "Bagira", 20, "Female")
     self.assertEqual(bagira.spec, "Puma")
     self.assertEqual(bagira.name, "Bagira")
     self.assertEqual(bagira.age, 10)
     self.assertEqual(bagira.sex, "Female")
     self.assertIsNone(bagira.atype)
示例#3
0
 def test_receive_hit(self):
     animal = animals.Animal()
     animal.receive_hit(1)
     self.assertTrue(animal.is_alive)
     animal.receive_hit(8)
     self.assertTrue(animal.is_alive)
     animal.receive_hit(1)
     self.assertFalse(animal.is_alive)
示例#4
0
    def test_check_motility(self):
        animal = 'snake'
        name = 'Sandra'
        n_legs = 0
        gender = 'F'
        speech_type = 'hiss'

        test_animals = animals.Animal(animal, name, n_legs, gender,
                                      speech_type)

        result = test_animals.check_motility()

        self.assertTrue(result,
                        f'{name} the {animal} has no legs so it slides')
示例#5
0
    def test_check_speech(self):
        animal = 'cat'
        name = 'Luna'
        n_legs = 4
        gender = 'F'
        speech_type = 'meow'

        test_animals = animals.Animal(animal, name, n_legs, gender,
                                      speech_type)

        result = test_animals.check_speech_type()

        # self.assertEqual(result, 'It is dog!') --> faild test
        self.assertEqual(result, 'It is a cat!')
示例#6
0
def main(argv):
    animal_kind = argv[1]
    animal_name = argv[2]
    zoo_worker = argv[3]
    if animal_kind == 'cat':
        animal = animals.Cat(animal_name)
    elif animal_kind == 'dog':
        animal = animals.Dogfish(animal_name)
    else:
        animal = animals.Animal(animal_name, animal_kind)
    animal.introduce()
    if animal.kind == 'cat':
        animal.act(zoo_worker, 'meows')
    elif animal.kind == 'dog':
        animal.act(zoo_worker, 'barks')
    elif animal.kind == 'dogfish'
        animal.act(zoo_worker, 'stares')
    else:
        animal.act(zoo_worker, 'looks confused')
示例#7
0
    def test_animal_init(self):
        animal = 'dog'
        name = 'Toby'
        n_legs = 4
        gender = 'M'
        speech_type = 'bau'

        test_animals = animals.Animal(animal, name, n_legs, gender,
                                      speech_type)

        assert hasattr(test_animals,
                       'animal'), 'Class Animal is missing animal attribute'
        assert hasattr(test_animals,
                       'name'), 'Class Animal is missing name attribute'
        assert hasattr(test_animals,
                       'n_legs'), 'Class Animal is missing n_legs attribute'
        assert hasattr(test_animals,
                       'gender'), 'Class Animal is missing gender attribute'
        assert hasattr(
            test_animals,
            'speech_type'), 'Class Animal is missing speech_type attribute'
示例#8
0
 def test_attack(self):
     animal = animals.Animal()
     target = animals.Animal(99)
     animal.attack(target)
     self.assertEqual(target.health, 99)
示例#9
0
 def test_attack(self):
     animal = animals.Animal(100)
     shark = animals.Shark(weapon=animals.Laser())
     shark.weapon.owner = shark
     shark.attack(animal)
     self.assertEqual(animal.health, 85.0)
示例#10
0
 def test_attack(self):
     orca = animals.Orca()
     animal = animals.Animal(100)
     orca.attack(animal)
     self.assertEqual(animal.health, 90)
示例#11
0
 def test_eat(self):
     orca = animals.Orca()
     animal = animals.Animal(100)
     orca.eat(animal)
     self.assertEqual(animal.health, 90)
示例#12
0
 def test_attack(self):
     shark = animals.Shark()
     animal = animals.Animal(100)
     shark.attack(animal)
     self.assertEqual(animal.health, 95)
示例#13
0
 def test_eat(self):
     shark = animals.Shark()
     animal = animals.Animal(100)
     shark.eat(animal)
     self.assertEqual(animal.health, 95)
示例#14
0
import animals

animal = animals.Animal("fred")
animal.walk().walk().walk().run().run().displayHealth()
dog = animals.Dog("Bob")
dog.walk().walk().walk().run().run().pet().displayHealth()
dragon = animals.Dragon("frank")
dragon.walk().walk().walk().run().run().fly().fly().displayHealth()
示例#15
0
 def test_attack(self):
     animal = animals.Animal(100)
     weapon = animals.Nunchuck()
     shark = animals.Shark(weapon=weapon)
     shark.attack(animal)
     self.assertEqual(animal.health, 93)
示例#16
0
import animals

#help(animals)

dog = animals.Animal("dog", "wof")
dog.says()
示例#17
0
 def test_attack(self):
     animal = animals.Animal(100)
     weapon = animals.Nunchuck()
     orca = animals.Orca(weapon=weapon)
     orca.attack(animal)
     self.assertEqual(animal.health, 88)
示例#18
0
import animals 
import shapes

#Implementation of classes for various animals and shapes (10 classes each) to learn abstraction and encapsulation, public and private access specifiers in Python
print("Details of animals.....\n")
a1 = animals.Animal()
a1.set_kingdom("Mammal")
a1.set_lifespan("20")
a1.displaydetails()
print("\n")

d1 = animals.Dog()
d1.set_name()
d1.set_lifespan("20")
d1.displaydetails()
d1.animalProperty()
print("\n")

liz1 = animals.Lizard()
liz1.set_name()
liz1.set_lifespan("10")
liz1.displaydetails()
liz1.animalProperty()
print("\n")

b1 = animals.Butterfly()
b1.set_name()
b1.set_lifespan("2")
b1.displaydetails()
b1.animalProperty()
print("\n")
示例#19
0
 def test_die(self):
     animal = animals.Animal()
     self.assertTrue(animal.is_alive)
     animal.die()
     self.assertFalse(animal.is_alive)