Saw an error using the type instead of a variable to set legs. Added tests to test it all.
from dataclasses import dataclass @dataclass class Pet: name: str species: str gender: str age: int n_legs: int def have_birthday(self) -> int: self.age += 1 return self.age def define_n_legs(self, n_leg: int) -> None: self.n_legs = n_leg def define_gender(self, gender: str) -> None: self.gender = gender def change_species(self, new_species: str) -> None: self.species = new_species def display_info(self) -> None: s = f"{self.name} the {self.gender} {self.species}, age {self.age} has {self.n_legs} legs!" print(s) return s- from dataclasses import dataclass
- @dataclass
- class Pet:
- name: str
- species: str
- gender: str
- age: int
- n_legs: int
- def have_birthday(self) -> int:
- self.age += 1
- return self.age
- def define_n_legs(self, n_leg: int) -> None:
self.n_legs = int- self.n_legs = n_leg
- def define_gender(self, gender: str) -> None:
- self.gender = gender
- def change_species(self, new_species: str) -> None:
- self.species = new_species
- def display_info(self) -> None:
- s = f"{self.name} the {self.gender} {self.species}, age {self.age} has {self.n_legs} legs!"
- print(s)
- return s
import codewars_test as test # TODO Write tests import solution # or from solution import example def defaultPet(): return Pet("Bob", "Dog", "Male", 5, 4) # test.assert_equals(actual, expected, [optional] message) @test.describe("Example") def test_group(): @test.it("Dog") def test_case(): p = defaultPet() test.assert_equals("Bob the Male Dog, age 5 has 4 legs!", p.display_info()) @test.it("Growing Legs") def change_n_legs(): p = defaultPet() p.define_n_legs(6) test.assert_equals("Bob the Male Dog, age 5 has 6 legs!", p.display_info()) @test.it("Aging") def happy_birthday(): p = defaultPet() age = p.have_birthday() test.assert_equals(6, age) p.have_birthday() p.have_birthday() p.have_birthday() test.assert_equals("Bob the Male Dog, age 9 has 4 legs!", p.display_info()) @test.it("Gender Identity Matters") def assigned_at_birth(): p = defaultPet() p.define_gender("Female") test.assert_equals("Bob the Female Dog, age 5 has 4 legs!", p.display_info()) p.define_gender("Prefer not to Specify") test.assert_equals("Bob the Prefer not to Specify Dog, age 5 has 4 legs!", p.display_info()) @test.it("Pokemon Evolution") def miracle(): p = defaultPet() p.change_species("Cat") test.assert_equals("Bob the Male Cat, age 5 has 4 legs!", p.display_info())- import codewars_test as test
- # TODO Write tests
- import solution # or from solution import example
- def defaultPet():
- return Pet("Bob", "Dog", "Male", 5, 4)
- # test.assert_equals(actual, expected, [optional] message)
- @test.describe("Example")
- def test_group():
- @test.it("Dog")
- def test_case():
p = Pet("Bob", "Male", "Dog", 5, 4)test.assert_equals("Bob the Dog Male, age 5 has 4 legs!", p.display_info())- p = defaultPet()
- test.assert_equals("Bob the Male Dog, age 5 has 4 legs!", p.display_info())
- @test.it("Growing Legs")
- def change_n_legs():
- p = defaultPet()
- p.define_n_legs(6)
- test.assert_equals("Bob the Male Dog, age 5 has 6 legs!", p.display_info())
- @test.it("Aging")
- def happy_birthday():
- p = defaultPet()
- age = p.have_birthday()
- test.assert_equals(6, age)
- p.have_birthday()
- p.have_birthday()
- p.have_birthday()
- test.assert_equals("Bob the Male Dog, age 9 has 4 legs!", p.display_info())
- @test.it("Gender Identity Matters")
- def assigned_at_birth():
- p = defaultPet()
- p.define_gender("Female")
- test.assert_equals("Bob the Female Dog, age 5 has 4 legs!", p.display_info())
- p.define_gender("Prefer not to Specify")
- test.assert_equals("Bob the Prefer not to Specify Dog, age 5 has 4 legs!", p.display_info())
- @test.it("Pokemon Evolution")
- def miracle():
- p = defaultPet()
- p.change_species("Cat")
- test.assert_equals("Bob the Male Cat, age 5 has 4 legs!", p.display_info())