data_members.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  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. ---- Test static data members ---
  7. >>> v = Var('slim shady')
  8. >>> Var.ro2a.x
  9. 0
  10. >>> Var.ro2b.x
  11. 0
  12. >>> Var.rw2a.x
  13. 0
  14. >>> Var.rw2b.x
  15. 0
  16. >>> v.ro2a.x
  17. 0
  18. >>> v.ro2b.x
  19. 0
  20. >>> v.rw2a.x
  21. 0
  22. >>> v.rw2b.x
  23. 0
  24. >>> Var.rw2a.x = 777
  25. >>> Var.ro2a.x
  26. 777
  27. >>> Var.ro2b.x
  28. 777
  29. >>> Var.rw2a.x
  30. 777
  31. >>> Var.rw2b.x
  32. 777
  33. >>> v.ro2a.x
  34. 777
  35. >>> v.ro2b.x
  36. 777
  37. >>> v.rw2a.x
  38. 777
  39. >>> v.rw2b.x
  40. 777
  41. >>> Var.rw2b = Y(888)
  42. >>> y = Y(99)
  43. >>> y.q = True
  44. >>> y.q
  45. True
  46. >>> y.q = False
  47. >>> y.q
  48. False
  49. >>> Var.ro2a.x
  50. 888
  51. >>> Var.ro2b.x
  52. 888
  53. >>> Var.rw2a.x
  54. 888
  55. >>> Var.rw2b.x
  56. 888
  57. >>> v.ro2a.x
  58. 888
  59. >>> v.ro2b.x
  60. 888
  61. >>> v.rw2a.x
  62. 888
  63. >>> v.rw2b.x
  64. 888
  65. >>> v.rw2b.x = 999
  66. >>> Var.ro2a.x
  67. 999
  68. >>> Var.ro2b.x
  69. 999
  70. >>> Var.rw2a.x
  71. 999
  72. >>> Var.rw2b.x
  73. 999
  74. >>> v.ro2a.x
  75. 999
  76. >>> v.ro2b.x
  77. 999
  78. >>> v.rw2a.x
  79. 999
  80. >>> v.rw2b.x
  81. 999
  82. >>> Var.ro1a
  83. 0
  84. >>> Var.ro1b
  85. 0
  86. >>> Var.rw1a
  87. 0
  88. >>> Var.rw1b
  89. 0
  90. >>> v.ro1a
  91. 0
  92. >>> v.ro1b
  93. 0
  94. >>> v.rw1a
  95. 0
  96. >>> v.rw1b
  97. 0
  98. >>> Var.rw1a = 777
  99. >>> Var.ro1a
  100. 777
  101. >>> Var.ro1b
  102. 777
  103. >>> Var.rw1a
  104. 777
  105. >>> Var.rw1b
  106. 777
  107. >>> v.ro1a
  108. 777
  109. >>> v.ro1b
  110. 777
  111. >>> v.rw1a
  112. 777
  113. >>> v.rw1b
  114. 777
  115. >>> Var.rw1b = 888
  116. >>> Var.ro1a
  117. 888
  118. >>> Var.ro1b
  119. 888
  120. >>> Var.rw1a
  121. 888
  122. >>> Var.rw1b
  123. 888
  124. >>> v.ro1a
  125. 888
  126. >>> v.ro1b
  127. 888
  128. >>> v.rw1a
  129. 888
  130. >>> v.rw1b
  131. 888
  132. >>> v.rw1b = 999
  133. >>> Var.ro1a
  134. 999
  135. >>> Var.ro1b
  136. 999
  137. >>> Var.rw1a
  138. 999
  139. >>> Var.rw1b
  140. 999
  141. >>> v.ro1a
  142. 999
  143. >>> v.ro1b
  144. 999
  145. >>> v.rw1a
  146. 999
  147. >>> v.rw1b
  148. 999
  149. -----------------
  150. >>> x = X(42)
  151. >>> x.x
  152. 42
  153. >>> try: x.x = 77
  154. ... except AttributeError: pass
  155. ... else: print('no error')
  156. >>> x.fair_value
  157. 42.0
  158. >>> y = Y(69)
  159. >>> y.x
  160. 69
  161. >>> y.x = 77
  162. >>> y.x
  163. 77
  164. >>> v = Var("pi")
  165. >>> v.value = 3.14
  166. >>> v.name
  167. 'pi'
  168. >>> v.name2
  169. 'pi'
  170. >>> v.get_name1()
  171. 'pi'
  172. >>> v.get_name2()
  173. 'pi'
  174. >>> v.y.x
  175. 6
  176. >>> v.y.x = -7
  177. >>> v.y.x
  178. -7
  179. >>> v.name3
  180. 'pi'
  181. '''
  182. def run(args = None):
  183. import sys
  184. import doctest
  185. if args is not None:
  186. sys.argv = args
  187. return doctest.testmod(sys.modules.get(__name__))
  188. if __name__ == '__main__':
  189. print("running...")
  190. import sys
  191. status = run()[0]
  192. if (status == 0): print("Done.")
  193. sys.exit(status)