def test_equivalent(): ijk = CoordinateSystem('ijk') xyz = CoordinateSystem('xyz') T = np.random.standard_normal((4,4)) T[-1] = [0,0,0,1] A = AffineTransform(ijk, xyz, T) # now, cycle through # all possible permutations of # 'ijk' and 'xyz' and confirm that # the mapping is equivalent yield assert_false, equivalent(A, A.renamed_domain({'i':'foo'})) try: import itertools for pijk in itertools.permutations('ijk'): for pxyz in itertools.permutations('xyz'): B = A.reordered_domain(pijk).reordered_range(pxyz) yield assert_true, equivalent(A, B) except (ImportError, AttributeError): # just do some if we can't find itertools, or if itertools # doesn't have permutations for pijk in ['ikj', 'kij']: for pxyz in ['xzy', 'yxz']: B = A.reordered_domain(pijk).reordered_range(pxyz) yield assert_true, equivalent(A, B)
def test_equivalent(): ijk = CoordinateSystem("ijk") xyz = CoordinateSystem("xyz") T = np.random.standard_normal((4, 4)) T[-1] = [0, 0, 0, 1] A = AffineTransform(ijk, xyz, T) # now, cycle through # all possible permutations of # 'ijk' and 'xyz' and confirm that # the mapping is equivalent yield assert_false, equivalent(A, A.renamed_domain({"i": "foo"})) try: import itertools for pijk in itertools.permutations("ijk"): for pxyz in itertools.permutations("xyz"): B = A.reordered_domain(pijk).reordered_range(pxyz) yield assert_true, equivalent(A, B) except ImportError: # just do some if we can't find itertools for pijk in ["ikj", "kij"]: for pxyz in ["xzy", "yxz"]: B = A.reordered_domain(pijk).reordered_range(pxyz) yield assert_true, equivalent(A, B)