Merge branch 'update_zig' of https://github.com/rtfeldman/roc into dec-to-string

This commit is contained in:
Jared Ramirez 2021-06-06 14:28:14 -07:00
commit ac4d718039
41 changed files with 1011 additions and 359 deletions

View file

@ -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)));
}