예제 #1
0
def test_symmetric_tools_symmetric():
    rnd = np.random.RandomState(0)
    # generate random symmetric matrix
    for size in [4, 6, 11]:
        x = rnd.normal(size=(size, size))
        x = x + x.T

        compressed = compress_sym(x, make_symmetric=False)
        assert_equal(compressed.shape, (size * (size + 1) / 2, ))

        uncompressed = expand_sym(compressed)
        assert_array_equal(x, uncompressed)
예제 #2
0
def test_symmetric_tools_symmetric():
    rnd = np.random.RandomState(0)
    # generate random symmetric matrix
    for size in [4, 6, 11]:
        x = rnd.normal(size=(size, size))
        x = x + x.T

        compressed = compress_sym(x, make_symmetric=False)
        assert_equal(compressed.shape, (size * (size + 1) / 2, ))

        uncompressed = expand_sym(compressed)
        assert_array_equal(x, uncompressed)
예제 #3
0
def test_symmetric_tools_upper():
    rnd = np.random.RandomState(0)
    # generate random matrix with only upper triangle.
    # expected result is full symmetric matrix
    for size in [4, 6, 11]:
        x = rnd.normal(size=(size, size))
        x = x + x.T
        x_ = x.copy()
        x[np.tri(size, k=-1, dtype=np.bool)] = 0

        compressed = compress_sym(x, make_symmetric=True)
        assert_equal(compressed.shape, (size * (size + 1) / 2, ))

        uncompressed = expand_sym(compressed)
        assert_array_equal(x_, uncompressed)
예제 #4
0
def test_symmetric_tools_upper():
    rnd = np.random.RandomState(0)
    # generate random matrix with only upper triangle.
    # expected result is full symmetric matrix
    for size in [4, 6, 11]:
        x = rnd.normal(size=(size, size))
        x = x + x.T
        x_ = x.copy()
        x[np.tri(size, k=-1, dtype=np.bool)] = 0

        compressed = compress_sym(x, make_symmetric=True)
        assert_equal(compressed.shape, (size * (size + 1) / 2, ))

        uncompressed = expand_sym(compressed)
        assert_array_equal(x_, uncompressed)