#!/usr/bin/ruby

class Animal(String name, Number age)  {
    method speak { "..." }
}

class Dog(String color) < Animal {
    method speak { "woof" }
    method ageHumanYears { self.age * 7 }
}

class Cat < Animal {
    method speak { "meow" }
}

var dog = Dog(name: "Sparky", age: 6, color: "white")
var cat = Cat(name: "Mitten", age: 3)

say dog.speak          #=> woof
say cat.speak          #=> meow
say cat.age            #=> 3
say dog.ageHumanYears  #=> 42
say dog.color          #=> white

assert_eq(dog.speak, "woof")
assert_eq(cat.speak, "meow")
assert_eq(cat.age, 3)
assert_eq(dog.ageHumanYears, 42)
assert_eq(dog.color, "white")