#!/usr/bin/ruby
#
## Inheritance of class attributes (test)
#
class Foo(x) {
has y = x
has z = 42
}
class Bar(x) < Foo {
has y = 21
has b = x
}
var obj = Bar(10)
assert_eq(obj.x, 10)
assert_eq(obj.y, 21)
assert_eq(obj.z, 42)
assert_eq(obj.b, 10)
class Baz < Foo {
has x2 = 3
}
obj = Baz(21)
assert_eq(obj.x, 21)
assert_eq(obj.x2, 3)
assert_eq(obj.y, 21)
assert_eq(obj.z, 42)
class Baxx << Bar {
has b = 99
has z = 37
}
obj = Baxx(31)
assert_eq(obj.y, 21)
assert_eq(obj.x, 31)
assert_eq(obj.b, 99)
assert_eq(obj.z, 37)
say "** Test passed!"