from smart_pointer_member import *

f = Foo()
f.y = 1

if f.y != 1:
  raise RuntimeError

b = Bar(f)
b.y = 2

if f.y != 2:
  print f.y
  print b.y
  raise RuntimeError

if b.x != f.x:
  raise RuntimeError

if b.z != f.z:
  raise RuntimeError

if Foo.z == Bar.z:
  raise RuntimeError






