#unittest {
name: "Playing with class' init function;";
error: FALSE;
result: true;
};
class foo {
func f1() {return 1;}
}
class bar:foo {
var a;
func init(val) {
a = val;
}
func f1() {return 1 * a;}
func f2() {return 2 * a;}
}
func main() {
var f1 = foo();
var b1 = bar(0);
var b2 = bar(4);
var b3 = bar("1-string");
var r;
r = b1.f1(); if (r != 0) return "-1 (" + r + ")";
r = b2.f1(); if (r != 4) return "-2 (" + r + ")";
r = b3.f1(); if (r != 1) return "-3 (" + r + ")";
b3.init(2);
r = b3.f1(); if (r != 2) return "-4 (" + r + ")";
b3.init(4).init(8);
r = b3.f1();
if (r != 8) return "-5 (" + r + ")";
return true;
}