Example #1
0
    def test_kronsum(self):
        cases = []

        cases.append(array([[0]]))
        cases.append(array([[-1]]))
        cases.append(array([[4]]))
        cases.append(array([[10]]))
        cases.append(array([[1, 2], [3, 4]]))
        cases.append(array([[0, 2], [5, 0]]))
        cases.append(array([[0, 2, -6], [8, 0, 14], [0, 3, 0]]))
        cases.append(array([[1, 0, 0], [0, 5, -1], [4, -2, 8]]))

        for a in cases:
            for b in cases:
                result = construct.kronsum(csr_matrix(a),
                                           csr_matrix(b)).todense()
                expected = np.kron(np.eye(len(b)), a) + \
                        np.kron(b, np.eye(len(a)))
                assert_array_equal(result, expected)
Example #2
0
    def test_concatenate_int32_overflow(self):
        """ test for indptr overflow when concatenating matrices """
        check_free_memory(30000)

        n = 33000
        A = csr_matrix(np.ones((n, n), dtype=bool))
        B = A.copy()
        C = construct._compressed_sparse_stack((A, B), 0)

        assert_(np.all(np.equal(np.diff(C.indptr), n)))
        assert_equal(C.indices.dtype, np.int64)
        assert_equal(C.indptr.dtype, np.int64)
Example #3
0
def test_csr_getcol():
    N = 10
    np.random.seed(0)
    X = np.random.random((N, N))
    X[X > 0.7] = 0
    Xcsr = csr_matrix(X)

    for i in range(N):
        arr_col = X[:, i:i + 1]
        csr_col = Xcsr.getcol(i)

        assert_array_almost_equal(arr_col, csr_col.toarray())
        assert_(type(csr_col) is csr_matrix)
Example #4
0
def test_csr_getrow():
    N = 10
    np.random.seed(0)
    X = np.random.random((N, N))
    X[X > 0.7] = 0
    Xcsr = csr_matrix(X)

    for i in range(N):
        arr_row = X[i:i + 1, :]
        csr_row = Xcsr.getrow(i)

        assert_array_almost_equal(arr_row, csr_row.toarray())
        assert_(type(csr_row) is csr_matrix)
Example #5
0
    def test_kron(self):
        cases = []

        cases.append(array([[0]]))
        cases.append(array([[-1]]))
        cases.append(array([[4]]))
        cases.append(array([[10]]))
        cases.append(array([[0], [0]]))
        cases.append(array([[0, 0]]))
        cases.append(array([[1, 2], [3, 4]]))
        cases.append(array([[0, 2], [5, 0]]))
        cases.append(array([[0, 2, -6], [8, 0, 14]]))
        cases.append(array([[5, 4], [0, 0], [6, 0]]))
        cases.append(array([[5, 4, 4], [1, 0, 0], [6, 0, 8]]))
        cases.append(array([[0, 1, 0, 2, 0, 5, 8]]))
        cases.append(array([[0.5, 0.125, 0, 3.25], [0, 2.5, 0, 0]]))

        for a in cases:
            for b in cases:
                result = construct.kron(csr_matrix(a), csr_matrix(b)).todense()
                expected = np.kron(a, b)
                assert_array_equal(result, expected)
Example #6
0
def test_csr_rowslice():
    N = 10
    np.random.seed(0)
    X = np.random.random((N, N))
    X[X > 0.7] = 0
    Xcsr = csr_matrix(X)

    slices = [
        slice(None, None, None),
        slice(None, None, -1),
        slice(1, -2, 2),
        slice(-2, 1, -2)
    ]

    for i in range(N):
        for sl in slices:
            _check_csr_rowslice(i, sl, X, Xcsr)