|
4 | 4 |
|
5 | 5 | from ..py3k import BytesIO, asbytes |
6 | 6 | from .. import trackvis as tv |
7 | | -from ..volumeutils import swapped_code |
| 7 | +from ..volumeutils import native_code, swapped_code |
8 | 8 |
|
9 | 9 | from nose.tools import assert_true, assert_false, assert_equal, assert_raises |
10 | 10 |
|
@@ -116,12 +116,18 @@ def test_round_trip(): |
116 | 116 | out_f.seek(0) |
117 | 117 | streams2, hdr = tv.read(out_f) |
118 | 118 | assert_true(streamlist_equal(streams, streams2)) |
119 | | - # test that we can write in different endianness and get back same result |
120 | | - out_f.seek(0) |
121 | | - tv.write(out_f, streams, {}, swapped_code) |
122 | | - out_f.seek(0) |
123 | | - streams2, hdr = tv.read(out_f) |
124 | | - assert_true(streamlist_equal(streams, streams2)) |
| 119 | + # test that we can write in different endianness and get back same result, |
| 120 | + # for versions 1, 2 and not-specified |
| 121 | + for in_dict, back_version in (({},2), |
| 122 | + ({'version':2}, 2), |
| 123 | + ({'version':1}, 1)): |
| 124 | + for endian_code in (native_code, swapped_code): |
| 125 | + out_f.seek(0) |
| 126 | + tv.write(out_f, streams, in_dict, endian_code) |
| 127 | + out_f.seek(0) |
| 128 | + streams2, hdr = tv.read(out_f) |
| 129 | + assert_true(streamlist_equal(streams, streams2)) |
| 130 | + assert_equal(hdr['version'], back_version) |
125 | 131 | # test that we can get out and pass in generators |
126 | 132 | out_f.seek(0) |
127 | 133 | streams3, hdr = tv.read(out_f, as_generator=True) |
@@ -162,24 +168,24 @@ def test_get_affine(): |
162 | 168 | hdr = tv.empty_header() |
163 | 169 | # default header gives useless affine |
164 | 170 | assert_array_equal(tv.aff_from_hdr(hdr), |
165 | | - np.diag([0,0,0,1])) |
| 171 | + np.diag([0,0,0,1])) |
166 | 172 | hdr['voxel_size'] = 1 |
167 | 173 | assert_array_equal(tv.aff_from_hdr(hdr), |
168 | | - np.diag([0,0,0,1])) |
| 174 | + np.diag([0,0,0,1])) |
169 | 175 | # DICOM direction cosines |
170 | 176 | hdr['image_orientation_patient'] = [1,0,0,0,1,0] |
171 | 177 | assert_array_equal(tv.aff_from_hdr(hdr), |
172 | | - np.diag([-1,-1,1,1])) |
| 178 | + np.diag([-1,-1,1,1])) |
173 | 179 | # RAS direction cosines |
174 | 180 | hdr['image_orientation_patient'] = [-1,0,0,0,-1,0] |
175 | 181 | assert_array_equal(tv.aff_from_hdr(hdr), |
176 | | - np.eye(4)) |
| 182 | + np.eye(4)) |
177 | 183 | # translations |
178 | 184 | hdr['origin'] = [1,2,3] |
179 | 185 | exp_aff = np.eye(4) |
180 | 186 | exp_aff[:3,3] = [-1,-2,3] |
181 | 187 | assert_array_equal(tv.aff_from_hdr(hdr), |
182 | | - exp_aff) |
| 188 | + exp_aff) |
183 | 189 | # now use the easier vox_to_ras field |
184 | 190 | hdr = tv.empty_header() |
185 | 191 | aff = np.eye(4) |
|
0 commit comments