def test_synchronized_order(): data = np.random.standard_normal((3,4,7,5)) im = Image(data, AffineTransform.from_params('ijkl', 'xyzt', np.diag([1,2,3,4,1]))) im_scrambled = im.reordered_axes('iljk').reordered_reference('xtyz') im_unscrambled = image.synchronized_order(im_scrambled, im) yield assert_equal, im_unscrambled.coordmap, im.coordmap yield assert_almost_equal, im_unscrambled.get_data(), im.get_data() yield assert_equal, im_unscrambled, im yield assert_true, im_unscrambled == im yield assert_false, im_unscrambled != im # the images don't have to be the same shape data2 = np.random.standard_normal((3,11,9,4)) im2 = Image(data, AffineTransform.from_params('ijkl', 'xyzt', np.diag([1,2,3,4,1]))) im_scrambled2 = im2.reordered_axes('iljk').reordered_reference('xtyz') im_unscrambled2 = image.synchronized_order(im_scrambled2, im) yield assert_equal, im_unscrambled2.coordmap, im.coordmap # or the same coordmap data3 = np.random.standard_normal((3,11,9,4)) im3 = Image(data, AffineTransform.from_params('ijkl', 'xyzt', np.diag([1,9,3,-2,1]))) im_scrambled3 = im3.reordered_axes('iljk').reordered_reference('xtyz') im_unscrambled3 = image.synchronized_order(im_scrambled3, im) yield assert_equal, im_unscrambled3.axes, im.axes yield assert_equal, im_unscrambled3.reference, im.reference