test_multi_column_real64 Subroutine

public subroutine test_multi_column_real64()

Arguments

None

Calls

proc~~test_multi_column_real64~~CallsGraph proc~test_multi_column_real64 test_multi_column_real64 add_row add_row proc~test_multi_column_real64->add_row assert_that assert_that proc~test_multi_column_real64->assert_that equal_to equal_to proc~test_multi_column_real64->equal_to

Source Code

   subroutine test_multi_column_real64()
      integer, parameter :: M = 2, N = 3
      type(CSR_SparseMatrix_dp) :: mat(3)
      real(REAL64) :: x(3,N), y_found(3, M), y_expected(3,M)
      
      mat(1) = CSR_SparseMatrix_dp(M, N, 3)
      call add_row(mat(1), 1, 1, [1.d0,1.d0])
      call add_row(mat(1), 2, 2, [1.d0])

      mat(2) = CSR_SparseMatrix_dp(M, N, 3)
      call add_row(mat(2), 1, 2, [1.d0,1.d0])
      call add_row(mat(2), 2, 3, [2.d0])

      mat(3) = CSR_SparseMatrix_dp(M, N, 5)
      call add_row(mat(3), 1, 1, [1.d0,1.d0,1.d0])
      call add_row(mat(3), 2, 2, [1.d0,2.d0])

      x = 1
      y_found = matmul(mat, x)

      y_expected(1,:) = [2.,1.]
      y_expected(2,:) = [2.,2.]
      y_expected(3,:) = [3.,3.]

      @assert_that(y_found, is(equal_to(y_expected)))
      
   end subroutine test_multi_column_real64