/trunk/Examples/test-suite/d/li_attribute_runme.1.d
D | 75 lines | 60 code | 12 blank | 3 comment | 36 complexity | 1a7742b943c61a3f0a4d62f55936ffad MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- module li_attribute_runme;
- import li_attribute.A;
- import li_attribute.B;
- import li_attribute.MyClass;
- import li_attribute.MyClassVal;
- import li_attribute.MyStringyClass;
- import li_attribute.MyFoo;
- import li_attribute.Param_i;
- void main() {
- auto aa = new A(1,2,3);
- if (aa.a != 1)
- throw new Exception("error");
- aa.a = 3;
- if (aa.a != 3)
- throw new Exception("error");
- if (aa.b != 2)
- throw new Exception("error");
- aa.b = 5;
- if (aa.b != 5)
- throw new Exception("error");
- if (aa.d != aa.b)
- throw new Exception("error");
- if (aa.c != 3)
- throw new Exception("error");
- auto pi = new Param_i(7);
- if (pi.value != 7)
- throw new Exception("error");
- pi.value=3;
- if (pi.value != 3)
- throw new Exception("error");
- auto b = new B(aa);
- if (b.a.c != 3)
- throw new Exception("error");
- // class/struct attribute with get/set methods using return/pass by reference
- auto myFoo = new MyFoo();
- myFoo.x = 8;
- auto myClass = new MyClass();
- myClass.Foo = myFoo;
- if (myClass.Foo.x != 8)
- throw new Exception("error");
- // class/struct attribute with get/set methods using return/pass by value
- auto myClassVal = new MyClassVal();
- if (myClassVal.ReadWriteFoo.x != -1)
- throw new Exception("error");
- if (myClassVal.ReadOnlyFoo.x != -1)
- throw new Exception("error");
- myClassVal.ReadWriteFoo = myFoo;
- if (myClassVal.ReadWriteFoo.x != 8)
- throw new Exception("error");
- if (myClassVal.ReadOnlyFoo.x != 8)
- throw new Exception("error");
- // string attribute with get/set methods using return/pass by value
- auto myStringClass = new MyStringyClass("initial string");
- if (myStringClass.ReadWriteString != "initial string")
- throw new Exception("error");
- if (myStringClass.ReadOnlyString != "initial string")
- throw new Exception("error");
- myStringClass.ReadWriteString = "changed string";
- if (myStringClass.ReadWriteString != "changed string")
- throw new Exception("error");
- if (myStringClass.ReadOnlyString != "changed string")
- throw new Exception("error");
- }