diff --git a/test/fortran/test_math_utilities.f90 b/test/fortran/test_math_utilities.f90
index 9f95ca7a2636d6c2ef4b233d2f95c0e723acf671..db8b8244a6b2549c39f19ceea2258b55e96ad18e 100644
--- a/test/fortran/test_math_utilities.f90
+++ b/test/fortran/test_math_utilities.f90
@@ -253,13 +253,15 @@ CONTAINS
 
     DO i = 1, n
       DO j = 1, n
-        a(i, j) = 1.0_wp
-        b(i, j) = 2.0_wp
-        c(i, j) = 1.0_wp
-        d(i, j) = 1.0_wp
+        a(i, j) = 1.0_wp*(i+j)
+        b(i, j) = 2.0_wp*(i+j)
+        c(i, j) = 1.0_wp*(i+j)
+        d(i, j) = 1.0_wp*(i+j)
       END DO
     END DO
 
+    tol = 1d-15
+
     CALL CPU_TIME(start_time)
 #ifndef __USE_CPP_BINDINGS
     CALL tdma_solver_vec(a, b, c, d, 1, n, 1, n, x)
@@ -278,12 +280,27 @@ CONTAINS
     DO i = 1, n
       DO j = 1, n
         sum = sum + x(i, j)
-      ! write(*,"(a,f24.16)") ' x(i, 1): ', x(i, 1)
       END DO
     END DO
     sum_ref = 27.2727272727272769_wp
-    tol = 1d-15
-    CALL TAG_TEST("TEST_tdma_solver_vec")
+    CALL TAG_TEST("TEST_tdma_solver_vec_full")
+    CALL ASSERT_ALMOST_EQUAL(sum, sum_ref, tol)
+
+    x = 0.0_wp
+#ifndef __USE_CPP_BINDINGS
+    CALL tdma_solver_vec(a, b, c, d, 2, n-1, 2, n-1, x)
+#else
+    CALL tdma_solver_vec(a, b, c, d, 1, n-1, 1, n-1, n, n, x, -1)
+#endif
+    sum = 0.0_wp
+    DO i = 2, n-1
+      DO j = 2, n-1
+        sum = sum + x(i, j)
+      END DO
+    END DO
+    sum_ref = 17.7777777777777679_wp
+
+    CALL TAG_TEST("TEST_tdma_solver_vec_partial")
     CALL ASSERT_ALMOST_EQUAL(sum, sum_ref, tol)
 
   END SUBROUTINE TEST_tdma_solver_vec