classes_2.gravity 654 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #unittest {
  2. name: "Playing with class' init function;";
  3. error: FALSE;
  4. result: true;
  5. };
  6. class foo {
  7. func f1() {return 1;}
  8. }
  9. class bar:foo {
  10. var a;
  11. func init(val) {
  12. a = val;
  13. }
  14. func f1() {return 1 * a;}
  15. func f2() {return 2 * a;}
  16. }
  17. func main() {
  18. var f1 = foo();
  19. var b1 = bar(0);
  20. var b2 = bar(4);
  21. var b3 = bar(1);
  22. var r;
  23. r = b1.f1(); if (r != 0) return "-1 (" + r + ")";
  24. r = b2.f1(); if (r != 4) return "-2 (" + r + ")";
  25. r = b3.f1(); if (r != 1) return "-3 (" + r + ")";
  26. b3.init(2);
  27. r = b3.f1(); if (r != 2) return "-4 (" + r + ")";
  28. b3.init(4).init(8);
  29. r = b3.f1();
  30. if (r != 8) return "-5 (" + r + ")";
  31. return true;
  32. }