Skip to content

Commit fe61612

Browse files
authored
Merge pull request #875 from anibalsolon/pytest-port
TEST: nibabel.gifti pytest port
2 parents ebf9471 + 62d53c3 commit fe61612

File tree

3 files changed

+153
-157
lines changed

3 files changed

+153
-157
lines changed

nibabel/gifti/tests/test_gifti.py

Lines changed: 93 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
from numpy.testing import (assert_array_almost_equal,
1818
assert_array_equal)
19-
from nose.tools import (assert_true, assert_false, assert_equal, assert_raises)
19+
import pytest
2020
from nibabel.testing import clear_and_catch_warnings, test_data
2121
from .test_parse_gifti_fast import (DATA_FILE1, DATA_FILE2, DATA_FILE3,
2222
DATA_FILE4, DATA_FILE5, DATA_FILE6)
@@ -35,7 +35,7 @@ def test_agg_data():
3535
func_data = np.column_stack(tuple(da.data for da in func_da))
3636
shape_data = shape_gii_img.get_arrays_from_intent('shape')[0].data
3737

38-
assert_equal(surf_gii_img.agg_data(), (point_data, triangle_data))
38+
assert surf_gii_img.agg_data() == (point_data, triangle_data)
3939
assert_array_equal(func_gii_img.agg_data(), func_data)
4040
assert_array_equal(shape_gii_img.agg_data(), shape_data)
4141

@@ -44,219 +44,218 @@ def test_agg_data():
4444
assert_array_equal(func_gii_img.agg_data('time series'), func_data)
4545
assert_array_equal(shape_gii_img.agg_data('shape'), shape_data)
4646

47-
assert_equal(surf_gii_img.agg_data('time series'), ())
48-
assert_equal(func_gii_img.agg_data('triangle'), ())
49-
assert_equal(shape_gii_img.agg_data('pointset'), ())
47+
assert surf_gii_img.agg_data('time series') == ()
48+
assert func_gii_img.agg_data('triangle') == ()
49+
assert shape_gii_img.agg_data('pointset') == ()
5050

51-
assert_equal(surf_gii_img.agg_data(('pointset', 'triangle')), (point_data, triangle_data))
52-
assert_equal(surf_gii_img.agg_data(('triangle', 'pointset')), (triangle_data, point_data))
51+
assert surf_gii_img.agg_data(('pointset', 'triangle')) == (point_data, triangle_data)
52+
assert surf_gii_img.agg_data(('triangle', 'pointset')) == (triangle_data, point_data)
5353

5454
def test_gifti_image():
5555
# Check that we're not modifying the default empty list in the default
5656
# arguments.
5757
gi = GiftiImage()
58-
assert_equal(gi.darrays, [])
59-
assert_equal(gi.meta.metadata, {})
60-
assert_equal(gi.labeltable.labels, [])
58+
assert gi.darrays == []
59+
assert gi.meta.metadata == {}
60+
assert gi.labeltable.labels == []
6161
arr = np.zeros((2, 3))
6262
gi.darrays.append(arr)
6363
# Now check we didn't overwrite the default arg
6464
gi = GiftiImage()
65-
assert_equal(gi.darrays, [])
65+
assert gi.darrays == []
6666

6767
# Test darrays / numDA
6868
gi = GiftiImage()
69-
assert_equal(gi.numDA, 0)
69+
assert gi.numDA == 0
7070

7171
# Test from numpy numeric array
7272
data = np.random.random((5,))
7373
da = GiftiDataArray(data)
7474
gi.add_gifti_data_array(da)
75-
assert_equal(gi.numDA, 1)
75+
assert gi.numDA == 1
7676
assert_array_equal(gi.darrays[0].data, data)
7777

7878
# Test removing
7979
gi.remove_gifti_data_array(0)
80-
assert_equal(gi.numDA, 0)
80+
assert gi.numDA == 0
8181

8282
# Remove from empty
8383
gi = GiftiImage()
8484
gi.remove_gifti_data_array_by_intent(0)
85-
assert_equal(gi.numDA, 0)
85+
assert gi.numDA == 0
8686

