Check data copying in Curve.__copy__ and .__deepcopy__ doctests.
authorW. Trevor King <wking@drexel.edu>
Tue, 31 Aug 2010 12:44:49 +0000 (08:44 -0400)
committerW. Trevor King <wking@drexel.edu>
Tue, 31 Aug 2010 12:44:49 +0000 (08:44 -0400)
hooke/curve.py

index bc8138a0ade467b782466131014fe7171888d83d..fc8701b0b98a5f21b8d9fd0a1dd195be12251849 100644 (file)
@@ -292,7 +292,12 @@ class Curve (object):
         >>> class Hooke (object):
         ...     pass
         >>> h = Hooke()
+        >>> d = Data(shape=(3,2), info={'columns':['distance (m)', 'force (N)']})
+        >>> for i in range(3): # initialize d
+        ...    for j in range(2):
+        ...        d[i,j] = i*10 + j
         >>> c = Curve(None)
+        >>> c.data = [d]
         >>> c.set_hooke(h)
         >>> c._hooke  # doctest: +ELLIPSIS
         <hooke.curve.Hooke object at 0x...>
@@ -303,6 +308,14 @@ class Curve (object):
         <hooke.curve.Hooke object at 0x...>
         >>> c2._hooke == h
         True
+        >>> c2.data
+        [Data([[  0.,   1.],
+               [ 10.,  11.],
+               [ 20.,  21.]])]
+        >>> d.info
+        {'columns': ['distance (m)', 'force (N)']}
+        >>> id(c2.data[0]) == id(d)
+        True
         """
         copier = _copy_dispatch.get(type(self))
         if copier:
@@ -328,7 +341,12 @@ class Curve (object):
         >>> class Hooke (object):
         ...     pass
         >>> h = Hooke()
+        >>> d = Data(shape=(3,2), info={'columns':['distance (m)', 'force (N)']})
+        >>> for i in range(3): # initialize d
+        ...    for j in range(2):
+        ...        d[i,j] = i*10 + j
         >>> c = Curve(None)
+        >>> c.data = [d]
         >>> c.set_hooke(h)
         >>> c._hooke  # doctest: +ELLIPSIS
         <hooke.curve.Hooke object at 0x...>
@@ -339,6 +357,14 @@ class Curve (object):
         <hooke.curve.Hooke object at 0x...>
         >>> c2._hooke == h
         True
+        >>> c2.data
+        [Data([[  0.,   1.],
+               [ 10.,  11.],
+               [ 20.,  21.]])]
+        >>> d.info
+        {'columns': ['distance (m)', 'force (N)']}
+        >>> id(c2.data[0]) == id(d)
+        False
         """
         reductor = dispatch_table.get(type(self))
         if reductor: