mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-29 14:54:47 +00:00
Merge branch 'update_zig' of https://github.com/rtfeldman/roc into dec-to-string
This commit is contained in:
commit
ac4d718039
41 changed files with 1011 additions and 359 deletions
|
@ -17,7 +17,7 @@ pub const RocDec = struct {
|
|||
pub const one_point_zero: comptime RocDec = .{ .num = one_point_zero_i128 };
|
||||
|
||||
pub fn fromU64(num: u64) RocDec {
|
||||
return .{ .num = @intCast(i128, num) * one_point_zero_i128 };
|
||||
return .{ .num = num * one_point_zero_i128 };
|
||||
}
|
||||
|
||||
pub fn fromString(roc_str: RocStr) ?RocDec {
|
||||
|
@ -379,112 +379,112 @@ const expect = testing.expect;
|
|||
test "fromU64" {
|
||||
var dec = RocDec.fromU64(25);
|
||||
|
||||
expectEqual(RocDec{ .num = 25000000000000000000 }, dec);
|
||||
try expectEqual(RocDec{ .num = 25000000000000000000 }, dec);
|
||||
}
|
||||
|
||||
test "fromString: empty" {
|
||||
var roc_str = RocStr.init("", 0);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(dec, null);
|
||||
try expectEqual(dec, null);
|
||||
}
|
||||
|
||||
test "fromString: 0" {
|
||||
var roc_str = RocStr.init("0", 1);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(RocDec{ .num = 0 }, dec.?);
|
||||
try expectEqual(RocDec{ .num = 0 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: 1" {
|
||||
var roc_str = RocStr.init("1", 1);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(RocDec.one_point_zero, dec.?);
|
||||
try expectEqual(RocDec.one_point_zero, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: 123.45" {
|
||||
var roc_str = RocStr.init("123.45", 6);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(RocDec{ .num = 123450000000000000000 }, dec.?);
|
||||
try expectEqual(RocDec{ .num = 123450000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: .45" {
|
||||
var roc_str = RocStr.init(".45", 3);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(RocDec{ .num = 450000000000000000 }, dec.?);
|
||||
try expectEqual(RocDec{ .num = 450000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: 0.45" {
|
||||
var roc_str = RocStr.init("0.45", 4);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(RocDec{ .num = 450000000000000000 }, dec.?);
|
||||
try expectEqual(RocDec{ .num = 450000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: 123" {
|
||||
var roc_str = RocStr.init("123", 3);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(RocDec{ .num = 123000000000000000000 }, dec.?);
|
||||
try expectEqual(RocDec{ .num = 123000000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: -.45" {
|
||||
var roc_str = RocStr.init("-.45", 4);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(RocDec{ .num = -450000000000000000 }, dec.?);
|
||||
try expectEqual(RocDec{ .num = -450000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: -0.45" {
|
||||
var roc_str = RocStr.init("-0.45", 5);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(RocDec{ .num = -450000000000000000 }, dec.?);
|
||||
try expectEqual(RocDec{ .num = -450000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: -123" {
|
||||
var roc_str = RocStr.init("-123", 4);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(RocDec{ .num = -123000000000000000000 }, dec.?);
|
||||
try expectEqual(RocDec{ .num = -123000000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: -123.45" {
|
||||
var roc_str = RocStr.init("-123.45", 7);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(RocDec{ .num = -123450000000000000000 }, dec.?);
|
||||
try expectEqual(RocDec{ .num = -123450000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: abc" {
|
||||
var roc_str = RocStr.init("abc", 3);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(dec, null);
|
||||
try expectEqual(dec, null);
|
||||
}
|
||||
|
||||
test "fromString: 123.abc" {
|
||||
var roc_str = RocStr.init("123.abc", 7);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(dec, null);
|
||||
try expectEqual(dec, null);
|
||||
}
|
||||
|
||||
test "fromString: abc.123" {
|
||||
var roc_str = RocStr.init("abc.123", 7);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(dec, null);
|
||||
try expectEqual(dec, null);
|
||||
}
|
||||
|
||||
test "fromString: .123.1" {
|
||||
var roc_str = RocStr.init(".123.1", 6);
|
||||
var dec = RocDec.fromString(roc_str);
|
||||
|
||||
expectEqual(dec, null);
|
||||
try expectEqual(dec, null);
|
||||
}
|
||||
|
||||
test "toString: 123.45" {
|
||||
|
@ -560,29 +560,29 @@ test "toString: 123.111111111111 (big str)" {
|
|||
test "add: 0" {
|
||||
var dec: RocDec = .{ .num = 0 };
|
||||
|
||||
expectEqual(RocDec{ .num = 0 }, dec.add(.{ .num = 0 }));
|
||||
try expectEqual(RocDec{ .num = 0 }, dec.add(.{ .num = 0 }));
|
||||
}
|
||||
|
||||
test "add: 1" {
|
||||
var dec: RocDec = .{ .num = 0 };
|
||||
|
||||
expectEqual(RocDec{ .num = 1 }, dec.add(.{ .num = 1 }));
|
||||
try expectEqual(RocDec{ .num = 1 }, dec.add(.{ .num = 1 }));
|
||||
}
|
||||
|
||||
test "mul: by 0" {
|
||||
var dec: RocDec = .{ .num = 0 };
|
||||
|
||||
expectEqual(RocDec{ .num = 0 }, dec.mul(.{ .num = 0 }));
|
||||
try expectEqual(RocDec{ .num = 0 }, dec.mul(.{ .num = 0 }));
|
||||
}
|
||||
|
||||
test "mul: by 1" {
|
||||
var dec: RocDec = RocDec.fromU64(15);
|
||||
|
||||
expectEqual(RocDec.fromU64(15), dec.mul(RocDec.fromU64(1)));
|
||||
try expectEqual(RocDec.fromU64(15), dec.mul(RocDec.fromU64(1)));
|
||||
}
|
||||
|
||||
test "mul: by 2" {
|
||||
var dec: RocDec = RocDec.fromU64(15);
|
||||
|
||||
expectEqual(RocDec.fromU64(30), dec.mul(RocDec.fromU64(2)));
|
||||
try expectEqual(RocDec.fromU64(30), dec.mul(RocDec.fromU64(2)));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue