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)
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)
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)
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)
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)
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)