test: test bitwidths between 1...8 and 8...16 for mul_with_overflow
This commit is contained in:
@@ -690,6 +690,30 @@ test "extensive @mulWithOverflow" {
|
||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||
|
||||
{
|
||||
var a: u5 = 3;
|
||||
var b: u5 = 10;
|
||||
var res: u5 = undefined;
|
||||
try expect(!@mulWithOverflow(u5, a, b, &res));
|
||||
try expect(res == 30);
|
||||
|
||||
b = 11;
|
||||
try expect(@mulWithOverflow(u5, a, b, &res));
|
||||
try expect(res == 1);
|
||||
}
|
||||
|
||||
{
|
||||
var a: i5 = 3;
|
||||
var b: i5 = -5;
|
||||
var res: i5 = undefined;
|
||||
try expect(!@mulWithOverflow(i5, a, b, &res));
|
||||
try expect(res == -15);
|
||||
|
||||
b = -6;
|
||||
try expect(@mulWithOverflow(i5, a, b, &res));
|
||||
try expect(res == 14);
|
||||
}
|
||||
|
||||
{
|
||||
var a: u8 = 3;
|
||||
var b: u8 = 85;
|
||||
@@ -715,6 +739,30 @@ test "extensive @mulWithOverflow" {
|
||||
try expect(res == 127);
|
||||
}
|
||||
|
||||
{
|
||||
var a: u14 = 3;
|
||||
var b: u14 = 0x1555;
|
||||
var res: u14 = undefined;
|
||||
try expect(!@mulWithOverflow(u14, a, b, &res));
|
||||
try expect(res == 0x3fff);
|
||||
|
||||
b = 0x1556;
|
||||
try expect(@mulWithOverflow(u14, a, b, &res));
|
||||
try expect(res == 2);
|
||||
}
|
||||
|
||||
{
|
||||
var a: i14 = 3;
|
||||
var b: i14 = -0xaaa;
|
||||
var res: i14 = undefined;
|
||||
try expect(!@mulWithOverflow(i14, a, b, &res));
|
||||
try expect(res == -0x1ffe);
|
||||
|
||||
b = -0xaab;
|
||||
try expect(@mulWithOverflow(i14, a, b, &res));
|
||||
try expect(res == 0x1fff);
|
||||
}
|
||||
|
||||
{
|
||||
var a: u16 = 3;
|
||||
var b: u16 = 0x5555;
|
||||
|
||||
Reference in New Issue
Block a user