AK+Tests: Also test Checked<> with unsigned
As expected, Checked<unsigned> works as intended. However, we didn't have a
test for that, so I added one.
See also 90c070cb1d
.
This commit is contained in:
parent
8f3bed4671
commit
b6472204e5
Notes:
sideshowbarker
2024-07-18 21:38:39 +09:00
Author: https://github.com/BenWiederhake Commit: https://github.com/SerenityOS/serenity/commit/b6472204e58 Pull-request: https://github.com/SerenityOS/serenity/pull/5677
1 changed files with 21 additions and 0 deletions
|
@ -118,6 +118,27 @@ TEST_CASE(detects_signed_overflow)
|
||||||
EXPECT((Checked<i64>(-0x4000000000000000) - Checked<i64>(0x4000000000000001)).has_overflow());
|
EXPECT((Checked<i64>(-0x4000000000000000) - Checked<i64>(0x4000000000000001)).has_overflow());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE(detects_unsigned_overflow)
|
||||||
|
{
|
||||||
|
EXPECT(!(Checked<u32>(0x40000000) + Checked<u32>(0x3fffffff)).has_overflow());
|
||||||
|
EXPECT(!(Checked<u32>(0x40000000) + Checked<u32>(0x40000000)).has_overflow());
|
||||||
|
EXPECT(!(Checked<u32>(0xf0000000) + Checked<u32>(0x0fffffff)).has_overflow());
|
||||||
|
EXPECT((Checked<u32>(0xf0000000) + Checked<u32>(0x10000000)).has_overflow());
|
||||||
|
|
||||||
|
EXPECT(!(Checked<u32>(0x40000000) - Checked<u32>(0x3fffffff)).has_overflow());
|
||||||
|
EXPECT(!(Checked<u32>(0x40000000) - Checked<u32>(0x40000000)).has_overflow());
|
||||||
|
EXPECT((Checked<u32>(0x40000000) - Checked<u32>(0x40000001)).has_overflow());
|
||||||
|
|
||||||
|
EXPECT(!(Checked<u64>(0x4000000000000000) + Checked<u64>(0x3fffffffffffffff)).has_overflow());
|
||||||
|
EXPECT(!(Checked<u64>(0x4000000000000000) + Checked<u64>(0x4000000000000000)).has_overflow());
|
||||||
|
EXPECT(!(Checked<u64>(0xf000000000000000) + Checked<u64>(0x0fffffffffffffff)).has_overflow());
|
||||||
|
EXPECT((Checked<u64>(0xf000000000000000) + Checked<u64>(0x1000000000000000)).has_overflow());
|
||||||
|
|
||||||
|
EXPECT(!(Checked<u64>(0x4000000000000000) - Checked<u64>(0x3fffffffffffffff)).has_overflow());
|
||||||
|
EXPECT(!(Checked<u64>(0x4000000000000000) - Checked<u64>(0x4000000000000000)).has_overflow());
|
||||||
|
EXPECT((Checked<u64>(0x4000000000000000) - Checked<u64>(0x4000000000000001)).has_overflow());
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE(should_constexpr_default_construct)
|
TEST_CASE(should_constexpr_default_construct)
|
||||||
{
|
{
|
||||||
constexpr Checked<int> checked_value {};
|
constexpr Checked<int> checked_value {};
|
||||||
|
|
Loading…
Add table
Reference in a new issue