8787
# Remove one
8888
gi = GiftiImage()
8989
da = GiftiDataArray(np.zeros((5,)), intent=0)
9090
gi.add_gifti_data_array(da)
9191

9292
gi.remove_gifti_data_array_by_intent(3)
93-
assert_equal(gi.numDA, 1, "data array should exist on 'missed' remove")
93+
assert gi.numDA == 1, "data array should exist on 'missed' remove"
9494

9595
gi.remove_gifti_data_array_by_intent(da.intent)
96-
assert_equal(gi.numDA, 0)
96+
assert gi.numDA == 0
9797

9898

9999
def test_gifti_image_bad_inputs():
100100
img = GiftiImage()
101101
# Try to set a non-data-array
102-
assert_raises(TypeError, img.add_gifti_data_array, 'not-a-data-array')
102+
pytest.raises(TypeError, img.add_gifti_data_array, 'not-a-data-array')
103103

104104
# Try to set to non-table
105105
def assign_labeltable(val):
106106
img.labeltable = val
107-
assert_raises(TypeError, assign_labeltable, 'not-a-table')
107+
pytest.raises(TypeError, assign_labeltable, 'not-a-table')
108108

109109
# Try to set to non-table
110110
def assign_metadata(val):
111111
img.meta = val
112-
assert_raises(TypeError, assign_metadata, 'not-a-meta')
112+
pytest.raises(TypeError, assign_metadata, 'not-a-meta')
113113

114114

115115
def test_dataarray_empty():
116116
# Test default initialization of DataArray
117117
null_da = GiftiDataArray()
118-
assert_equal(null_da.data, None)
119-
assert_equal(null_da.intent, 0)
120-
assert_equal(null_da.datatype, 0)
121-
assert_equal(null_da.encoding, 3)
122-
assert_equal(null_da.endian, 2 if sys.byteorder == 'little' else 1)
123-
assert_equal(null_da.coordsys.dataspace, 0)
124-
assert_equal(null_da.coordsys.xformspace, 0)
118+
assert null_da.data is None
119+
assert null_da.intent == 0
120+
assert null_da.datatype == 0
121+
assert null_da.encoding == 3
122+
assert null_da.endian == (2 if sys.byteorder == 'little' else 1)
123+
assert null_da.coordsys.dataspace == 0
124+
assert null_da.coordsys.xformspace == 0
125125
assert_array_equal(null_da.coordsys.xform, np.eye(4))
126-
assert_equal(null_da.ind_ord, 1)
127-
assert_equal(null_da.meta.metadata, {})
128-
assert_equal(null_da.ext_fname, '')
129-
assert_equal(null_da.ext_offset, 0)
126+
assert null_da.ind_ord == 1
127+
assert null_da.meta.metadata == {}
128+
assert null_da.ext_fname == ''
129+
assert null_da.ext_offset == 0
130130

131131

