示例#1
0
    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]))
示例#2
0
    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]))
示例#4
0
 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)))
示例#6
0
 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]))