1# Copyright David Abrahams 2004. Distributed under the Boost
2# Software License, Version 1.0. (See accompanying
3# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4'''
5>>> from data_members_ext import *
6
7        ---- Test static data members ---
8
9>>> v = Var('slim shady')
10
11>>> Var.ro2a.x
120
13>>> Var.ro2b.x
140
15>>> Var.rw2a.x
160
17>>> Var.rw2b.x
180
19>>> v.ro2a.x
200
21>>> v.ro2b.x
220
23>>> v.rw2a.x
240
25>>> v.rw2b.x
260
27>>> Var.rw2a.x = 777
28>>> Var.ro2a.x
29777
30>>> Var.ro2b.x
31777
32>>> Var.rw2a.x
33777
34>>> Var.rw2b.x
35777
36>>> v.ro2a.x
37777
38>>> v.ro2b.x
39777
40>>> v.rw2a.x
41777
42>>> v.rw2b.x
43777
44>>> Var.rw2b = Y(888)
45
46>>> y = Y(99)
47>>> y.q = True
48>>> y.q
49True
50>>> y.q = False
51>>> y.q
52False
53
54>>> Var.ro2a.x
55888
56>>> Var.ro2b.x
57888
58>>> Var.rw2a.x
59888
60>>> Var.rw2b.x
61888
62>>> v.ro2a.x
63888
64>>> v.ro2b.x
65888
66>>> v.rw2a.x
67888
68>>> v.rw2b.x
69888
70>>> v.rw2b.x = 999
71>>> Var.ro2a.x
72999
73>>> Var.ro2b.x
74999
75>>> Var.rw2a.x
76999
77>>> Var.rw2b.x
78999
79>>> v.ro2a.x
80999
81>>> v.ro2b.x
82999
83>>> v.rw2a.x
84999
85>>> v.rw2b.x
86999
87
88
89>>> Var.ro1a
900
91>>> Var.ro1b
920
93>>> Var.rw1a
940
95>>> Var.rw1b
960
97>>> v.ro1a
980
99>>> v.ro1b
1000
101>>> v.rw1a
1020
103>>> v.rw1b
1040
105>>> Var.rw1a = 777
106>>> Var.ro1a
107777
108>>> Var.ro1b
109777
110>>> Var.rw1a
111777
112>>> Var.rw1b
113777
114>>> v.ro1a
115777
116>>> v.ro1b
117777
118>>> v.rw1a
119777
120>>> v.rw1b
121777
122>>> Var.rw1b = 888
123>>> Var.ro1a
124888
125>>> Var.ro1b
126888
127>>> Var.rw1a
128888
129>>> Var.rw1b
130888
131>>> v.ro1a
132888
133>>> v.ro1b
134888
135>>> v.rw1a
136888
137>>> v.rw1b
138888
139>>> v.rw1b = 999
140>>> Var.ro1a
141999
142>>> Var.ro1b
143999
144>>> Var.rw1a
145999
146>>> Var.rw1b
147999
148>>> v.ro1a
149999
150>>> v.ro1b
151999
152>>> v.rw1a
153999
154>>> v.rw1b
155999
156
157
158
159        -----------------
160
161>>> x = X(42)
162>>> x.x
16342
164>>> try: x.x = 77
165... except AttributeError: pass
166... else: print('no error')
167
168>>> x.fair_value
16942.0
170>>> y = Y(69)
171>>> y.x
17269
173>>> y.x = 77
174>>> y.x
17577
176
177>>> v = Var("pi")
178>>> v.value = 3.14
179>>> v.name
180'pi'
181>>> v.name2
182'pi'
183
184>>> v.get_name1()
185'pi'
186
187>>> v.get_name2()
188'pi'
189
190>>> v.y.x
1916
192>>> v.y.x = -7
193>>> v.y.x
194-7
195
196>>> v.name3
197'pi'
198
199
200'''
201
202def run(args = None):
203    import sys
204    import doctest
205
206    if args is not None:
207        sys.argv = args
208    return doctest.testmod(sys.modules.get(__name__))
209
210if __name__ == '__main__':
211    print("running...")
212    import sys
213    status = run()[0]
214    if (status == 0): print("Done.")
215    sys.exit(status)
216