def test_insertComps_K1_D3(self, K=1, D=3): A = ParamBag(K=K, D=D) s = 123.456 A.setField('scalar', s, dims=None) A.setField('N', [1.0], dims='K') A.setField('x', np.random.rand(K, D), dims=('K', 'D')) A.setField('xxT', np.random.rand(K, D, D), dims=('K', 'D', 'D')) Abig = A.copy() Abig.insertComps(A) assert Abig.K == 2 assert np.allclose(Abig.N, np.hstack([A.N, A.N])) assert Abig.scalar == s assert Abig.xxT.shape == (2, 3, 3) assert np.allclose(Abig.xxT[0], A.xxT) assert np.allclose(Abig.xxT[1], A.xxT) Abig.insertComps(A) assert Abig.K == 3 assert np.allclose(Abig.N, np.hstack([A.N, A.N, A.N])) assert Abig.scalar == s assert Abig.xxT.shape == (3, 3, 3) assert np.allclose(Abig.xxT[0], A.xxT) assert np.allclose(Abig.xxT[1], A.xxT) A.insertComps(Abig) assert A.K == 4 assert A.scalar == s assert np.allclose(A.N, np.hstack([1, 1, 1, 1]))
def test_insertComps_K1_D1(self): A = ParamBag(K=1, D=1) s = 123.456 A.setField('scalar', s, dims=None) A.setField('N', [1], dims='K') A.setField('x', [[1]], dims=('K', 'D')) A.setField('xxT', [[[1]]], dims=('K', 'D', 'D')) Abig = A.copy() Abig.insertComps(A) assert Abig.K == 2 assert np.allclose(Abig.N, np.hstack([A.N, A.N])) # Verify that after inserting # scalar field is unchanged assert Abig.scalar == s Abig.insertComps(A) assert Abig.K == 3 assert np.allclose(Abig.N, np.hstack([A.N, A.N, A.N])) assert Abig.scalar == s A.insertComps(Abig) assert A.K == 4 assert A.scalar == s assert np.allclose(A.N, np.hstack([1, 1, 1, 1]))
def test_insertComps_K1_D3(self, K=1, D=3): A = ParamBag(K=K,D=D) s = 123.456 A.setField('scalar', s, dims=None) A.setField('N', [1.0], dims='K') A.setField('x', np.random.rand(K,D), dims=('K','D')) A.setField('xxT', np.random.rand(K,D,D), dims=('K','D','D')) Abig = A.copy() Abig.insertComps(A) assert Abig.K == 2 assert np.allclose(Abig.N, np.hstack([A.N, A.N])) assert Abig.scalar == 2*s assert Abig.xxT.shape == (2,3,3) assert np.allclose(Abig.xxT[0], A.xxT) assert np.allclose(Abig.xxT[1], A.xxT) Abig.insertComps(A) assert Abig.K == 3 assert np.allclose(Abig.N, np.hstack([A.N, A.N, A.N])) assert Abig.scalar == 3*s assert Abig.xxT.shape == (3,3,3) assert np.allclose(Abig.xxT[0], A.xxT) assert np.allclose(Abig.xxT[1], A.xxT) A.insertComps(Abig) assert A.K == 4 assert A.scalar == 4*s assert np.allclose(A.N, np.hstack([1,1,1,1]))
def test_removeComp_K3_D1(self): A = ParamBag(K=3, D=1) A.setField('N', [1, 2, 3], dims='K') A.setField('x', [[4], [5], [6]], dims=('K', 'D')) A.setField('W', np.ones((3, 3)), dims=('K', 'K')) Aorig = A.copy() A.removeComp(1) assert Aorig.K == A.K + 1 assert A.N[0] == Aorig.N[0] assert A.N[1] == Aorig.N[2] assert np.allclose(A.x, [[4], [6]]) assert np.allclose(A.W, np.ones((2, 2)))
def test_removeComp_K3_D1(self): A = ParamBag(K=3,D=1) A.setField('N', [1,2,3], dims='K') A.setField('x', [[4],[5],[6]], dims=('K','D')) A.setField('W', np.ones((3,3)), dims=('K','K')) Aorig = A.copy() A.removeComp(1) assert Aorig.K == A.K + 1 assert A.N[0] == Aorig.N[0] assert A.N[1] == Aorig.N[2] assert np.allclose( A.x, [[4],[6]]) assert np.allclose(A.W, np.ones((2,2)))
def test_remove_K3_D2(self, K=3, D=2): A = ParamBag(K=K, D=D) s = 123 N = np.random.rand(K) x = np.random.rand(K, D) xxT = np.random.randn(K, D, D) A.setField('s', s) A.setField('N', N, dims='K') A.setField('x', x, dims=('K', 'D')) A.setField('xxT', xxT, dims=('K', 'D', 'D')) Abig = A.copy() # First remove a few fields for k in range(K - 1): A.removeComp(0) assert A.K == K - k - 1 assert A.s == s assert np.allclose(A.getComp(0).x, x[k + 1]) assert np.allclose(A.getComp(0).xxT, xxT[k + 1])
def test_remove_K3_D2(self, K=3, D=2): A = ParamBag(K=K, D=D) s = 123 N = np.random.rand(K) x = np.random.rand(K,D) xxT = np.random.randn(K,D,D) A.setField('s', s) A.setField('N', N, dims='K') A.setField('x', x, dims=('K','D')) A.setField('xxT', xxT, dims=('K','D','D')) Abig = A.copy() # First remove a few fields for k in range(K-1): A.removeComp(0) assert A.K == K - k - 1 assert A.s == s assert np.allclose(A.getComp(0).x, x[k+1]) assert np.allclose(A.getComp(0).xxT, xxT[k+1])
def test_insertComps_K1_D1(self): A = ParamBag(K=1,D=1) s = 123.456 A.setField('scalar', s, dims=None) A.setField('N', [1], dims='K') A.setField('x', [[1]], dims=('K','D')) A.setField('xxT', [[[1]]], dims=('K','D','D')) Abig = A.copy() Abig.insertComps(A) assert Abig.K == 2 assert np.allclose(Abig.N, np.hstack([A.N, A.N])) assert Abig.scalar == 2*s Abig.insertComps(A) assert Abig.K == 3 assert np.allclose(Abig.N, np.hstack([A.N, A.N, A.N])) assert Abig.scalar == 3*s A.insertComps(Abig) assert A.K == 4 assert A.scalar == 4*s assert np.allclose(A.N, np.hstack([1,1,1,1]))