From 4ab5243f3f8290ccf3e9cbe65ab496d0bee296fb Mon Sep 17 00:00:00 2001 From: pgajdos Date: Wed, 1 Jul 2020 14:52:13 +0200 Subject: [PATCH] switch from nose to pytest --- .travis.yml | 2 +- run_unittests.sh | 2 +- testcases/test_basics.py | 82 ++++++++++++++--------------- testcases/test_desc_stats.py | 53 +++++++++---------- testcases/test_extra_operations.py | 22 ++++---- testcases/test_functional.py | 51 +++++++++--------- testcases/test_nifti.py | 3 +- testcases/test_operations.py | 6 +-- testcases/test_order.py | 3 +- testcases/test_properties.py | 23 ++++---- testcases/test_select_merge.py | 55 ++++++++++--------- testcases/test_series_operations.py | 3 +- testcases/test_tools.py | 21 ++++---- testcases/test_typing.py | 54 +++++++++---------- 14 files changed, 186 insertions(+), 194 deletions(-) diff --git a/.travis.yml b/.travis.yml index 779bce3..59a47c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,5 +6,5 @@ virtualenv: system_site_packages: true before_install: - pip install openpyxl fastnumbers json_tricks nilearn nibabel scipy numpy pandas scikit-learn -script: nosetests testcases/*.py +script: pytest diff --git a/run_unittests.sh b/run_unittests.sh index eec0988..c9d012f 100755 --- a/run_unittests.sh +++ b/run_unittests.sh @@ -1,2 +1,2 @@ #!/bin/bash -nosetests testcases/*.py --with-coverage --verbose --cover-package=datamatrix +pytest --cov=datamatrix testcases/ diff --git a/testcases/test_basics.py b/testcases/test_basics.py index fec7d65..28a6efa 100644 --- a/testcases/test_basics.py +++ b/testcases/test_basics.py @@ -24,7 +24,7 @@ ) from datamatrix._datamatrix._seriescolumn import _SeriesColumn from testcases.test_tools import check_col, check_series, check_integrity -from nose.tools import ok_, raises, eq_ +import pytest import numpy as np @@ -66,7 +66,7 @@ def _test_numericcolumn(cls): dm.length = 4 # Check uniqueness dm.col = 1, 2, 1, 2 - ok_(sorted(dm.col.unique) == [1,2]) + assert sorted(dm.col.unique) == [1,2] dm.col[dm.col == 2] = 0, 0 check_col(dm.col, [1, 0, 1, 0]) check_integrity(dm) @@ -76,22 +76,22 @@ def _test_numericcolumn(cls): dm.col = 1, 2, 3, 4, 5 # int -> float val = dm.col[2] - ok_(isinstance(val, (int, float))) - eq_(val, 3) + assert isinstance(val, (int, float)) + assert val == 3 # (int, int) -> FloatColumn val = dm.col[1, 3] - ok_(isinstance(val, cls)) + assert isinstance(val, cls) check_col(val, [2, 4]) # slice -> FloatColumn val = dm.col[1:-1] - ok_(isinstance(val, cls)) + assert isinstance(val, cls) check_col(val, [2, 3, 4]) # Check array setting and getting if cls != MixedColumn: a = dm.col.array - ok_(isinstance(a, np.ndarray)) - eq_(a.shape, (5,)) - ok_(all(a == [1, 2, 3, 4, 5])) + assert isinstance(a, np.ndarray) + assert a.shape == (5,) + assert all(a == [1, 2, 3, 4, 5]) def _test_copying(cls): @@ -101,17 +101,17 @@ def _test_copying(cls): dm2 = dm[:] dm2.e = dm.d dm2.f = dm2.d - ok_(dm2 is not dm) - ok_(dm2.d is not dm.d) - ok_(dm2.e is not dm.d) - ok_(dm2.f is dm2.d) - ok_(dm2.d._seq is not dm.d._seq) + assert dm2 is not dm + assert dm2.d is not dm.d + assert dm2.e is not dm.d + assert dm2.f is dm2.d + assert dm2.d._seq is not dm.d._seq dm.c = dm.d - ok_(dm.c is dm.d) - ok_(dm.c._seq is dm.d._seq) + assert dm.c is dm.d + assert dm.c._seq is dm.d._seq dm.e = dm.d[:] - ok_(dm.e is not dm.d) - ok_(dm.e._seq is not dm.d._seq) + assert dm.e is not dm.d + assert dm.e._seq is not dm.d._seq check_integrity(dm) check_integrity(dm2) @@ -137,20 +137,20 @@ def test_intcolumn(): dm.col = 1.9, '2.9' check_col(dm.col, [1, 2]) # Test setting invalid values - @raises(TypeError) def _(): - dm.col[0] = 'x' + with pytest.raises(TypeError): + dm.col[0] = 'x' _() - @raises(TypeError) def _(): - dm.col = 'x' + with pytest.raises(TypeError): + dm.col = 'x' _() - @raises(TypeError) def _(): - dm.col[:-1] = 'x' + with pytest.raises(TypeError): + dm.col[:-1] = 'x' _() # Check dtype - ok_(dm.col._seq.dtype == np.int64) + assert dm.col._seq.dtype == np.int64 check_integrity(dm) @@ -185,7 +185,7 @@ def test_floatcolumn(): dm.col = 'x', None check_col(dm.col, [np.nan, np.nan]) # Check dtype - ok_(dm.col._seq.dtype == np.float64) + assert dm.col._seq.dtype == np.float64 check_integrity(dm) @@ -251,20 +251,20 @@ def test_seriescolumn(): ] # (int, int) -> float val = dm.col[2, 2] - eq_(val, 13) - eq_(type(val), float) + assert val == 13 + assert type(val) == float # (int) -> array val = dm.col[2] - ok_(all(val == np.array([11,12,13,14,15]))) - eq_(type(val), np.ndarray) + assert all(val == np.array([11,12,13,14,15])) + assert type(val) == np.ndarray # (int, slice) -> array val = dm.col[2, 1:-1] - ok_(all(val == np.array([12,13,14]))) - eq_(type(val), np.ndarray) + assert all(val == np.array([12,13,14])) + assert type(val) == np.ndarray # (int, (int, int)) -> array val = dm.col[2, (1, 3)] - ok_(all(val == np.array([12,14]))) - eq_(type(val), np.ndarray) + assert all(val == np.array([12,14])) + assert type(val) == np.ndarray # (slice) -> SeriesColumn val = dm.col[1:-1] check_series(val, [ @@ -273,29 +273,29 @@ def test_seriescolumn(): ]) # (slice, int) -> FloatColumn val = dm.col[1:-1, 2] - ok_(isinstance(val, FloatColumn)) + assert isinstance(val, FloatColumn) check_col(val, [8, 13]) # ((int, int), int) -> FloatColumn val = dm.col[(1, 3), 2] - ok_(isinstance(val, FloatColumn)) + assert isinstance(val, FloatColumn) check_col(val, [8, 18]) # (slice, slice) -> SeriesColumn val = dm.col[1:-1, 1:-1] - ok_(isinstance(val, _SeriesColumn)) + assert isinstance(val, _SeriesColumn) check_series(val, [ [7, 8, 9], [12, 13, 14], ]) # ((int, int), slice) -> SeriesColumn val = dm.col[(1, 3), 1:-1] - ok_(isinstance(val, _SeriesColumn)) + assert isinstance(val, _SeriesColumn) check_series(val, [ [7, 8, 9], [17, 18, 19], ]) # ((int, int), (int int)) -> SeriesColumn val = dm.col[(1, 3), (1, 3)] - ok_(isinstance(val, _SeriesColumn)) + assert isinstance(val, _SeriesColumn) check_series(val, [ [7, 9], [17, 19], @@ -309,10 +309,10 @@ def test_resize(): dm.length += 1 for x, y in zip(dm._rowid, range(l)): print(x, y) - ok_(x == y) + assert x == y for l in range(10, 0, -1): print('shrinking to %d' % l) dm.length -= 1 for x, y in zip(dm._rowid, range(l)): print(x, y) - ok_(x == y) + assert x == y diff --git a/testcases/test_desc_stats.py b/testcases/test_desc_stats.py index 88e2a5c..f4159a7 100644 --- a/testcases/test_desc_stats.py +++ b/testcases/test_desc_stats.py @@ -21,27 +21,26 @@ from datamatrix import DataMatrix, MixedColumn, FloatColumn, IntColumn, \ SeriesColumn import numpy as np -from nose.tools import eq_, ok_ -from nose.tools import assert_almost_equal as aeq +import pytest def check_odd(dm): - aeq(dm.col.mean, 13./3) - eq_(dm.col.median, 2) - aeq(dm.col.std, np.std( [1,2,10], ddof=1 )) - eq_(dm.col.min, 1) - eq_(dm.col.max, 10) - eq_(dm.col.sum, 13) + assert dm.col.mean == pytest.approx(13./3) + assert dm.col.median == 2 + assert dm.col.std == pytest.approx(np.std( [1,2,10], ddof=1)) + assert dm.col.min == 1 + assert dm.col.max == 10 + assert dm.col.sum == 13 def check_even(dm): - aeq(dm.col.mean, 4) - eq_(dm.col.median, 2.5) - aeq(dm.col.std, np.std( [1,2,3,10], ddof=1 )) - eq_(dm.col.min, 1) - eq_(dm.col.max, 10) - eq_(dm.col.sum, 16) + assert dm.col.mean == pytest.approx(4) + assert dm.col.median == 2.5 + assert dm.col.std == pytest.approx(np.std( [1,2,3,10], ddof=1)) + assert dm.col.min == 1 + assert dm.col.max == 10 + assert dm.col.sum == 16 def check_desc_stats(col_type, invalid, assert_invalid): @@ -65,12 +64,12 @@ def check_desc_stats(col_type, invalid, assert_invalid): # One lengths dm.length = 1 dm.col = 1 - eq_(dm.col.mean, 1) - eq_(dm.col.median, 1) + assert dm.col.mean == 1 + assert dm.col.median == 1 assert_invalid(dm.col.std) - eq_(dm.col.min, 1) - eq_(dm.col.max, 1) - eq_(dm.col.sum, 1) + assert dm.col.min == 1 + assert dm.col.max == 1 + assert dm.col.sum == 1 # Zero lengths dm.length = 0 assert_invalid(dm.col.mean) @@ -82,12 +81,12 @@ def check_desc_stats(col_type, invalid, assert_invalid): def assert_None(val): - ok_(val is None) + assert val is None def assert_nan(val): - ok_(np.isnan(val)) + assert np.isnan(val) def test_seriescolumn(): @@ -97,15 +96,15 @@ def test_seriescolumn(): dm.col[0] = [1,2,3] dm.col[1] = [3,3,3] dm.col[2] = [4,4,4] - ok_(all(dm.col.mean == [8./3, 9./3, 10/3.])) - ok_(all(dm.col.median == [3,3,3])) - ok_(all(dm.col.max == [4,4,4])) - ok_(all(dm.col.min == [1,2,3])) - ok_(all(dm.col.std == [ + assert all(dm.col.mean == [8./3, 9./3, 10/3.]) + assert all(dm.col.median == [3,3,3]) + assert all(dm.col.max == [4,4,4]) + assert all(dm.col.min == [1,2,3]) + assert all(dm.col.std == [ np.std([4,3,1], ddof=1), np.std([4,3,2], ddof=1), np.std([4,3,3], ddof=1) - ])) + ]) def test_mixedcolumn(): diff --git a/testcases/test_extra_operations.py b/testcases/test_extra_operations.py index 82c6f32..437ddb1 100644 --- a/testcases/test_extra_operations.py +++ b/testcases/test_extra_operations.py @@ -27,9 +27,9 @@ ) from datamatrix import operations as ops from testcases.test_tools import check_col, check_row, check_series -from nose.tools import eq_, ok_, raises import numpy as np import itertools +import pytest def test_replace(): @@ -81,11 +81,11 @@ def test_split(): # Without values g = ops.split(dm.a) val, dm = next(g) - eq_(val, 'a') + assert val == 'a' check_col(dm.a, ['a', 'a']) check_col(dm.b, [0, 1]) val, dm = next(g) - eq_(val, 'b') + assert val == 'b' check_col(dm.a, ['b', 'b']) check_col(dm.b, [2, 3]) # With values @@ -113,9 +113,9 @@ def test_bin_split(): check_col(dm3.a, [2,3]) dm1, = ops.bin_split(dm.a, 1) check_col(dm1.a, [0,1,2,3]) - @raises(ValueError) def _(): - x, = ops.bin_split(dm.a, 5) + with pytest.raises(ValueError): + x, = ops.bin_split(dm.a, 5) _() @@ -220,9 +220,9 @@ def test_keep_only(): dm.c = 'y', 'z' for cols in (['b', 'c'], [dm.b, dm.c]): dm = ops.keep_only(dm, *cols) - ok_('a' not in dm.column_names) - ok_('b' in dm.column_names) - ok_('c' in dm.column_names) + assert 'a' not in dm.column_names + assert 'b' in dm.column_names + assert 'c' in dm.column_names def test_auto_type(): @@ -232,6 +232,6 @@ def test_auto_type(): dm.b = 0.1, 1 dm.c = 0, 1 dm = ops.auto_type(dm) - ok_(isinstance(dm.a, MixedColumn)) - ok_(isinstance(dm.b, FloatColumn)) - ok_(isinstance(dm.c, IntColumn)) + assert isinstance(dm.a, MixedColumn) + assert isinstance(dm.b, FloatColumn) + assert isinstance(dm.c, IntColumn) diff --git a/testcases/test_functional.py b/testcases/test_functional.py index 6c696f7..f367997 100644 --- a/testcases/test_functional.py +++ b/testcases/test_functional.py @@ -20,7 +20,6 @@ from datamatrix.py3compat import * from datamatrix import DataMatrix, MixedColumn, IntColumn, FloatColumn from datamatrix import functional as fnc -from nose.tools import eq_, ok_ from testcases.test_tools import capture_stdout @@ -30,11 +29,11 @@ def test_map_(): dm = DataMatrix(length=2, default_col_type=coltype) dm.a = 1, 2 dm.a = fnc.map_(lambda x: x*2, dm.a) - eq_(dm.a, [2, 4]) - ok_(isinstance(dm.a, coltype)) + assert dm.a == [2, 4] + assert isinstance(dm.a, coltype) dm = fnc.map_(lambda **d: {'a' : 0}, dm) - eq_(dm.a, [0, 0]) - ok_(isinstance(dm.a, coltype)) + assert dm.a == [0, 0] + assert isinstance(dm.a, coltype) def test_filter_(): @@ -42,19 +41,19 @@ def test_filter_(): dm = DataMatrix(length=4) dm.a = range(4) odd = fnc.filter_(lambda x: x%2, dm.a) - ok_(all([x%2 for x in odd])) + assert all([x%2 for x in odd]) print(type(dm._rowid)) dm = fnc.filter_(lambda **d: d['a']%2, dm) print(type(dm._rowid)) - eq_(dm.a, [1, 3]) + assert dm.a == [1, 3] def test_setcol(): dm1 = DataMatrix(length=2) dm2 = fnc.setcol(dm1, 'y', range(2)) - eq_(dm2.y, [0, 1]) - ok_('y' not in dm1) + assert dm2.y == [0, 1] + assert 'y' not in dm1 def test_curry(): @@ -66,12 +65,12 @@ def add(a, b, c): return a+b+c - eq_(add(1,2,3), 6) - eq_(add(1,2)(3), 6) - eq_(add(1)(2,3), 6) - eq_(add(1)(2)(3), 6) + assert add(1,2,3) == 6 + assert add(1,2)(3) == 6 + assert add(1)(2,3) == 6 + assert add(1)(2)(3) == 6 if py3: - eq_(add.__doc__, 'test') + assert add.__doc__ == 'test' def test_memoize(): @@ -94,18 +93,18 @@ def add3(a, b): return a+b retval, memkey, src = add(1,2) - eq_(retval, 3) - eq_(src, u'function') - eq_(add(1,2), (retval, memkey, u'memory')) + assert retval == 3 + assert src == u'function' + assert add(1,2) == (retval, memkey, u'memory') add.clear() - eq_(add(1,2), (retval, memkey, u'function')) - eq_(add(1,2), (retval, memkey, u'memory')) - eq_(add2(1,2), (retval, u'custom-key', u'function')) - eq_(add2(1,2), (retval, u'custom-key', u'memory')) + assert add(1,2) == (retval, memkey, u'function') + assert add(1,2) == (retval, memkey, u'memory') + assert add2(1,2) == (retval, u'custom-key', u'function') + assert add2(1,2) == (retval, u'custom-key', u'memory') add2.clear() - eq_(add2(1,2), (retval, u'custom-key', u'function')) - eq_(add2(1,2), (retval, u'custom-key', u'memory')) - eq_(add3(1,2), add3(1,2)) + assert add2(1,2), (retval, u'custom-key', u'function') + assert add2(1,2), (retval, u'custom-key', u'memory') + assert add3(1,2), add3(1,2) def test_memoize_chain(): @@ -122,8 +121,8 @@ def add_one(i): with capture_stdout() as out: chain() l = out.getvalue().strip().split('\n') - eq_(len(l), 6) + assert len(l) == 6 with capture_stdout() as out: chain() l = out.getvalue().strip().split('\n') - eq_(len(l), 1) + assert len(l) == 1 diff --git a/testcases/test_nifti.py b/testcases/test_nifti.py index bf0b375..a6d5f13 100644 --- a/testcases/test_nifti.py +++ b/testcases/test_nifti.py @@ -21,7 +21,6 @@ from datamatrix import DataMatrix, NiftiColumn import nibabel as nib import numpy as np -from nose.tools import ok_ def test_nifti(): @@ -37,7 +36,7 @@ def test_nifti(): None ) m = dm.n.mean.get_data() - ok_(np.all(m == np.array([[[.5, .5], [.5, .5]], [[-1, 0], [.5, .5]]]))) + assert np.all(m == np.array([[[.5, .5], [.5, .5]], [[-1, 0], [.5, .5]]])) test_nifti() diff --git a/testcases/test_operations.py b/testcases/test_operations.py index c7d6396..2895c76 100644 --- a/testcases/test_operations.py +++ b/testcases/test_operations.py @@ -19,9 +19,9 @@ from datamatrix.py3compat import * from datamatrix import DataMatrix, MixedColumn, FloatColumn, IntColumn, SeriesColumn -from nose.tools import raises from testcases.test_tools import check_col, check_series, check_integrity import numpy as np +import pytest def check_operations(col_type): @@ -79,9 +79,9 @@ def check_int_operations(): check_col(dm.col, [1, 2]) dm.col *= 2.5 check_col(dm.col, [2, 4]) - @raises(TypeError) def _(): - dm.col *= 'x' + with pytest.raises(TypeError): + dm.col *= 'x' _() check_integrity(dm) diff --git a/testcases/test_order.py b/testcases/test_order.py index e043154..41840fb 100644 --- a/testcases/test_order.py +++ b/testcases/test_order.py @@ -21,7 +21,6 @@ from datamatrix import DataMatrix, MixedColumn, FloatColumn, IntColumn, \ operations, SeriesColumn from testcases.test_tools import check_col, check_integrity -from nose.tools import eq_, ok_ import numpy as np @@ -69,7 +68,7 @@ def check_shuffle(col_type): dm.col2 = 1,2,3 dm = operations.shuffle(dm) for row in dm: - ok_(row.col1 == row.col2+10) + assert row.col1 == row.col2+10 dm.col1 = operations.shuffle(dm.col1) dm.col2 = operations.shuffle(dm.col2) check_integrity(dm) diff --git a/testcases/test_properties.py b/testcases/test_properties.py index 6a7e420..56e7e91 100644 --- a/testcases/test_properties.py +++ b/testcases/test_properties.py @@ -20,7 +20,6 @@ from datamatrix.py3compat import * from datamatrix import DataMatrix, MixedColumn, FloatColumn, IntColumn from testcases.test_tools import all_nan -from nose.tools import eq_ import numpy as np @@ -29,12 +28,12 @@ def _test_numeric_properties(coltype, nan): dm = DataMatrix(length=4, default_col_type=coltype) dm.c = 1, 1, nan, 4 dm.d = [nan]*4 - eq_(dm.c.mean, 2) - eq_(dm.c.median, 1) - eq_(dm.c.std, np.std([1,1,4], ddof=1)) - eq_(dm.c.max, 4) - eq_(dm.c.min, 1) - eq_(dm.c.sum, 6) + assert dm.c.mean == 2 + assert dm.c.median == 1 + assert dm.c.std == np.std([1,1,4], ddof=1) + assert dm.c.max == 4 + assert dm.c.min == 1 + assert dm.c.sum == 6 all_nan(dm.d.mean, nan) all_nan(dm.d.median, nan) all_nan(dm.d.std, nan) @@ -49,11 +48,11 @@ def _test_basic_properties(coltype): dm.c = 3,1,2,3 dm.d = dm.c dm.e = 3,1,2,3 - eq_(dm.c.name, ['c', 'd']) - eq_(dm.d.name, ['c', 'd']) - eq_(dm.e.name, 'e') - eq_(list(dm.c.unique), [1,2,3]) - eq_(dm.c.count, 3) + assert dm.c.name == ['c', 'd'] + assert dm.d.name == ['c', 'd'] + assert dm.e.name == 'e' + assert list(dm.c.unique) == [1,2,3] + assert dm.c.count == 3 def test_intcolumn(): diff --git a/testcases/test_select_merge.py b/testcases/test_select_merge.py index 0129d1b..1f88b6a 100644 --- a/testcases/test_select_merge.py +++ b/testcases/test_select_merge.py @@ -20,10 +20,9 @@ from datamatrix.py3compat import * from datamatrix import DataMatrix, MixedColumn, FloatColumn, IntColumn, \ SeriesColumn -from nose.tools import raises, eq_ from testcases.test_tools import check_col, check_series, check_integrity import numpy as np - +import pytest def check_select(col_type): @@ -63,13 +62,13 @@ def check_getrow(col_type): assert(row.col == 1) row = dm[-1] assert(row.col == 2) - @raises(IndexError) def _(): - row = dm[2] + with pytest.raises(IndexError): + row = dm[2] _() - @raises(IndexError) def _(): - row = dm[-3] + with pytest.raises(IndexError): + row = dm[-3] _() @@ -95,12 +94,12 @@ def test_mixedcolumn(): # Check type selectors dm = DataMatrix(length=6) dm.col = 1, 2, 3, 1.1, 2.1, 'a' - eq_(len(dm.col == float), 2) - eq_(len(dm.col != float), 4) - eq_(len(dm.col == str), 1) - eq_(len(dm.col != str), 5) - eq_(len(dm.col == int), 3) - eq_(len(dm.col != int), 3) + assert len(dm.col == float) == 2 + assert len(dm.col != float) == 4 + assert len(dm.col == str) == 1 + assert len(dm.col != str) == 5 + assert len(dm.col == int) == 3 + assert len(dm.col != int) == 3 def test_floatcolumn(): @@ -125,19 +124,19 @@ def test_floatcolumn(): check_col(dm2.col, [np.inf]) dm2 = dm.col != np.inf check_col(dm2.col, [1, 2, np.nan]) - @raises(TypeError) def _(): - dm.col > '' + with pytest.raises(TypeError): + dm.col > '' _() # Check type selectors dm = DataMatrix(length=2, default_col_type=FloatColumn) dm.col = 1, 2 - eq_(len(dm.col == float), 2) - eq_(len(dm.col != float), 0) - eq_(len(dm.col == str), 0) - eq_(len(dm.col != str), 2) - eq_(len(dm.col == int), 0) - eq_(len(dm.col != int), 2) + assert len(dm.col == float) == 2 + assert len(dm.col != float) == 0 + assert len(dm.col == str) == 0 + assert len(dm.col != str) == 2 + assert len(dm.col == int) == 0 + assert len(dm.col != int) == 2 def test_intcolumn(): @@ -154,19 +153,19 @@ def test_intcolumn(): check_col(dm2.col, []) dm2 = dm.col != '' check_col(dm2.col, [1, 2]) - @raises(TypeError) def _(): - dm.col > '' + with pytest.raises(TypeError): + dm.col > '' _() # Check type selectors dm = DataMatrix(length=2, default_col_type=IntColumn) dm.col = 1, 2 - eq_(len(dm.col == int), 2) - eq_(len(dm.col != int), 0) - eq_(len(dm.col == float), 0) - eq_(len(dm.col != float), 2) - eq_(len(dm.col == str), 0) - eq_(len(dm.col != str), 2) + assert len(dm.col == int) == 2 + assert len(dm.col != int) == 0 + assert len(dm.col == float) == 0 + assert len(dm.col != float) == 2 + assert len(dm.col == str) == 0 + assert len(dm.col != str) == 2 def test_seriescolumn(): diff --git a/testcases/test_series_operations.py b/testcases/test_series_operations.py index e82a1c4..7fd7dee 100644 --- a/testcases/test_series_operations.py +++ b/testcases/test_series_operations.py @@ -21,7 +21,6 @@ from datamatrix import DataMatrix, SeriesColumn from datamatrix import series from testcases.test_tools import check_col, check_series, check_integrity -from nose.tools import eq_, ok_ import numpy as np @@ -51,7 +50,7 @@ def test_lock(): dm.s[0] = 1, 2, 3 dm.s[1] = -1, -2, -3 dm.l, zero_point = series.lock(dm.s, [-1, 1]) - eq_(zero_point, 1) + assert zero_point == 1 check_series(dm.l, [ [np.nan, np.nan, 1, 2, 3], [-1, -2, -3, np.nan, np.nan] diff --git a/testcases/test_tools.py b/testcases/test_tools.py index 65ff6d9..0eb2f11 100644 --- a/testcases/test_tools.py +++ b/testcases/test_tools.py @@ -17,7 +17,6 @@ along with datamatrix. If not, see . """ -from nose.tools import eq_, ok_ from datamatrix._datamatrix._index import Index import numpy as np import contextlib @@ -35,36 +34,36 @@ def all_nan(*l): def check_dm(dm, ref): - ok_(dm.column_names == ref.column_names) + assert dm.column_names == ref.column_names for column_name in dm.column_names: - ok_(not isinstance(column_name, bytes)) + assert not isinstance(column_name, bytes) for colname in dm.column_names: check_col(dm[colname], ref[colname]) - ok_(isinstance(dm._rowid, Index)) + assert isinstance(dm._rowid, Index) def check_col(col, ref): check_integrity(col._datamatrix) - ok_(len(col) == len(ref)) + assert len(col) == len(ref) for x, y in zip(col, ref): if x != y: if not (x is None or y is None) and np.isnan(x) and np.isnan(y): continue print(u'Column error: %s != %s' % (col, ref)) - ok_(False) + assert False def check_row(row, ref): check_integrity(row._datamatrix) - ok_(len(row) == len(ref)) + assert len(row) == len(ref) for (colname, x), y in zip(row, ref): if x != y: if not (x is None or y is None) and np.isnan(x) and np.isnan(y): continue print(u'Row error: %s != %s' % (row, ref)) - ok_(False) + assert False def check_series(col, ref): @@ -76,7 +75,7 @@ def check_series(col, ref): continue if not np.isclose(x, y): print(u'Column error: %s != %s' % (col, ref)) - ok_(False) + assert False def check_integrity(dm): @@ -84,12 +83,12 @@ def check_integrity(dm): for name, col in dm.columns: if len(dm._rowid) != len(col._rowid): print('Integrity failure: %s != %s' % (dm._rowid, col._rowid)) - ok_(False) + assert False for i, j in zip(dm._rowid, col._rowid): if i != j: print('Integrity failure: %s != %s (col: %s)' \ % (dm._rowid, col._rowid, name)) - ok_(False) + assert False @contextlib.contextmanager def capture_stdout(): diff --git a/testcases/test_typing.py b/testcases/test_typing.py index 705a772..266d73d 100644 --- a/testcases/test_typing.py +++ b/testcases/test_typing.py @@ -20,7 +20,7 @@ from datamatrix.py3compat import * import math import numpy as np -from nose.tools import ok_, raises +import pytest from testcases.test_tools import check_col from datamatrix import ( DataMatrix, @@ -36,20 +36,20 @@ def check_mixedcolumn_typing(): dm = DataMatrix(length=4) dm.i = 1, '1', 2, '2' - ok_(all(isinstance(v, int) for v in dm.i)) + assert all(isinstance(v, int) for v in dm.i) dm.f = 1.1, '1.1', 2.1, '2.2' - ok_(all(isinstance(v, float) for v in dm.f)) + assert all(isinstance(v, float) for v in dm.f) dm.inf = INF, -INF, 'inf', '-inf' - ok_(all(math.isinf(v) for v in dm.inf)) + assert all(math.isinf(v) for v in dm.inf) dm.nan = NAN, NAN, 'nan', 'nan' - ok_(all(math.isnan(v) for v in dm.nan)) + assert all(math.isnan(v) for v in dm.nan) dm.none = None, None, None, None - ok_(all(v is None for v in dm.none)) + assert all(v is None for v in dm.none) dm.s = 'alpha', 'beta', 'None', '' - ok_(all(isinstance(v, str) for v in dm.s)) - @raises(TypeError) + assert all(isinstance(v, str) for v in dm.s) def _(): - dm.err = Exception, tuple, str, map + with pytest.raises(TypeError): + dm.err = Exception, tuple, str, map _() @@ -78,18 +78,18 @@ def check_floatcolumn_typing(): dm = DataMatrix(length=4, default_col_type=FloatColumn) dm.f = 1.1, '1.1', 1, '2' - ok_(all(isinstance(v, float) for v in dm.f)) + assert all(isinstance(v, float) for v in dm.f) dm.inf = INF, -INF, 'inf', '-inf' - ok_(all(math.isinf(v) for v in dm.inf)) + assert all(math.isinf(v) for v in dm.inf) dm.nan = NAN, NAN, 'nan', 'nan' - ok_(all(math.isnan(v) for v in dm.nan)) + assert all(math.isnan(v) for v in dm.nan) dm.none = None, None, None, None - ok_(all(math.isnan(v) for v in dm.none)) + assert all(math.isnan(v) for v in dm.none) dm.s = 'alpha', 'beta', 'None', ' ' - ok_(all(math.isnan(v) for v in dm.s)) - @raises(TypeError) + assert all(math.isnan(v) for v in dm.s) def _(): - dm.err = Exception, tuple, str, map + with pytest.raises(TypeError): + dm.err = Exception, tuple, str, map _() @@ -118,26 +118,26 @@ def check_intcolumn_typing(): dm = DataMatrix(length=4, default_col_type=IntColumn) dm.f = 1.1, '1.8', 2, '2' - ok_(all(isinstance(v, int) for v in dm.f)) - @raises(TypeError) + assert all(isinstance(v, int) for v in dm.f) def _(): - dm.inf = INF, -INF, 'inf', '-inf' + with pytest.raises(TypeError): + dm.inf = INF, -INF, 'inf', '-inf' _() - @raises(TypeError) def _(): - dm.nan = NAN, NAN, 'nan', 'nan' + with pytest.raises(TypeError): + dm.nan = NAN, NAN, 'nan', 'nan' _() - @raises(TypeError) def _(): - dm.none = None, None, None, None + with pytest.raises(TypeError): + dm.none = None, None, None, None _() - @raises(TypeError) def _(): - dm.s = 'alpha', 'beta', 'None', ' ' + with pytest.raises(TypeError): + dm.s = 'alpha', 'beta', 'None', ' ' _() - @raises(TypeError) def _(): - dm.err = Exception, tuple, str, map + with pytest.raises(TypeError): + dm.err = Exception, tuple, str, map _()