test_classes.gravity 878 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #unittest {
  2. name: "Test classes with both static and non static members.";
  3. error: NONE;
  4. result: 9999;
  5. };
  6. // nothing
  7. class c0 {
  8. func sum() {
  9. var a = 1, b=2, c=3;
  10. return a + b + c;
  11. }
  12. }
  13. // constructor only
  14. class c1 {
  15. var a;
  16. var b;
  17. var c;
  18. func init() {a = 10; b = 20; c = 30;}
  19. func sum() {return a + b + c;}
  20. }
  21. // init special only
  22. class c2 {
  23. var a = 100;
  24. var b = 200;
  25. var c = 300;
  26. func sum() {return a + b + c;}
  27. }
  28. // both init special and constructor
  29. class c3 {
  30. var a = 1000;
  31. var b;
  32. var c;
  33. func init() {b = 2000; c = 3000;}
  34. func sum() {return a + b + c;}
  35. }
  36. // mixed static and non static
  37. class c4 {
  38. static func sum1(){return 1111;}
  39. func sum2(){return 2222;}
  40. }
  41. func main() {
  42. var obj0 = c0();
  43. var obj1 = c1();
  44. var obj2 = c2();
  45. var obj3 = c3();
  46. var obj4 = c4();
  47. return obj0.sum() + obj1.sum() + obj2.sum() + obj3.sum() + obj4.sum2() + c4.sum1();
  48. }