diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data
index 5edb283..e0aa540 100644
--- a/tests/suites/test_suite_bignum_mod.data
+++ b/tests/suites/test_suite_bignum_mod.data
@@ -50,8 +50,29 @@
 # END MERGE SLOT 6
 
 # BEGIN MERGE SLOT 7
-Test mbedtls_mpi_residue_setup
-mpi_residue_setup:
+Test mbedtls_mpi_residue_setup #1 m > r
+mpi_residue_setup:"fe":"01":0
+
+Test mbedtls_mpi_residue_setup #2 r == m - 1
+mpi_residue_setup:"ff":"fe":0
+
+Test mbedtls_mpi_residue_setup #3 m->limbs > r-> limbs && m > r
+mpi_residue_setup:"000000000000000000000000000000007dfe5c6beb35a2d6":"fe":0
+
+Test mbedtls_mpi_residue_setup #4 m->limbs > r-> limbs && m > r
+mpi_residue_setup:"7ffffffffffffffffffffffffffffffffffffffffffffff1":"fe":0
+
+Test mbedtls_mpi_residue_setup #5 m->limbs > r-> limbs && m > r
+mpi_residue_setup:"7ffffffffffffffffffff000000000000000000000000000":"fe":-4
+
+Test mbedtls_mpi_residue_setup #6 m->limbs < r-> limbs && m > r
+mpi_residue_setup:"ff":"000000000000000000000000000000000000000000000001":-4
+
+Test mbedtls_mpi_residue_setup #7 r == m
+mpi_residue_setup:"fe":"fe":-4
+
+Test mbedtls_mpi_residue_setup #8 r > m
+mpi_residue_setup:"fe":"ff":-4
 
 Test mbedtls_mpi_mod_io_neg
 mpi_mod_io_neg:
diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function
index 5a2d000..e4d7b41 100644
--- a/tests/suites/test_suite_bignum_mod.function
+++ b/tests/suites/test_suite_bignum_mod.function
@@ -81,52 +81,32 @@
 
 /* BEGIN MERGE SLOT 7 */
 /* BEGIN_CASE */
-void mpi_residue_setup( )
+void mpi_residue_setup( char * input_X, char * input_Y, int ret )
 {
-    #define RS_ONE       0
-    #define RS_MAX_MIN1  1
-    #define RS_MAX       2
-    const char * s_data[ 3 ] = { "01", "fe", "ff" };
-
     mbedtls_mpi_uint *N = NULL;
     mbedtls_mpi_uint *R = NULL;
-    mbedtls_mpi_uint *R_MAX = NULL;
-    size_t n_limbs, r_limbs, r_max_limbs;
+    size_t n_limbs, r_limbs;
     mbedtls_mpi_mod_modulus m;
     mbedtls_mpi_mod_residue r;
 
-    /* Allocate the memory for intermediate data structures */
-    TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, s_data[ RS_MAX_MIN1 ] ) );
-    TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, s_data[ RS_ONE ] ) );
-    TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R_MAX, &r_max_limbs, s_data[ RS_MAX ] ) );
-
     mbedtls_mpi_mod_modulus_init( &m );
 
+    /* Allocate the memory for intermediate data structures */
+    TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_X ) );
+    TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, input_Y ) );
+
     TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs,
                 MBEDTLS_MPI_MOD_EXT_REP_LE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) );
 
-    TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) );
-
-    /* Test for r-> limbs > m-> limbs */
-    TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs + 1 ) );
-
-    /* Test for r-> p > m-> p */
-    TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_residue_setup( &r, &m, R_MAX , r_max_limbs ) );
-
-    /* Test for r-> p == m-> p */
-    TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_residue_setup( &r, &m, N , r_max_limbs ) );
+    TEST_EQUAL( ret, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) );
 
 exit:
     mbedtls_mpi_mod_modulus_free( &m );
     mbedtls_free( N );
     mbedtls_free( R );
-    mbedtls_free( R_MAX );
-
-    #undef RS_ONE
-    #undef RS_MAX_MIN1
-    #undef RS_MAX
 }
 /* END_CASE */
+
 /* BEGIN_CASE */
 void mpi_mod_io_neg( )
 {