132132
def test_dataarray_init():
133133
# Test non-default dataarray initialization
134134
gda = GiftiDataArray # shortcut
135-
assert_equal(gda(None).data, None)
135+
assert gda(None).data is None
136136
arr = np.arange(12, dtype=np.float32).reshape((3, 4))
137137
assert_array_equal(gda(arr).data, arr)
138138
# Intents
139-
assert_raises(KeyError, gda, intent=1) # Invalid code
140-
assert_raises(KeyError, gda, intent='not an intent') # Invalid string
141-
assert_equal(gda(intent=2).intent, 2)
142-
assert_equal(gda(intent='correlation').intent, 2)
143-
assert_equal(gda(intent='NIFTI_INTENT_CORREL').intent, 2)
139+
pytest.raises(KeyError, gda, intent=1) # Invalid code
140+
pytest.raises(KeyError, gda, intent='not an intent') # Invalid string
141+
assert gda(intent=2).intent == 2
142+
assert gda(intent='correlation').intent == 2
143+
assert gda(intent='NIFTI_INTENT_CORREL').intent == 2
144144
# Datatype
145-
assert_equal(gda(datatype=2).datatype, 2)
146-
assert_equal(gda(datatype='uint8').datatype, 2)
147-
assert_raises(KeyError, gda, datatype='not_datatype')
145+
assert gda(datatype=2).datatype == 2
146+
assert gda(datatype='uint8').datatype == 2
147+
pytest.raises(KeyError, gda, datatype='not_datatype')
148148
# Float32 datatype comes from array if datatype not set
149-
assert_equal(gda(arr).datatype, 16)
149+
assert gda(arr).datatype == 16
150150
# Can be overriden by init
151-
assert_equal(gda(arr, datatype='uint8').datatype, 2)
151+
assert gda(arr, datatype='uint8').datatype == 2
152152
# Encoding
153-
assert_equal(gda(encoding=1).encoding, 1)
154-
assert_equal(gda(encoding='ASCII').encoding, 1)
155-
assert_equal(gda(encoding='GIFTI_ENCODING_ASCII').encoding, 1)
156-
assert_raises(KeyError, gda, encoding='not an encoding')
153+
assert gda(encoding=1).encoding == 1
154+
assert gda(encoding='ASCII').encoding == 1
155+
assert gda(encoding='GIFTI_ENCODING_ASCII').encoding == 1
156+
pytest.raises(KeyError, gda, encoding='not an encoding')
157157
# Endian
158-
assert_equal(gda(endian=1).endian, 1)
159-
assert_equal(gda(endian='big').endian, 1)
160-
assert_equal(gda(endian='GIFTI_ENDIAN_BIG').endian, 1)
161-
assert_raises(KeyError, gda, endian='not endian code')
158+
assert gda(endian=1).endian == 1
159+
assert gda(endian='big').endian == 1
160+
assert gda(endian='GIFTI_ENDIAN_BIG').endian == 1
161+
pytest.raises(KeyError, gda, endian='not endian code')
162162
# CoordSys
163163
aff = np.diag([2, 3, 4, 1])
164164
cs = GiftiCoordSystem(1, 2, aff)
165165
da = gda(coordsys=cs)
166-
assert_equal(da.coordsys.dataspace, 1)
167-
assert_equal(da.coordsys.xformspace, 2)
166+
assert da.coordsys.dataspace == 1
167+
assert da.coordsys.xformspace == 2
168168
assert_array_equal(da.coordsys.xform, aff)
169169
# Ordering
170-
assert_equal(gda(ordering=2).ind_ord, 2)
171-
assert_equal(gda(ordering='F').ind_ord, 2)
172-
assert_equal(gda(ordering='ColumnMajorOrder').ind_ord, 2)
173-
assert_raises(KeyError, gda, ordering='not an ordering')
170+
assert gda(ordering=2).ind_ord == 2
171+
assert gda(ordering='F').ind_ord == 2
172+
assert gda(ordering='ColumnMajorOrder').ind_ord == 2
173+
pytest.raises(KeyError, gda, ordering='not an ordering')
174174
# metadata
175175
meta_dict=dict(one=1, two=2)
176-
assert_equal(gda(meta=GiftiMetaData.from_dict(meta_dict)).meta.metadata,
177-
meta_dict)
178-
assert_equal(gda(meta=meta_dict).meta.metadata, meta_dict)
179-
assert_equal(gda(meta=None).meta.metadata, {})
176+
assert gda(meta=GiftiMetaData.from_dict(meta_dict)).meta.metadata == meta_dict
177+
assert gda(meta=meta_dict).meta.metadata == meta_dict
178+
assert gda(meta=None).meta.metadata == {}
180179
# ext_fname and ext_offset
181-
assert_equal(gda(ext_fname='foo').ext_fname, 'foo')
182-
assert_equal(gda(ext_offset=12).ext_offset, 12)
180+
assert gda(ext_fname='foo').ext_fname == 'foo'
181+
assert gda(ext_offset=12).ext_offset == 12
183182

184183

