def setUp(self): self.adims = (aobj.DimSweep("f", 1), aobj.DimMatrix_i("i", 2), aobj.DimMatrix_j("j", 2)) self.a = aobj.hfarray([[[0, 0j], [0, 0]]], dims=self.adims) self.bdims = (aobj.DimSweep("f", 10), aobj.DimMatrix_i("i", 2), aobj.DimMatrix_j("j", 2)) self.b = aobj.hfarray(np.array([[[1, 2 + 0j], [3, 4]]]) + np.arange(10)[:, newaxis, newaxis], dims=self.bdims) self.c, = aobj.make_same_dims_list([random_value_array(4, 5)]) self.cdims = self.c.dims self.ddims = self.bdims self.d = aobj.hfarray(np.array([[[1, 2], [3, 4]]]) + np.arange(10)[:, newaxis, newaxis], dims=self.ddims) self.i1 = i1 = aobj.DimSweep("i1", 1) self.i2 = i2 = aobj.DimSweep("i2", 1) self.i3 = i3 = aobj.DimSweep("i3", 1) self.i4 = i4 = aobj.DimSweep("i4", 1) self.i5 = i5 = aobj.DimSweep("i5", 1) self.fi = fi = aobj.DimSweep("f", 2), self.gi = gi = aobj.DimSweep("g", 3), self.e = aobj.hfarray(np.zeros((1, 2, 3)), dims=(i1, fi, gi)) self.f = aobj.hfarray(np.zeros((2, 3, 1)), dims=(fi, gi, i1)) self.g = aobj.hfarray(np.zeros((1, 2, 3, 1)), dims=(i2, fi, gi, i1)) dims = (i2, fi, i3, gi, i1) self.h = aobj.hfarray(np.zeros((1, 2, 1, 3, 1)), dims=dims) dims = (i4, i5)
def test_defaults(self): v = random_value_array(4, 5) a = np.array(v) r1 = getattr(v, self.methodname)() r2 = getattr(a, self.methodname)() r1.verify_dimension() self.assertTrue(np.allclose(r1, r2)) self.assertIsInstance(r1, v.__class__)
def test_1(methodname="argsort", **kw): v = random_value_array(4, 5) a = np.array(v) for i in range(v.ndim): r1 = getattr(a, methodname)(axis=i, **kw) r2 = getattr(v, methodname)(axis=i, **kw) print(i, np.allclose(r1, r2), isinstance(r2, v.__class__)) return v, a
def test_axis_none(self): v = random_value_array(4, 5) a = np.array(v) args = self.kw.copy() args.update(axis=None) r1 = getattr(v, self.methodname)(**args) r2 = getattr(a, self.methodname)(**args) r1.verify_dimension() self.assertTrue(np.allclose(r1, r2)) self.assertIsInstance(r1, v.__class__)
def test_1(self): v = random_value_array(4, 5, minsize=2) a = np.array(v) args = self.kw.copy() for i in range(v.ndim): r1 = getattr(v, self.methodname)(axis=i, **args) r2 = getattr(a, self.methodname)(axis=i, **args) r1.verify_dimension() self.assertTrue(np.allclose(r1, r2)) self.assertIsInstance(r1, v.__class__)
def test_4(self): a = random_value_array(3, 5) self.assertRaises(aobj.HFArrayShapeDimsMismatchError, aobj.make_vector, np.array(a), a.dims[:0])
def test_1(self): a = random_value_array(3, 5) m = aobj.make_vector(np.array(a), a.dims[:-1]) self.assertAllclose(m, a) self.assertEqual(m.dims[-1:], (ds.DimMatrix_j("j", a.shape[-1]),))
def test_3(self): a = random_value_array(3, 5) self.assertRaises(aobj.HFArrayShapeDimsMismatchError, aobj.make_matrix, np.array(a), a.dims[:3])
def test_1(self): a = random_value_array(3, 5) m = aobj.make_matrix(np.array(a), a.dims[:-2]) self.assertAllclose(m, a) self.assertEqual(m.dims[-2:], (ds.DimMatrix_i("i", a.shape[-2]), ds.DimMatrix_j("j", a.shape[-1])))
def test_error_2(self): v = random_value_array(4, 5) self.assertRaises(IndexError, getattr(v, self.methodname), (0, 1))
def test_error_1(self): v = random_value_array(4, 5) self.assertRaises(aobj.HFArrayError, getattr(v, self.methodname), None)
def test_index_error_dont_raise(self): v = random_value_array(4, 5, minsize=2) method = getattr(v, self.methodname) q = method("NONEXISTING", dimerror=False) self.assertAllclose(q, v)
def test_index_error(self): v = random_value_array(4, 5, minsize=2) method = getattr(v, self.methodname) self.assertRaises(IndexError, method, "NONEXISTING")
def test_3(self): v, = aobj.make_same_dims_list([random_value_array(4, 5)]) a = np.array(v) facit = np.sqrt((abs(a) ** 2).sum(1)) res = v.rss(1) self.assertAllclose(res, facit)