text: # Copyright David Abrahams 2004. Distributed under the Boost
  # Software License, Version 1.0. (See accompanying
  # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  '''
  >>> from data_members_ext import *
  
          ---- Test static data members ---
  
  >>> v = Var('slim shady')
  
  >>> Var.ro2a.x
  0
  >>> Var.ro2b.x
  0
  >>> Var.rw2a.x
  0
  >>> Var.rw2b.x
  0
  >>> v.ro2a.x
  0
  >>> v.ro2b.x
  0
  >>> v.rw2a.x
  0
  >>> v.rw2b.x
  0
  >>> Var.rw2a.x = 777
  >>> Var.ro2a.x
  777
  >>> Var.ro2b.x
  777
  >>> Var.rw2a.x
  777
  >>> Var.rw2b.x
  777
  >>> v.ro2a.x
  777
  >>> v.ro2b.x
  777
  >>> v.rw2a.x
  777
  >>> v.rw2b.x
  777
  >>> Var.rw2b = Y(888)
  
  >>> y = Y(99)
  >>> y.q = True
  >>> y.q
  True
  >>> y.q = False
  >>> y.q
  False
  
  >>> Var.ro2a.x
  888
  >>> Var.ro2b.x
  888
  >>> Var.rw2a.x
  888
  >>> Var.rw2b.x
  888
  >>> v.ro2a.x
  888
  >>> v.ro2b.x
  888
  >>> v.rw2a.x
  888
  >>> v.rw2b.x
  888
  >>> v.rw2b.x = 999
  >>> Var.ro2a.x
  999
  >>> Var.ro2b.x
  999
  >>> Var.rw2a.x
  999
  >>> Var.rw2b.x
  999
  >>> v.ro2a.x
  999
  >>> v.ro2b.x
  999
  >>> v.rw2a.x
  999
  >>> v.rw2b.x
  999
  
  
  >>> Var.ro1a
  0
  >>> Var.ro1b
  0
  >>> Var.rw1a
  0
  >>> Var.rw1b
  0
  >>> v.ro1a
  0
  >>> v.ro1b
  0
  >>> v.rw1a
  0
  >>> v.rw1b
  0
  >>> Var.rw1a = 777
  >>> Var.ro1a
  777
  >>> Var.ro1b
  777
  >>> Var.rw1a
  777
  >>> Var.rw1b
  777
  >>> v.ro1a
  777
  >>> v.ro1b
  777
  >>> v.rw1a
  777
  >>> v.rw1b
  777
  >>> Var.rw1b = 888
  >>> Var.ro1a
  888
  >>> Var.ro1b
  888
  >>> Var.rw1a
  888
  >>> Var.rw1b
  888
  >>> v.ro1a
  888
  >>> v.ro1b
  888
  >>> v.rw1a
  888
  >>> v.rw1b
  888
  >>> v.rw1b = 999
  >>> Var.ro1a
  999
  >>> Var.ro1b
  999
  >>> Var.rw1a
  999
  >>> Var.rw1b
  999
  >>> v.ro1a
  999
  >>> v.ro1b
  999
  >>> v.rw1a
  999
  >>> v.rw1b
  999
  
  
  
          -----------------
          
  >>> x = X(42)
  >>> x.x
  42
  >>> try: x.x = 77
  ... except AttributeError: pass
  ... else: print('no error')
  
  >>> x.fair_value
  42.0
  >>> y = Y(69)
  >>> y.x
  69
  >>> y.x = 77
  >>> y.x
  77
  
  >>> v = Var("pi")
  >>> v.value = 3.14
  >>> v.name
  'pi'
  >>> v.name2
  'pi'
  
  >>> v.get_name1()
  'pi'
  
  >>> v.get_name2()
  'pi'
  
  >>> v.y.x
  6
  >>> v.y.x = -7
  >>> v.y.x
  -7
  
  >>> v.name3
  'pi'
  
  
  '''
  
  def run(args = None):
      import sys
      import doctest
  
      if args is not None:
          sys.argv = args
      return doctest.testmod(sys.modules.get(__name__))
      
  if __name__ == '__main__':
      print("running...")
      import sys
      status = run()[0]
      if (status == 0): print("Done.")
      sys.exit(status)
  