185184
def test_dataarray_from_array():
186185
with clear_and_catch_warnings() as w:
187186
warnings.filterwarnings('always', category=DeprecationWarning)
188187
da = GiftiDataArray.from_array(np.ones((3, 4)))
189-
assert_equal(len(w), 1)
188+
assert len(w) == 1
190189
for dt_code in data_type_codes.value_set():
191190
data_type = data_type_codes.type[dt_code]
192191
if data_type is np.void: # not supported
193192
continue
194193
arr = np.zeros((10, 3), dtype=data_type)
195194
da = GiftiDataArray.from_array(arr, 'triangle')
196-
assert_equal(da.datatype, data_type_codes[arr.dtype])
195+
assert da.datatype == data_type_codes[arr.dtype]
197196
bs_arr = arr.byteswap().newbyteorder()
198197
da = GiftiDataArray.from_array(bs_arr, 'triangle')
199-
assert_equal(da.datatype, data_type_codes[arr.dtype])
198+
assert da.datatype == data_type_codes[arr.dtype]
200199

201200

202201
def test_to_xml_open_close_deprecations():
203202
# Smoke test on deprecated functions
204203
da = GiftiDataArray(np.ones((1,)), 'triangle')
205204
with clear_and_catch_warnings() as w:
206205
warnings.filterwarnings('always', category=DeprecationWarning)
207-
assert_true(isinstance(da.to_xml_open(), str))
208-
assert_equal(len(w), 1)
206+
assert isinstance(da.to_xml_open(), str)
207+
assert len(w) == 1
209208
with clear_and_catch_warnings() as w:
210209
warnings.filterwarnings('once', category=DeprecationWarning)
211-
assert_true(isinstance(da.to_xml_close(), str))
212-
assert_equal(len(w), 1)
210+
assert isinstance(da.to_xml_close(), str)
211+
assert len(w) == 1
213212

214213

215214
def test_num_dim_deprecation():
216215
da = GiftiDataArray(np.ones((2, 3, 4)))
217216
# num_dim is property, set automatically from len(da.dims)
218-
assert_equal(da.num_dim, 3)
217+
assert da.num_dim == 3
219218
with clear_and_catch_warnings() as w:
220219
warnings.filterwarnings('always', category=DeprecationWarning)
221220
# OK setting num_dim to correct value, but raises DeprecationWarning
222221
da.num_dim = 3
223-
assert_equal(len(w), 1)
222+
assert len(w) == 1
224223
# Any other value gives a ValueError
225-
assert_raises(ValueError, setattr, da, 'num_dim', 4)
224+
pytest.raises(ValueError, setattr, da, 'num_dim', 4)
226225

227226

228227
def test_labeltable():
229228
img = GiftiImage()
230-
assert_equal(len(img.labeltable.labels), 0)
229+
assert len(img.labeltable.labels) == 0
231230

232231
new_table = GiftiLabelTable()
233232
new_table.labels += ['test', 'me']
234233
img.labeltable = new_table
235-
assert_equal(len(img.labeltable.labels), 2)
234+
assert len(img.labeltable.labels) == 2
236235

237236
# Test deprecations
238237
with clear_and_catch_warnings() as w:
239238
warnings.filterwarnings('always', category=DeprecationWarning)
240239
newer_table = GiftiLabelTable()
241240
newer_table.labels += ['test', 'me', 'again']
242241
img.set_labeltable(newer_table)
243-
assert_equal(len(w), 1)
244-
assert_equal(len(img.get_labeltable().labels), 3)
245-
assert_equal(len(w), 2)
242+
assert len(w) == 1
243+
assert len(img.get_labeltable().labels) == 3
244+
assert len(w) == 2
246245

247246

