feat(grow): add grow method

This commit is contained in:
2020-01-28 01:33:34 +01:00
parent c0926ffea0
commit f982922ef3
2 changed files with 123 additions and 30 deletions

View File

@@ -39,6 +39,104 @@ func TestHamster_Die(t *testing.T) {
}
}
func TestHamster_Grow(t *testing.T) {
testCases := []struct {
caseName string
hamster *Hamster
expectedHamster *Hamster
}{
{
caseName: "Age increment",
hamster: &Hamster{
Age: 0,
Alive: true,
},
expectedHamster: &Hamster{
Age: 1,
Alive: true,
},
},
{
caseName: "Gestation decrement",
hamster: &Hamster{
Age: 0,
Gestation: true,
GestationPeriod: 1,
Alive: true,
},
expectedHamster: &Hamster{
Age: 1,
Gestation: true,
GestationPeriod: 2,
Alive: true,
},
},
{
caseName: "Gestation Cooldown doesn't decrement",
hamster: &Hamster{
Age: 0,
Gestation: true,
GestationCooldown: 17,
GestationPeriod: 1,
Alive: true,
},
expectedHamster: &Hamster{
Age: 1,
GestationCooldown: 17,
Gestation: true,
GestationPeriod: 2,
Alive: true,
},
},
{
caseName: "Gestation Cooldown decrement",
hamster: &Hamster{
Age: 0,
Gestation: false,
GestationCooldown: 17,
GestationPeriod: 0,
Alive: true,
},
expectedHamster: &Hamster{
Age: 1,
GestationCooldown: 16,
Gestation: false,
GestationPeriod: 0,
Alive: true,
},
},
{
caseName: "Hamster die",
hamster: &Hamster{
Age: 365*3,
Gestation: false,
GestationCooldown: 17,
GestationPeriod: 0,
Alive: true,
},
expectedHamster: &Hamster{
Age: 365*3,
Alive:false,
GestationCooldown: 17,
Gestation: false,
GestationPeriod: 0,
},
},
}
for _, tc := range testCases {
t.Run(tc.caseName, func(t *testing.T) {
if tc.hamster.Alive == !tc.expectedHamster.Alive {
randomizer.FakeRandomizer(364)
}
tc.hamster.Grow()
if !reflect.DeepEqual(tc.hamster,tc.expectedHamster) {
t.Errorf("Got %v expect %v", tc.hamster, tc.expectedHamster)
}
})
}
}
func TestHamster_Fuck(t *testing.T) {
testCases := []struct {
caseName string
@@ -180,31 +278,6 @@ func TestHamster_Fuck(t *testing.T) {
}
}
func TestBorn(t *testing.T) {
type args struct {
father *Hamster
mother *Hamster
}
tests := []struct {
name string
args args
want []*Hamster
wantErr bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
got, err := Born(tt.args.father, tt.args.mother)
if (err != nil) != tt.wantErr {
t.Errorf("%q. Born() error = %v, wantErr %v", tt.name, err, tt.wantErr)
continue
}
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("%q. Born() = %v, want %v", tt.name, got, tt.want)
}
}
}
func Test_randSexe(t *testing.T) {
tests := []struct {
name string