From 20c61fab4d36028cc67232df6415a0c78feb9628 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petar=20Mlinari=C4=87?= Date: Tue, 16 Feb 2016 13:51:42 +0100 Subject: [PATCH] [tests.block] test apply_inverse_adjoint in BlockDiagonalOperator --- src/pymortests/block.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/pymortests/block.py b/src/pymortests/block.py index a0a0acbaf6..58dbf2b66e 100644 --- a/src/pymortests/block.py +++ b/src/pymortests/block.py @@ -1,8 +1,6 @@ # This file is part of the pyMOR project (http://www.pymor.org). # Copyright Holders: Rene Milk, Stephan Rave, Felix Schindler # License: BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause) -# -# Contributors: Andreas Buhr from __future__ import absolute_import, division, print_function @@ -115,3 +113,24 @@ def test_blk_diag_apply_inverse(): wva = Cop.apply_inverse(vva) w = np.hstack((wva.block(0).data, wva.block(1).data)) assert np.allclose(spla.solve(C, v), w) + +def test_blk_diag_apply_inverse_adjoint(): + np.random.seed(0) + + A = np.random.randn(2, 2) + B = np.random.randn(3, 3) + C = spla.block_diag(A, B) + Aop = NumpyMatrixOperator(A) + Bop = NumpyMatrixOperator(B) + Cop = BlockDiagonalOperator((Aop, Bop)) + + v1 = np.random.randn(2) + v2 = np.random.randn(3) + v = np.hstack((v1, v2)) + v1va = NumpyVectorArray(v1) + v2va = NumpyVectorArray(v2) + vva = BlockVectorArray((v1va, v2va)) + + wva = Cop.apply_inverse_adjoint(vva) + w = np.hstack((wva.block(0).data, wva.block(1).data)) + assert np.allclose(spla.solve(C.T, v), w)