From a8e012049525be195c0af1de248fbda476398ce3 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Fri, 21 Nov 2025 08:23:49 +0200 Subject: [PATCH] math: add tests for math.divide_floored, math.divide_euclid, and math.divide_truncated too --- vlib/math/modulo_test.v | 72 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/vlib/math/modulo_test.v b/vlib/math/modulo_test.v index 3ebfab779..e5b1d4768 100644 --- a/vlib/math/modulo_test.v +++ b/vlib/math/modulo_test.v @@ -68,3 +68,75 @@ fn test_modulo() { assert math.modulo_floored(-4, -5) == -4 assert math.modulo_truncated(-4, -5) == -4 } + +fn test_divide_both_positive() { + assert math.divide_euclid(10, 2) == math.DivResult[int]{5, 0} + assert math.divide_floored(10, 2) == math.DivResult[int]{5, 0} + assert math.divide_truncated(10, 2) == math.DivResult[int]{5, 0} + + assert math.divide_euclid(10, 3) == math.DivResult[int]{3, 1} + assert math.divide_floored(10, 3) == math.DivResult[int]{3, 1} + assert math.divide_truncated(10, 3) == math.DivResult[int]{3, 1} + + assert math.divide_euclid(10, 5) == math.DivResult[int]{2, 0} + assert math.divide_floored(10, 5) == math.DivResult[int]{2, 0} + assert math.divide_truncated(10, 5) == math.DivResult[int]{2, 0} + + assert math.divide_euclid(10, 7) == math.DivResult[int]{1, 3} + assert math.divide_floored(10, 7) == math.DivResult[int]{1, 3} + assert math.divide_truncated(10, 7) == math.DivResult[int]{1, 3} +} + +fn test_divide_positive_divident_and_negative_divisor() { + assert math.divide_euclid(10, -2) == math.DivResult[int]{-5, 0} + assert math.divide_floored(10, -2) == math.DivResult[int]{-5, 0} + assert math.divide_truncated(10, -2) == math.DivResult[int]{-5, 0} + + assert math.divide_euclid(10, -3) == math.DivResult[int]{-3, 1} + assert math.divide_floored(10, -3) == math.DivResult[int]{-4, -2} + assert math.divide_truncated(10, -3) == math.DivResult[int]{-3, 1} + + assert math.divide_euclid(10, -5) == math.DivResult[int]{-2, 0} + assert math.divide_floored(10, -5) == math.DivResult[int]{-2, 0} + assert math.divide_truncated(10, -5) == math.DivResult[int]{-2, 0} + + assert math.divide_euclid(10, -7) == math.DivResult[int]{-1, 3} + assert math.divide_floored(10, -7) == math.DivResult[int]{-2, -4} + assert math.divide_truncated(10, -7) == math.DivResult[int]{-1, 3} +} + +fn test_divide_negative_divident_and_positive_divisor() { + assert math.divide_euclid(-10, 2) == math.DivResult[int]{-5, 0} + assert math.divide_floored(-10, 2) == math.DivResult[int]{-5, 0} + assert math.divide_truncated(-10, 2) == math.DivResult[int]{-5, 0} + + assert math.divide_euclid(-10, 3) == math.DivResult[int]{-4, 2} + assert math.divide_floored(-10, 3) == math.DivResult[int]{-4, 2} + assert math.divide_truncated(-10, 3) == math.DivResult[int]{-3, -1} + + assert math.divide_euclid(-10, 5) == math.DivResult[int]{-2, 0} + assert math.divide_floored(-10, 5) == math.DivResult[int]{-2, 0} + assert math.divide_truncated(-10, 5) == math.DivResult[int]{-2, 0} + + assert math.divide_euclid(-10, 7) == math.DivResult[int]{-2, 4} + assert math.divide_floored(-10, 7) == math.DivResult[int]{-2, 4} + assert math.divide_truncated(-10, 7) == math.DivResult[int]{-1, -3} +} + +fn test_divide_both_negative() { + assert math.divide_euclid(-10, -2) == math.DivResult[int]{5, 0} + assert math.divide_floored(-10, -2) == math.DivResult[int]{5, 0} + assert math.divide_truncated(-10, -2) == math.DivResult[int]{5, 0} + + assert math.divide_euclid(-10, -3) == math.DivResult[int]{4, 2} + assert math.divide_floored(-10, -3) == math.DivResult[int]{3, -1} + assert math.divide_truncated(-10, -3) == math.DivResult[int]{3, -1} + + assert math.divide_euclid(-10, -5) == math.DivResult[int]{2, 0} + assert math.divide_floored(-10, -5) == math.DivResult[int]{2, 0} + assert math.divide_truncated(-10, -5) == math.DivResult[int]{2, 0} + + assert math.divide_euclid(-10, -7) == math.DivResult[int]{2, 4} + assert math.divide_floored(-10, -7) == math.DivResult[int]{1, -3} + assert math.divide_truncated(-10, -7) == math.DivResult[int]{1, -3} +} -- 2.39.5