Add mpi_shrink()
diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data
index 924f364..e763374 100644
--- a/tests/suites/test_suite_mpi.data
+++ b/tests/suites/test_suite_mpi.data
@@ -181,6 +181,30 @@
Base test mpi_swap #1
mpi_swap:0:1500
+Test mpi_shrink #1
+mpi_shrink:2:2:4:4
+
+Test mpi_shrink #2
+mpi_shrink:4:2:4:4
+
+Test mpi_shrink #3
+mpi_shrink:8:2:4:4
+
+Test mpi_shrink #4
+mpi_shrink:8:4:4:4
+
+Test mpi_shrink #5
+mpi_shrink:8:6:4:6
+
+Test mpi_shrink #6
+mpi_shrink:4:2:0:2
+
+Test mpi_shrink #7
+mpi_shrink:4:1:0:1
+
+Test mpi_shrink #8
+mpi_shrink:4:0:0:1
+
Base test mpi_add_abs #1
mpi_add_abs:10:"12345678":10:"642531":10:"12988209"
diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function
index e08b48d..d3a0d48 100644
--- a/tests/suites/test_suite_mpi.function
+++ b/tests/suites/test_suite_mpi.function
@@ -293,6 +293,22 @@
/* END_CASE */
/* BEGIN_CASE */
+void mpi_shrink( int before, int used, int min, int after )
+{
+ mpi X;
+ mpi_init( &X );
+
+ TEST_ASSERT( mpi_grow( &X, before ) == 0 );
+ TEST_ASSERT( used <= before );
+ memset( X.p, 0x2a, used * sizeof( t_uint ) );
+ TEST_ASSERT( mpi_shrink( &X, min ) == 0 );
+ TEST_ASSERT( X.n == (size_t) after );
+
+ mpi_free( &X );
+}
+/* END_CASE */
+
+/* BEGIN_CASE */
void mpi_swap( int input_X, int input_Y )
{
mpi X, Y, A;