From 9d4f68606c919791d44e86e7a50812c29be32fa3 Mon Sep 17 00:00:00 2001 From: batsumaru <> Date: Sun, 9 Aug 2026 12:00:27 +0900 Subject: Add fp_t subtraction --- tests/test_fixed_point.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'tests') diff --git a/tests/test_fixed_point.cpp b/tests/test_fixed_point.cpp index b3d3e78..b116340 100644 --- a/tests/test_fixed_point.cpp +++ b/tests/test_fixed_point.cpp @@ -8,9 +8,25 @@ TEST_CASE("fp_t addition is commutative") { REQUIRE(a.raw != 0); } +TEST_CASE("fp_t subtraction anti-commutative") { + fp_t a = fp_t::from_int(3); + fp_t b = fp_t::from_int(2); + fp_t c = fp_t::from_int(1); + fp_t d = fp_t::from_int(-1); + CHECK((a - b == c && b - a == d)); + REQUIRE(a.raw != 0); +} + TEST_CASE("fp_t addition overflows") { fp_t a = fp_t::from_raw(INT32_MAX); fp_t b = fp_t::from_raw(1); fp_t c = fp_t::from_raw(INT32_MIN); CHECK(a + b == c); } + +TEST_CASE("fp_t subtraction underflows") { + fp_t a = fp_t::from_raw(INT32_MIN); + fp_t b = fp_t::from_raw(1); + fp_t c = fp_t::from_raw(INT32_MAX); + CHECK(a - b == c); +} -- cgit v1.3