summaryrefslogtreecommitdiff
path: root/chromium/base/safe_numerics_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/base/safe_numerics_unittest.cc')
-rw-r--r--chromium/base/safe_numerics_unittest.cc32
1 files changed, 30 insertions, 2 deletions
diff --git a/chromium/base/safe_numerics_unittest.cc b/chromium/base/safe_numerics_unittest.cc
index 44675cf72cc..aafcb58c9fd 100644
--- a/chromium/base/safe_numerics_unittest.cc
+++ b/chromium/base/safe_numerics_unittest.cc
@@ -298,12 +298,26 @@ static void TestSpecializedArithmetic(
TEST_EXPECTED_VALUE(1, ClampedNumeric<Dst>(-1).UnsignedAbs());
// Modulus is legal only for integers.
- TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>() % 1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(0) % 2);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(0) % 1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(0) % -1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(0) % -2);
+ TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(1) % 2);
TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(1) % 1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(1) % -1);
+ TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(1) % -2);
TEST_EXPECTED_VALUE(-1, CheckedNumeric<Dst>(-1) % 2);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(-1) % 1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(-1) % -1);
TEST_EXPECTED_VALUE(-1, CheckedNumeric<Dst>(-1) % -2);
TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(DstLimits::lowest()) % 2);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(DstLimits::lowest()) % 1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(DstLimits::lowest()) % -1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(DstLimits::lowest()) % -2);
TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(DstLimits::max()) % 2);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(DstLimits::max()) % 1);
+ TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(DstLimits::max()) % -1);
+ TEST_EXPECTED_VALUE(1, CheckedNumeric<Dst>(DstLimits::max()) % -2);
// Test all the different modulus combinations.
TEST_EXPECTED_VALUE(0, CheckedNumeric<Dst>(1) % CheckedNumeric<Dst>(1));
TEST_EXPECTED_VALUE(0, 1 % CheckedNumeric<Dst>(1));
@@ -334,12 +348,26 @@ static void TestSpecializedArithmetic(
TEST_EXPECTED_FAILURE(CheckedNumeric<Dst>(1) >> negative_one);
// Modulus is legal only for integers.
- TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>() % 1);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(0) % 2);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(0) % 1);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(0) % -1);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(0) % -2);
+ TEST_EXPECTED_VALUE(1, ClampedNumeric<Dst>(1) % 2);
TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(1) % 1);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(1) % -1);
+ TEST_EXPECTED_VALUE(1, ClampedNumeric<Dst>(1) % -2);
TEST_EXPECTED_VALUE(-1, ClampedNumeric<Dst>(-1) % 2);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(-1) % 1);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(-1) % -1);
TEST_EXPECTED_VALUE(-1, ClampedNumeric<Dst>(-1) % -2);
TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(DstLimits::lowest()) % 2);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(DstLimits::lowest()) % 1);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(DstLimits::lowest()) % -1);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(DstLimits::lowest()) % -2);
TEST_EXPECTED_VALUE(1, ClampedNumeric<Dst>(DstLimits::max()) % 2);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(DstLimits::max()) % 1);
+ TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(DstLimits::max()) % -1);
+ TEST_EXPECTED_VALUE(1, ClampedNumeric<Dst>(DstLimits::max()) % -2);
// Test all the different modulus combinations.
TEST_EXPECTED_VALUE(0, ClampedNumeric<Dst>(1) % ClampedNumeric<Dst>(1));
TEST_EXPECTED_VALUE(0, 1 % ClampedNumeric<Dst>(1));