From 49ff728d4778adafbd0177c44013c595003f0ea2 Mon Sep 17 00:00:00 2001 From: Keith Goodman Date: Mon, 25 Jun 2012 13:49:53 -0700 Subject: [PATCH] TST refactor larry.getitem tests --- la/tests/deflarry_getitem_test.py | 222 +++++++++++++++++++++++++++++ la/tests/deflarry_test.py | 229 ------------------------------ 2 files changed, 222 insertions(+), 229 deletions(-) create mode 100644 la/tests/deflarry_getitem_test.py diff --git a/la/tests/deflarry_getitem_test.py b/la/tests/deflarry_getitem_test.py new file mode 100644 index 0000000..984e1b1 --- /dev/null +++ b/la/tests/deflarry_getitem_test.py @@ -0,0 +1,222 @@ +"Unit tests of larry.__getitem__" + +from nose.tools import assert_raises, assert_equal +import numpy as np +from numpy.testing import assert_array_equal +nan = np.nan + +from la import larry +from la.util.testing import assert_larry_equal as ale + + +def make_larrys(): + a1 = np.array([[ 1.0, nan], + [ 3.0, 4.0], + [ 5.0, 6.0]]) + lar1 = larry(a1) + a2 = np.array([ 0, 1, 2, 3]) + lar2 = larry(a2) + return lar1, lar2 + +def test_getitem_01(): + "larry.getitem #01" + desired = larry([3.0, 4.0]) + lar1, lar2 = make_larrys() + actual = lar1[1] + ale(actual, desired) + +def test_getitem_02(): + "larry.getitem #02" + desired = larry([3.0, 4.0]) + lar1, lar2 = make_larrys() + actual = lar1[1,:] + ale(actual, desired) + +def test_getitem_03(): + "larry.getitem #03" + desired = larry([3.0, 4.0]) + lar1, lar2 = make_larrys() + actual = lar1[1,0:2] + ale(actual, desired) + +def test_getitem_04(): + "larry.getitem #04" + desired = np.array([4.0])[0] + lar1, lar2 = make_larrys() + actual = lar1[1,1] + ale(actual, desired) + +def test_getitem05(): + "larry.getitem #05" + label = [[1, 2], [0, 1]] + desired = larry([[3.0, 4.0], + [5.0, 6.0]], + label) + lar1, lar2 = make_larrys() + idx = np.array([False, True, True]) + actual = lar1[idx,:] + ale(actual, desired, original=lar1) + +def test_getitem_06(): + "larry.getitem #06" + desired = larry([[1.0, nan], + [3.0, 4.0]]) + lar1, lar2 = make_larrys() + actual = lar1[0:2,0:2] + ale(actual, desired) + +def test_getitem_07(): + "larry.getitem #07" + desired = larry([[ 3.0, 4.0], + [ 5.0, 6.0]], [[1, 2], [0, 1]]) + lar1, lar2 = make_larrys() + actual = lar1[np.array([1, 2])] + ale(actual, desired, original=lar1) + +def test_getitem_08(): + "larry.getitem #08" + lar1, lar2 = make_larrys() + assert_raises(IndexError, lar1.__getitem__, 100) + +def test_getitem_09(): + "larry.getitem #09" + lar1, lar2 = make_larrys() + assert_raises(IndexError, lar1.__getitem__, 'a') + +def test_getitem_10(): + "larry.getitem #10" + desired = np.array([1])[0] + lar1, lar2 = make_larrys() + actual = lar2[1] + ale(actual, desired) + +def test_getitem_11(): + "larry.getitem #11" + desired = larry([0, 1]) + lar1, lar2 = make_larrys() + actual = lar2[:2] + ale(actual, desired) + +def test_getitem_12(): + "larry.getitem #12" + label = [[0, 2, 1], [0, 1]] + desired = larry([[ 1.0, nan], + [ 5.0, 6.0], + [ 3.0, 4.0]], + label) + lar1, lar2 = make_larrys() + actual = lar1[[0, 2, 1]] + #ale(actual, desired, original=lar1) fails: axis 1 label is not a copy + ale(actual, desired) + +def test_getitem_13(): + "larry.getitem #13" + label = [[0, 2, 1], [0, 1]] + desired = larry([[ 1.0, nan], + [ 5.0, 6.0], + [ 3.0, 4.0]], + label) + lar1, lar2 = make_larrys() + actual = lar1[[0.99, 2.6, 1.78]] + #ale(actual, desired, original=lar1) fails: axis 1 label is not a copy + ale(actual, desired) + +def test_getitem_14(): + "larry.getitem #14" + label = [[1, 0], [0, 1]] + desired = larry([[ 3.0, 4.0], + [ 1.0, nan]], + label) + lar1, lar2 = make_larrys() + idx = [True, False] + actual = lar1[idx] + #ale(actual, desired, original=lar1) fails: axis 1 label is not a copy + ale(actual, desired) + +def test_getitem_15(): + "larry.getitem #15" + lar1, lar2 = make_larrys() + assert_raises(IndexError, lar1.__getitem__, [0,1,0]) + +def test_getitem_16(): + "larry.getitem #16" + desired = larry([[ 1.0, nan]]) + lar1, lar2 = make_larrys() + idx = np.array([True, False]) + actual = lar1[idx,:] + ale(actual, desired, original=lar1) + +def test_getitem_17(): + "larry.getitem #17" + desired = larry([[ 1.0], + [ 3.0], + [ 5.0]]) + lar1, lar2 = make_larrys() + idx = np.array([True, False]) + actual = lar1[:, idx] + ale(actual, desired, original=lar1) + +def test_getitem_18(): + "larry.getitem #18" + desired = larry([3.0, 4.0]) + lar1, lar2 = make_larrys() + actual = lar1[1.9] + ale(actual, desired) + +def test_getitem_19(): + "larry.getitem #19" + desired = np.array([4.0])[0] + lar1, lar2 = make_larrys() + actual = lar1[1.1, 1.1] + ale(actual, desired) + +def test_getitem_20(): + "larry.getitem #20" + desired = larry([[ 3.0, 4.0], + [ 5.0, 6.0]], [[1, 2], [0, 1]]) + lar1, lar2 = make_larrys() + actual = lar1[np.array([1, 2]),:] + ale(actual, desired, original=lar1) + +def test_getitem_21(): + "larry.getitem #21" + desired = larry([ 3.0, 5.0], [[1, 2]]) + lar1, lar2 = make_larrys() + actual = lar1[np.array([1, 2]), 0] + ale(actual, desired, original=lar1) + +def test_getitem_22(): + "larry.getitem #22" + lar = larry([None, None]) + desired = None + actual = lar[0] + assert_equal(actual, desired, "Indexing object dtype failed.") + +def test_getitem_23(): + "larry.getitem #23" + a = np.empty(2, dtype=object) + a[0] = np.array([1, 2, 3]) + a[1] = np.array([4, 5, 6]) + lar = larry(a) + desired = np.array([4, 5, 6]) + actual = lar[1] + err_msg = "Indexing 1d object dtype (array of arrays) failed." + assert_array_equal(actual, desired, err_msg=err_msg) + +def test_getitem_24(): + "larry.getitem #24" + a = np.empty((2,1), dtype=object) + a[0,0] = np.array([1, 2, 3]) + a[1,0] = np.array([4, 5, 6]) + lar = larry(a) + desired = np.array([4, 5, 6]) + actual = lar[1,0] + err_msg = "Indexing 2d object dtype (array of arrays) failed." + assert_array_equal(actual, desired, err_msg=err_msg) + +def test_getitem_25(): + "larry.getitem #25" + desired = larry(np.ones((3,0))) + lar1, lar2 = make_larrys() + actual = lar1[:,1:1] + ale(actual, desired, original=lar1) diff --git a/la/tests/deflarry_test.py b/la/tests/deflarry_test.py index 2cc695b..6a84540 100644 --- a/la/tests/deflarry_test.py +++ b/la/tests/deflarry_test.py @@ -1527,235 +1527,6 @@ def setUp(self): self.l = larry(self.x) self.x2 = np.array([ 0, 1, 2, 3]) self.l2 = larry(self.x2) - - def test_getitem_1(self): - "larry.__getitem___1" - t = np.array([[3.0, 4.0]]) - p = self.l[1] - msg = printfail(t, p.x, 'x') - t[np.isnan(t)] = self.nancode - p[np.isnan(p.x)] = self.nancode - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[0, 1]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_2(self): - "larry.__getitem___2" - t = np.matrix([[3.0, 4.0]]) - p = self.l[1,:] - msg = printfail(t, p.x, 'x') - t[np.isnan(t)] = self.nancode - p[np.isnan(p.x)] = self.nancode - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[0, 1]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_3(self): - "larry.__getitem___3" - t = np.array([[3.0, 4.0]]) - p = self.l[1,0:2] - msg = printfail(t, p.x, 'x') - t[np.isnan(t)] = self.nancode - p[np.isnan(p.x)] = self.nancode - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[0, 1]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_4(self): - "larry.__getitem___4" - t = 4.0 - p = self.l[1,1] - msg = printfail(t, p, 'x') - self.assert_((abs(t - p) < self.tol).all(), msg) - - def test_getitem_5(self): - "larry.__getitem___5" - t = np.array([[ 3.0, 4.0], - [ 5.0, 6.0]]) - idx = self.l.x.sum(1) > 2 - idx = np.where(idx)[0] - p = self.l[idx,:] - msg = printfail(t, p.x, 'x') - t[np.isnan(t)] = self.nancode - p[np.isnan(p.x)] = self.nancode - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[1, 2], [0, 1]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_6(self): - "larry.__getitem___6" - t = np.array([[ 1.0, nan], - [ 3.0, 4.0]]) - p = self.l[0:2,0:2] - msg = printfail(t, p.x, 'x') - t[np.isnan(t)] = self.nancode - p[np.isnan(p.x)] = self.nancode - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[0, 1], [0, 1]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_7(self): - "larry.__getitem___7" - desired = larry([[ 3.0, 4.0], - [ 5.0, 6.0]], [[1, 2], [0, 1]]) - actual = self.l[np.array([1, 2])] - ale(actual, desired, original=self.l) - - def test_getitem_8(self): - "larry.__getitem___8" - self.failUnlessRaises(IndexError, self.l.__getitem__, 100) - - def test_getitem_9(self): - "larry.__getitem___9" - self.failUnlessRaises(IndexError, self.l.__getitem__, 'a') - - def test_getitem_10(self): - "larry.__getitem___10" - t = 1 - p = self.l2[1] - msg = printfail(t, p, 'x') - self.assert_((abs(t - p) < self.tol).all(), msg) - - def test_getitem_11(self): - "larry.__getitem___11" - t = np.array([0, 1]) - p = self.l2[:2] - msg = printfail(t, p.x, 'x') - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[0, 1]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_12(self): - "larry.__getitem___12" - t = np.array([[ 1.0, nan], - [ 5.0, 6.0], - [ 3.0, 4.0]]) - p = self.l[[0,2,1]] - msg = printfail(t, p.x, 'x') - t[np.isnan(t)] = self.nancode - p[np.isnan(p.x)] = self.nancode - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[0, 2, 1], [0, 1]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_13(self): - "larry.__getitem___13" - t = np.array([[ 1.0, nan], - [ 5.0, 6.0], - [ 3.0, 4.0]]) - p = self.l[[0.99,2.6,1.78]] - msg = printfail(t, p.x, 'x') - t[np.isnan(t)] = self.nancode - p[np.isnan(p.x)] = self.nancode - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[0, 2, 1], [0, 1]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_14(self): - "larry.__getitem___14" - t = np.array([[ 3.0, 4.0], - [ 1.0, nan]]) - p = self.l[[True, False]] - msg = printfail(t, p.x, 'x') - t[np.isnan(t)] = self.nancode - p[np.isnan(p.x)] = self.nancode - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[1, 0], [0, 1]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_15(self): - "larry.__getitem___15" - self.failUnlessRaises(IndexError, self.l.__getitem__, [0,1,0]) - - def test_getitem_16(self): - "larry.__getitem___16" - t = np.array([[ 1.0, nan]]) - p = self.l[np.array([True, False]),:] - msg = printfail(t, p.x, 'x') - t[np.isnan(t)] = self.nancode - p[np.isnan(p.x)] = self.nancode - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[0], [0, 1]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_17(self): - "larry.__getitem___17" - t = np.array([[ 1.0], - [ 3.0], - [ 5.0]]) - p = self.l[:, np.array([True, False])] - msg = printfail(t, p.x, 'x') - t[np.isnan(t)] = self.nancode - p[np.isnan(p.x)] = self.nancode - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[0, 1, 2], [0]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_18(self): - "larry.__getitem___18" - t = np.array([[3.0, 4.0]]) - p = self.l[1.9] - msg = printfail(t, p.x, 'x') - t[np.isnan(t)] = self.nancode - p[np.isnan(p.x)] = self.nancode - self.assert_((abs(t - p.x) < self.tol).all(), msg) - label = [[0, 1]] - self.assert_(label == p.label, printfail(label, p.label, 'label')) - - def test_getitem_19(self): - "larry.__getitem___19" - t = 4.0 - p = self.l[1.1,1.1] - msg = printfail(t, p, 'x') - self.assert_((abs(t - p) < self.tol).all(), msg) - - def test_getitem_20(self): - "larry.__getitem___20" - desired = larry([[ 3.0, 4.0], - [ 5.0, 6.0]], [[1, 2], [0, 1]]) - actual = self.l[np.array([1, 2]),:] - ale(actual, desired, original=self.l) - - def test_getitem_21(self): - "larry.__getitem___21" - desired = larry([ 3.0, 5.0], [[1, 2]]) - actual = self.l[np.array([1, 2]), 0] - ale(actual, desired, original=self.l) - - def test_getitem_22(self): - "larry.__getitem___22" - lar = larry([None, None]) - desired = None - actual = lar[0] - self.assert_(actual==desired, "Indexing object dtype failed.") - - def test_getitem_23(self): - "larry.__getitem___23" - a = np.empty(2, dtype=object) - a[0] = np.array([1, 2, 3]) - a[1] = np.array([4, 5, 6]) - lar = larry(a) - desired = np.array([4, 5, 6]) - actual = lar[1] - err_msg = "Indexing 1d object dtype (array of arrays) failed." - assert_equal(actual, desired, err_msg) - - def test_getitem_24(self): - "larry.__getitem___24" - a = np.empty((2,1), dtype=object) - a[0,0] = np.array([1, 2, 3]) - a[1,0] = np.array([4, 5, 6]) - lar = larry(a) - desired = np.array([4, 5, 6]) - actual = lar[1,0] - err_msg = "Indexing 2d object dtype (array of arrays) failed." - assert_equal(actual, desired, err_msg) - - def test_getitem_25(self): - "larry.__getitem___25" - desired = larry(np.ones((3,0))) - actual = self.l[:,1:1] - ale(actual, desired, original=self.l) def test_setitem_1(self): "larry.__setitem___1"