Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
epidemian
GitHub Repository: epidemian/gravity
Path: blob/master/test/classes/classes_2.gravity
1214 views
#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;
}