zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 173d56213b60fc570b6ba3922ee1d40bbf0d0e36 (tree)
parent 0a9b4d092f58595888f9e4be8ef683b2ed8a0da1
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Mon, 29 Nov 2021 23:21:07 -0700

improve behavior test coverage for overflow arithmetic

Diffstat:
Mtest/behavior/math_stage1.zig | 25++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/test/behavior/math_stage1.zig b/test/behavior/math_stage1.zig @@ -9,26 +9,45 @@ const mem = std.mem; test "@addWithOverflow" { var result: u8 = undefined; try expect(@addWithOverflow(u8, 250, 100, &result)); + try expect(result == 94); try expect(!@addWithOverflow(u8, 100, 150, &result)); try expect(result == 250); } -// TODO test mulWithOverflow -// TODO test subWithOverflow +test "@mulWithOverflow" { + var result: u8 = undefined; + try expect(@mulWithOverflow(u8, 86, 3, &result)); + try expect(result == 2); + try expect(!@mulWithOverflow(u8, 85, 3, &result)); + try expect(result == 255); +} + +test "@subWithOverflow" { + var result: u8 = undefined; + try expect(@subWithOverflow(u8, 1, 2, &result)); + try expect(result == 255); + try expect(!@subWithOverflow(u8, 1, 1, &result)); + try expect(result == 0); +} test "@shlWithOverflow" { var result: u16 = undefined; try expect(@shlWithOverflow(u16, 0b0010111111111111, 3, &result)); + try expect(result == 0b0111111111111000); try expect(!@shlWithOverflow(u16, 0b0010111111111111, 2, &result)); try expect(result == 0b1011111111111100); } -test "@*WithOverflow with u0 values" { +test "overflow arithmetic with u0 values" { var result: u0 = undefined; try expect(!@addWithOverflow(u0, 0, 0, &result)); + try expect(result == 0); try expect(!@subWithOverflow(u0, 0, 0, &result)); + try expect(result == 0); try expect(!@mulWithOverflow(u0, 0, 0, &result)); + try expect(result == 0); try expect(!@shlWithOverflow(u0, 0, 0, &result)); + try expect(result == 0); } test "@clz vectors" {