From 5ebc760e0484623420723d2de8733006064f163e Mon Sep 17 00:00:00 2001 From: thibdrev Date: Tue, 30 Jan 2024 17:36:55 +0100 Subject: [PATCH 1/2] qual Update functions.lib.php - clearer return for roundUpToNextMultiple() --- htdocs/core/lib/functions.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 6f5ecc7711b..bba253bcaf8 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -11369,7 +11369,7 @@ function isVisibleToUserType($type_user, &$menuentry, &$listofmodulesforexternal */ function roundUpToNextMultiple($n, $x = 5) { - $result = (ceil($n) % $x === 0) ? ceil($n) : round(($n + $x / 2) / $x) * $x; + $result = (ceil($n) % $x === 0) ? ceil($n) : (round(($n + $x / 2) / $x) * $x); return (int) $result; } From bb2ca75c4685324115aa34c09e1c5c68d4344501 Mon Sep 17 00:00:00 2001 From: thibdrev Date: Tue, 30 Jan 2024 17:49:58 +0100 Subject: [PATCH 2/2] qual: Update FunctionsLibTest.php - add unit test for roundUpToNextMultiple() see remarks from PR 27865 --- test/phpunit/FunctionsLibTest.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/phpunit/FunctionsLibTest.php b/test/phpunit/FunctionsLibTest.php index ce34604cc32..b28e945e28d 100644 --- a/test/phpunit/FunctionsLibTest.php +++ b/test/phpunit/FunctionsLibTest.php @@ -1797,4 +1797,29 @@ class FunctionsLibTest extends PHPUnit\Framework\TestCase return true; } + + + /** + * testRoundUpToNextMultiple + * + * @return void; + */ + public function testRoundUpToNextMultiple() + { + $this->assertEquals(roundUpToNextMultiple(39.5), 40); + $this->assertEquals(roundUpToNextMultiple(40), 40); + $this->assertEquals(roundUpToNextMultiple(40.4), 45); + $this->assertEquals(roundUpToNextMultiple(40.5), 45); + $this->assertEquals(roundUpToNextMultiple(44.5), 45); + + $this->assertEquals(roundUpToNextMultiple(39.5, 10), 40); + $this->assertEquals(roundUpToNextMultiple(40, 10), 40); + $this->assertEquals(roundUpToNextMultiple(40.5, 10), 50); + $this->assertEquals(roundUpToNextMultiple(44.5, 10), 50); + + $this->assertEquals(roundUpToNextMultiple(39.5, 6), 42); + $this->assertEquals(roundUpToNextMultiple(40, 6), 42); + $this->assertEquals(roundUpToNextMultiple(40.5, 6), 42); + $this->assertEquals(roundUpToNextMultiple(44.5, 6), 48); + } }