提交 85db1634 authored 作者: Frederic Bastien's avatar Frederic Bastien

now all results of Module that don't have an owner are cast to Member.

updated the test
上级 9fe3ff8c
...@@ -787,8 +787,12 @@ def wrap(x): ...@@ -787,8 +787,12 @@ def wrap(x):
return wrapper(x) return wrapper(x)
return x return x
# Result -> Member
register_wrapper(lambda x: isinstance(x, gof.Result) and not x.owner,
lambda x: Member(x))
# Result -> External # Result -> External
register_wrapper(lambda x: isinstance(x, gof.Result), register_wrapper(lambda x: isinstance(x, gof.Result) and x.owner,
lambda x: External(x)) lambda x: External(x))
# [Component1, Component2, ...] -> ComponentList(Component1, Component2, ...) # [Component1, Component2, ...] -> ComponentList(Component1, Component2, ...)
......
...@@ -74,9 +74,8 @@ class T_test_module(unittest.TestCase): ...@@ -74,9 +74,8 @@ class T_test_module(unittest.TestCase):
assert inst.ly assert inst.ly
assert inst.tx assert inst.tx
assert inst.ty assert inst.ty
inst.y # we don't assert just make the look up as with T.dscalar it return None inst.y
# but it don't return None for value and constant inst.x
self.assertRaises(AttributeError, inst.__getattr__, "x")
assert inst.dx assert inst.dx
assert inst.dy assert inst.dy
assert inst.llx assert inst.llx
...@@ -98,7 +97,7 @@ class T_test_module(unittest.TestCase): ...@@ -98,7 +97,7 @@ class T_test_module(unittest.TestCase):
""" """
m1=Module() m1=Module()
x=T.dscalar() x=T.dscalar()
m1.x=Member(T.dscalar()) m1.x=T.dscalar()
m1.y=Method(x,x*2) m1.y=Method(x,x*2)
m1.z=Method([],m1.x*2) m1.z=Method([],m1.x*2)
m1.ly=[Method(x,x*2)] m1.ly=[Method(x,x*2)]
...@@ -145,21 +144,21 @@ class T_test_module(unittest.TestCase): ...@@ -145,21 +144,21 @@ class T_test_module(unittest.TestCase):
m1=Module() m1=Module()
m2=Module() m2=Module()
x=T.dscalar() x=T.dscalar()
m1.x=Member(x) m1.x=x
m2.x=Member(x) m2.x=Member(x)
m1.lx=[Member(x)] m1.lx=[x]
m2.lx=[Member(x)] m2.lx=[Member(x)]
m1.llx=[[Member(x)],[Member(x)]] m1.llx=[[x],[x]]
m2.llx=[[Member(x)],[Member(x)]] m2.llx=[[Member(x)],[Member(x)]]
m1.ltx=[(Member(x),)] m1.ltx=[(x,)]
m2.ltx=[(Member(x),)] m2.ltx=[(Member(x),)]
m1.tx=(Member(x),) m1.tx=(x,)
m2.tx=(Member(x),) m2.tx=(Member(x),)
m1.ttx=((Member(x),),) m1.ttx=((x,),)
m2.ttx=((Member(x),),) m2.ttx=((Member(x),),)
m1.tlx=([Member(x)],) m1.tlx=([x],)
m2.tlx=([Member(x)],) m2.tlx=([Member(x)],)
m1.dx={'x':Member(x)} m1.dx={'x':x}
m2.dx={'x':Member(x)} m2.dx={'x':Member(x)}
#m1.x and m2.x should not be shared as their is no hierarchi link between them. #m1.x and m2.x should not be shared as their is no hierarchi link between them.
...@@ -246,7 +245,7 @@ class T_test_module(unittest.TestCase): ...@@ -246,7 +245,7 @@ class T_test_module(unittest.TestCase):
#Fred: the test create different method event if they are shared. Do we want this? #Fred: the test create different method event if they are shared. Do we want this?
m1=Module() m1=Module()
m1.x=Member(T.dscalar()) m1.x=T.dscalar()
x=T.dscalar() x=T.dscalar()
fy=Method(x,x*2) fy=Method(x,x*2)
fz=Method([],m1.x*2) fz=Method([],m1.x*2)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论