From 4c00cf1a13541d47fdb01903baf954884704f4f6 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Tue, 10 Feb 2026 21:23:45 +0100 Subject: Test sat_add MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libj2_j2i_add_j2i.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'libj2_j2i_add_j2i.c') diff --git a/libj2_j2i_add_j2i.c b/libj2_j2i_add_j2i.c index 7b58333..2d0acf5 100644 --- a/libj2_j2i_add_j2i.c +++ b/libj2_j2i_add_j2i.c @@ -61,13 +61,12 @@ check_(uintmax_t a_high, uintmax_t a_low, uintmax_t b_high, uintmax_t b_low, EXPECT(libj2_j2i_eq_j2i(&a, &expected)); EXPECT(libj2_j2i_eq_j2i(&b, &b_saved)); -#if 0 /* TODO saturated addition */ a = a_saved; b = b_saved; libj2_j2i_sat_add_j2i(&a, &b); - EXPECT(r_overflow ? libj2_j2i_is_max(&a) : libj2_j2i_eq_j2i(&a, &expected)); + EXPECT(r_overflow > 0 ? libj2_j2i_is_max(&a) : + r_overflow ? libj2_j2i_is_min(&a) : libj2_j2i_eq_j2i(&a, &expected)); EXPECT(libj2_j2i_eq_j2i(&b, &b_saved)); -#endif a = a_saved; b = b_saved; @@ -95,27 +94,28 @@ check_(uintmax_t a_high, uintmax_t a_low, uintmax_t b_high, uintmax_t b_low, EXPECT(libj2_j2i_eq_j2i(&b, &expected)); EXPECT(libj2_j2i_eq_j2i(&a, &a_saved)); -#if 0 /* TODO saturated addition */ r = (struct libj2_j2i){111, 222}; a = a_saved; b = b_saved; libj2_j2i_sat_add_j2i_to_j2i(&a, &b, &r); - EXPECT(r_overflow ? libj2_j2i_is_max(&r) : libj2_j2i_eq_j2i(&r, &expected)); + EXPECT(r_overflow > 0 ? libj2_j2i_is_max(&r) : + r_overflow ? libj2_j2i_is_min(&r) : libj2_j2i_eq_j2i(&r, &expected)); EXPECT(libj2_j2i_eq_j2i(&a, &a_saved)); EXPECT(libj2_j2i_eq_j2i(&b, &b_saved)); a = a_saved; b = b_saved; libj2_j2i_sat_add_j2i_to_j2i(&a, &b, &a); - EXPECT(r_overflow ? libj2_j2i_is_max(&a) : libj2_j2i_eq_j2i(&a, &expected)); + EXPECT(r_overflow > 0 ? libj2_j2i_is_max(&a) : + r_overflow ? libj2_j2i_is_min(&a) : libj2_j2i_eq_j2i(&a, &expected)); EXPECT(libj2_j2i_eq_j2i(&b, &b_saved)); a = a_saved; b = b_saved; libj2_j2i_sat_add_j2i_to_j2i(&a, &b, &b); - EXPECT(r_overflow ? libj2_j2i_is_max(&b) : libj2_j2i_eq_j2i(&b, &expected)); + EXPECT(r_overflow > 0 ? libj2_j2i_is_max(&b) : + r_overflow ? libj2_j2i_is_min(&b) : libj2_j2i_eq_j2i(&b, &expected)); EXPECT(libj2_j2i_eq_j2i(&a, &a_saved)); -#endif } @@ -210,11 +210,10 @@ check_double(uintmax_t high, uintmax_t low) EXPECT(libj2_j2i_add_j2i_overflow(&a, &a) == expected_overflow); EXPECT(libj2_j2i_eq_j2i(&a, &expected)); -#if 0 /* TODO saturated addition */ a = a_saved; libj2_j2i_sat_add_j2i(&a, &a); - EXPECT(expected_overflow ? libj2_j2i_is_max(&a) : libj2_j2i_eq_j2i(&a, &expected)); -#endif + EXPECT(expected_overflow > 0 ? libj2_j2i_is_max(&a) : + expected_overflow ? libj2_j2i_is_min(&a) : libj2_j2i_eq_j2i(&a, &expected)); a = a_saved; EXPECT(libj2_j2i_add_j2i_overflow_p((const struct libj2_j2i *)&a, (const struct libj2_j2i *)&a) == expected_overflow); @@ -230,17 +229,17 @@ check_double(uintmax_t high, uintmax_t low) EXPECT(libj2_j2i_add_j2i_to_j2i_overflow(&a, &a, &a) == expected_overflow); EXPECT(libj2_j2i_eq_j2i(&a, &expected)); -#if 0 /* TODO saturated addition */ r = (struct libj2_j2i){111, 222}; a = a_saved; libj2_j2i_sat_add_j2i_to_j2i(&a, &a, &r); - EXPECT(expected_overflow ? libj2_j2i_is_max(&r) : libj2_j2i_eq_j2i(&r, &expected)); + EXPECT(expected_overflow > 0 ? libj2_j2i_is_max(&r) : + expected_overflow ? libj2_j2i_is_min(&r) : libj2_j2i_eq_j2i(&r, &expected)); EXPECT(libj2_j2i_eq_j2i(&a, &a_saved)); a = a_saved; libj2_j2i_sat_add_j2i_to_j2i(&a, &a, &a); - EXPECT(expected_overflow ? libj2_j2i_is_max(&a) : libj2_j2i_eq_j2i(&a, &expected)); -#endif + EXPECT(expected_overflow > 0 ? libj2_j2i_is_max(&a) : + expected_overflow ? libj2_j2i_is_min(&a) : libj2_j2i_eq_j2i(&a, &expected)); } -- cgit v1.2.3-70-g09d2