248247
def test_metadata():
249248
nvpair = GiftiNVPairs('key', 'value')
250249
md = GiftiMetaData(nvpair=nvpair)
251-
assert_equal(md.data[0].name, 'key')
252-
assert_equal(md.data[0].value, 'value')
250+
assert md.data[0].name == 'key'
251+
assert md.data[0].value == 'value'
253252
# Test deprecation
254253
with clear_and_catch_warnings() as w:
255254
warnings.filterwarnings('always', category=DeprecationWarning)
256-
assert_equal(md.get_metadata(), dict(key='value'))
257-
assert_equal(len(w), 1)
258-
assert_equal(len(GiftiDataArray().get_metadata()), 0)
259-
assert_equal(len(w), 2)
255+
assert md.get_metadata() == dict(key='value')
256+
assert len(w) == 1
257+
assert len(GiftiDataArray().get_metadata()) == 0
258+
assert len(w) == 2
260259

261260

262261
def test_gifti_label_rgba():
@@ -267,31 +266,31 @@ def test_gifti_label_rgba():
267266
assert_array_equal(rgba, gl1.rgba)
268267

269268
gl1.red = 2 * gl1.red
270-
assert_false(np.allclose(rgba, gl1.rgba)) # don't just store the list!
269+
assert not np.allclose(rgba, gl1.rgba) # don't just store the list!
271270

272271
gl2 = GiftiLabel()
273272
gl2.rgba = rgba
274273
assert_array_equal(rgba, gl2.rgba)
275274

276275
gl2.blue = 2 * gl2.blue
277-
assert_false(np.allclose(rgba, gl2.rgba)) # don't just store the list!
276+
assert not np.allclose(rgba, gl2.rgba) # don't just store the list!
278277

279278
def assign_rgba(gl, val):
280279
gl.rgba = val
281280
gl3 = GiftiLabel(**kwargs)
282-
assert_raises(ValueError, assign_rgba, gl3, rgba[:2])
283-
assert_raises(ValueError, assign_rgba, gl3, rgba.tolist() + rgba.tolist())
281+
pytest.raises(ValueError, assign_rgba, gl3, rgba[:2])
282+
pytest.raises(ValueError, assign_rgba, gl3, rgba.tolist() + rgba.tolist())
284283

285284
# Test deprecation
286285
with clear_and_catch_warnings() as w:
287286
warnings.filterwarnings('once', category=DeprecationWarning)
288-
assert_equal(kwargs['red'], gl3.get_rgba()[0])
289-
assert_equal(len(w), 1)
287+
assert kwargs['red'] == gl3.get_rgba()[0]
288+
assert len(w) == 1
290289

291290
# Test default value
292291
gl4 = GiftiLabel()
293-
assert_equal(len(gl4.rgba), 4)
294-
assert_true(np.all([elem is None for elem in gl4.rgba]))
292+
assert len(gl4.rgba) == 4
293+
assert np.all([elem is None for elem in gl4.rgba])
295294

296295

297296
def test_print_summary():
@@ -304,7 +303,7 @@ def test_print_summary():
304303
def test_gifti_coord():
305304
from ..gifti import GiftiCoordSystem
306305
gcs = GiftiCoordSystem()
307-
assert_true(gcs.xform is not None)
306+
assert gcs.xform is not None
308307

309308
# Smoke test
310309
gcs.xform = None
@@ -316,7 +315,7 @@ def test_data_tag_deprecated():
316315
with clear_and_catch_warnings() as w:
317316
warnings.filterwarnings('once', category=DeprecationWarning)
318317
data_tag(np.array([]), 'ASCII', '%i', 1)
319-
assert_equal(len(w), 1)
318+
assert len(w) == 1
320319

321320

322321
def test_gifti_round_trip():
@@ -443,5 +442,5 @@ def test_darray_dtype_coercion_failures():
443442
gii = GiftiImage(darrays=[da])
444443
gii_copy = GiftiImage.from_bytes(gii.to_bytes())
445444
da_copy = gii_copy.darrays[0]
446-
assert_equal(np.dtype(da_copy.data.dtype), np.dtype(darray_dtype))
445+
assert np.dtype(da_copy.data.dtype) == np.dtype(darray_dtype)
447446
assert_array_equal(da_copy.data, da.data)

0 commit comments

Comments
 (0)