def test_as_matrix(self, row_dimensions, column_dimensions, real_operator): op = BlockedDiscreteBoundaryOperator(row_dimensions, column_dimensions) op[1, 0] = real_operator expected = op * np.eye(op.shape[1], dtype=op.dtype) actual = op.as_matrix() assert np.linalg.norm(expected - actual) < _eps
def test_as_matrix(self,row_dimensions,column_dimensions,real_operator): op = BlockedDiscreteBoundaryOperator(row_dimensions,column_dimensions) op[1,0] = real_operator expected = op*np.eye(op.shape[1],dtype=op.dtype) actual = op.as_matrix() assert np.linalg.norm(expected-actual)<_eps
def test_add_nonblocked_operator(self, row_dimensions, column_dimensions, real_operator): op = BlockedDiscreteBoundaryOperator(row_dimensions, column_dimensions) op[1, 0] = real_operator res = op + ZeroDiscreteBoundaryOperator(op.shape[0], op.shape[1]) actual = res.as_matrix() expected = op.as_matrix() assert np.linalg.norm(actual - expected) < _eps
def test_add_blocked_operator(self, row_dimensions, column_dimensions, real_operator): op = BlockedDiscreteBoundaryOperator(row_dimensions, column_dimensions) op[1, 0] = real_operator res = op + op actual = res.as_matrix() expected = 2 * op.as_matrix() assert isinstance(res, BlockedDiscreteBoundaryOperator) assert np.linalg.norm(actual - expected) < _eps
def test_add_nonblocked_operator(self,row_dimensions,column_dimensions, real_operator): op = BlockedDiscreteBoundaryOperator(row_dimensions,column_dimensions) op[1,0] = real_operator res = op+ZeroDiscreteBoundaryOperator(op.shape[0],op.shape[1]) actual = res.as_matrix() expected = op.as_matrix() assert np.linalg.norm(actual-expected)<_eps
def test_add_blocked_operator(self,row_dimensions,column_dimensions, real_operator): op = BlockedDiscreteBoundaryOperator(row_dimensions,column_dimensions) op[1,0] = real_operator res = op+op actual = res.as_matrix() expected = 2*op.as_matrix() assert isinstance(res,BlockedDiscreteBoundaryOperator) assert np.linalg.norm(actual-expected)<_eps
def test_scale(self, row_dimensions, column_dimensions, real_operator): op = BlockedDiscreteBoundaryOperator(row_dimensions, column_dimensions) op[1, 0] = real_operator alpha = 1 + 2.0j res = alpha * op expected = alpha * (op.as_matrix()) actual = res.as_matrix() assert np.linalg.norm(expected - actual) < _eps assert isinstance(res, BlockedDiscreteBoundaryOperator)
def test_scale(self,row_dimensions,column_dimensions,real_operator): op = BlockedDiscreteBoundaryOperator(row_dimensions,column_dimensions) op[1,0] = real_operator alpha = 1+2.0j res = alpha*op expected = alpha*(op.as_matrix()) actual = res.as_matrix() assert np.linalg.norm(expected-actual)<_eps assert isinstance(res,BlockedDiscreteBoundaryOperator)