def test_get_bool_1(self): a = aobj.DimSweep("a", [1, 2, 3]) A = aobj.hfarray([10, 20, 30], dims=(a, )) ar = aobj.DimSweep("a", [2, 3]) Ar = aobj.hfarray([20, 30], dims=(ar, )) bools = A > 10 self.assertAllclose(A[bools], Ar)
def test_2(self): ai = aobj.DimSweep("a", [1, 2, 3]) bi = aobj.DimSweep("b", [1, 2]) aj = aobj.DimRep("a", [1, 2, 3]) A = aobj.hfarray(ai) B = aobj.hfarray(bi) AB = A * B AB.replace_dim("a", aobj.DimRep) self.assertEqual(AB.dims, (aj, bi))
def setUp(self): adims = (aobj.DimSweep("f", 1), aobj.DimMatrix_i("i", 2), aobj.DimMatrix_j("j", 2)) self.a = aobj.hfarray([[[1, 2 + 0j], [3, 4]]], dims=adims) bdims = (aobj.DimSweep("f", 1), aobj.DimMatrix_i("i", 3), aobj.DimMatrix_j("j", 3)) self.b = aobj.hfarray([[[1, 2 + 0j, 3], [4, 5, 6], [7, 8, 9]]], dims=bdims) self.adims = adims self.bdims = bdims
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_1(self): ai = aobj.DimSweep("a", [1, 2, 3]) bi = aobj.DimSweep("b", [1, 2]) A = aobj.hfarray(ai) B = aobj.hfarray(bi) AB = A * B newdim = aobj.DimSweep("c", [1, 2, 3]) AB.replace_dim(ai, newdim) self.assertEqual(AB.dims, (newdim, bi)) AB = A * B AB.replace_dim("a", newdim) self.assertEqual(AB.dims, (newdim, bi))
def test_take(self): a = aobj.DimSweep("a", [1, 2]) b = aobj.DimSweep("b", [1, 2, 3]) c = aobj.DimSweep("c", [1, 2, 3, 4]) A = aobj.hfarray([1, 2], dims=(a, )) B = aobj.hfarray([10, 20, 30], dims=(b, )) C = aobj.hfarray([100, 200, 300, 400], dims=(c, )) ABC = A + B + C anon = aobj.DimAnonymous("anon1", [0, 1, 2]) self.assertAllclose(ABC.take([0, 1, 2]), aobj.hfarray([111, 211, 311], dims=(anon, )))
def test_get_bool_2(self): a = aobj.DimSweep("a", [1, 2]) b = aobj.DimSweep("b", [1, 2, 3]) c = aobj.DimSweep("c", [1, 2, 3, 4]) A = aobj.hfarray([1, 2], dims=(a, )) B = aobj.hfarray([10, 20, 30], dims=(b, )) C = aobj.hfarray([100, 200, 300, 400], dims=(c, )) ABC = A + B + C self.assertAllclose(ABC[A == 1].squeeze(), 1 + B + C) self.assertAllclose(ABC[B == 20].squeeze(), A + 20 + C) self.assertAllclose(ABC[C == 300].squeeze(), A + B + 300) self.assertRaises(ValueError, C.__getitem__, A == 1)
def test_init_6(self): fi = aobj.DimSweep("f", [12, 13, 14], unit="m", outputformat="%.3f") a = aobj.hfarray(fi, unit="Hz", outputformat="%.5f") self.assertEqual(a.unit, "Hz") self.assertEqual(a.dims, (fi,)) self.assertEqual(a.outputformat, "%.5f") self.assertAllclose(a, [12, 13, 14])
def test_info_index_deprecated(self): reset_hftools_warnings() x = aobj.hfarray([1,2], dims=(aobj.DimSweep("a", 2),)) self.assertHFToolsDeprecationWarning(x.info_index, "a", aobj.DimSweep) with warnings.catch_warnings(): warnings.resetwarnings() warnings.simplefilter("ignore", HFToolsDeprecationWarning) x.info_index("a", aobj.DimSweep)
def test_t_3(self): a = aobj.DimSweep("freq", [1, 2, 3]) i = aobj.DimMatrix_i("i", 2) j = aobj.DimMatrix_j("j", 2) A = aobj.hfarray(np.zeros((3, 2,), dtype=np.complex128), dims=(a, j,)) A[:, 0] = [11, 110, 1100] A[:, 1] = [22, 220, 2200] At = A.t self.assertAllclose(A, At)
def setUp(self): self.fi = aobj.DimSweep("f", 3) self.gi = aobj.DimSweep("g", 4) self.ri = aobj.DimRep("r", 5)
class Test_binary_ops_and(Test_binary_ops): op = operator.and_ randfunc = [rand_bool] def test_7(self): v1 = VArray(self.randfunc[0]((self.fi, self.gi, self.ri), mean=10)) v2 = 5 a1 = np.array(v1) self._check(v1, v2, a1, v2) class Test_binary_ops_or(Test_binary_ops_and): op = operator.or_ class Test_binary_ops_xor(Test_binary_ops_and): op = operator.xor if __name__ == '__main__': fi = aobj.DimSweep("f", 3) gi = aobj.DimSweep("g", 4) ri = aobj.DimRep("r", 5) v1 = random_value_array_from_dims((fi, gi, ri), mean=10) v2 = VArray(random_value_array_from_dims((gi,), mean=10)) a1 = np.array(v1) a2 = np.array(v2)[:, newaxis]
def make_array(a): dims = (aobj.DimSweep("f", len(a)), aobj.DimMatrix_i("i", 2), aobj.DimMatrix_j("j", 2)) return aobj.hfarray(a, dims=dims)
def test_1(self): res = self.cls(np.array(self.a)) resdims = (aobj.DimSweep("freq", 1), ) + self.a.dims[1:] self.assertAllclose(res, self.a) self.assertEqual(res.dims, resdims)
def setUp(self): self.ai = aobj.DimSweep("a", [1, 2, 3]) self.bi = aobj.DimSweep("b", [1, 2]) self.A = aobj.hfarray(self.ai) self.B = aobj.hfarray(self.bi)