import source from 1.3.40
[external/swig.git] / Examples / test-suite / python / li_attribute_runme.py
1 # Ported to C# li_attribute_runme.cs
2
3 import li_attribute
4
5 aa = li_attribute.A(1,2,3)
6
7 if aa.a != 1:
8   raise RuntimeError
9 aa.a = 3
10 if aa.a != 3:
11   print aa.a
12   raise RuntimeError
13
14 if aa.b != 2:
15   print aa.b
16   raise RuntimeError
17 aa.b = 5
18 if aa.b != 5:
19   raise RuntimeError
20
21 if aa.d != aa.b:
22   raise RuntimeError
23
24 if aa.c != 3:
25   raise RuntimeError
26 #aa.c = 5
27 #if aa.c != 3:
28 #  raise RuntimeError
29
30 pi = li_attribute.Param_i(7)
31 if pi.value != 7:
32  raise RuntimeError
33
34 pi.value=3
35 if pi.value != 3:
36  raise RuntimeError
37
38 b = li_attribute.B(aa)
39
40 if b.a.c != 3:
41  raise RuntimeError
42   
43 # class/struct attribute with get/set methods using return/pass by reference
44 myFoo = li_attribute.MyFoo()
45 myFoo.x = 8
46 myClass = li_attribute.MyClass()
47 myClass.Foo = myFoo
48 if myClass.Foo.x != 8:
49   raise RuntimeError
50
51 # class/struct attribute with get/set methods using return/pass by value
52 myClassVal = li_attribute.MyClassVal()
53 if myClassVal.ReadWriteFoo.x != -1:
54   raise RuntimeError
55 if myClassVal.ReadOnlyFoo.x != -1:
56   raise RuntimeError
57 myClassVal.ReadWriteFoo = myFoo
58 if myClassVal.ReadWriteFoo.x != 8:
59   raise RuntimeError
60 if myClassVal.ReadOnlyFoo.x != 8:
61   raise RuntimeError
62
63 # string attribute with get/set methods using return/pass by value
64 myStringyClass = li_attribute.MyStringyClass("initial string")
65 if myStringyClass.ReadWriteString != "initial string":
66   raise RuntimeError
67 if myStringyClass.ReadOnlyString != "initial string":
68   raise RuntimeError
69 myStringyClass.ReadWriteString = "changed string"
70 if myStringyClass.ReadWriteString != "changed string":
71   raise RuntimeError
72 if myStringyClass.ReadOnlyString != "changed string":
73   raise RuntimeError
74