PageRenderTime 38ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/test-suite/d/li_attribute_runme.2.d

#
D | 58 lines | 43 code | 12 blank | 3 comment | 18 complexity | b55279d43f50358aa233613c1ddbbe05 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. module li_attribute_runme;
  2. import std.exception;
  3. import li_attribute.A;
  4. import li_attribute.B;
  5. import li_attribute.MyClass;
  6. import li_attribute.MyClassVal;
  7. import li_attribute.MyStringyClass;
  8. import li_attribute.MyFoo;
  9. import li_attribute.Param_i;
  10. void main() {
  11. auto aa = new A(1,2,3);
  12. enforce(aa.a == 1);
  13. aa.a = 3;
  14. enforce(aa.a == 3);
  15. enforce(aa.b == 2);
  16. aa.b = 5;
  17. enforce(aa.b == 5);
  18. enforce(aa.d == aa.b);
  19. enforce(aa.c == 3);
  20. auto pi = new Param_i(7);
  21. enforce(pi.value == 7);
  22. pi.value=3;
  23. enforce(pi.value == 3);
  24. auto b = new B(aa);
  25. enforce(b.a.c == 3);
  26. // class/struct attribute with get/set methods using return/pass by reference
  27. auto myFoo = new MyFoo();
  28. myFoo.x = 8;
  29. auto myClass = new MyClass();
  30. myClass.Foo = myFoo;
  31. enforce(myClass.Foo.x == 8);
  32. // class/struct attribute with get/set methods using return/pass by value
  33. auto myClassVal = new MyClassVal();
  34. enforce(myClassVal.ReadWriteFoo.x == -1);
  35. enforce(myClassVal.ReadOnlyFoo.x == -1);
  36. myClassVal.ReadWriteFoo = myFoo;
  37. enforce(myClassVal.ReadWriteFoo.x == 8);
  38. enforce(myClassVal.ReadOnlyFoo.x == 8);
  39. // string attribute with get/set methods using return/pass by value
  40. auto myStringClass = new MyStringyClass("initial string");
  41. enforce(myStringClass.ReadWriteString == "initial string");
  42. enforce(myStringClass.ReadOnlyString == "initial string");
  43. myStringClass.ReadWriteString = "changed string";
  44. enforce(myStringClass.ReadWriteString == "changed string");
  45. enforce(myStringClass.ReadOnlyString == "changed string");
  46. }