mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-28 06:14:46 +00:00
fix: parsing negatives decimals
This commit is contained in:
parent
f855228339
commit
76e6daad50
1 changed files with 31 additions and 1 deletions
|
@ -26,7 +26,7 @@ pub const RocDec = struct {
|
|||
var initial_index: usize = if (is_negative) 1 else 0;
|
||||
|
||||
var point_index: ?usize = null;
|
||||
var index: usize = 0;
|
||||
var index: usize = initial_index;
|
||||
while (index < length) {
|
||||
var byte: u8 = bytes_ptr[index];
|
||||
if (byte == '.' and point_index == null) {
|
||||
|
@ -350,12 +350,42 @@ test "fromString: .45" {
|
|||
expectEqual(RocDec{ .num = 450000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: .45" {
|
||||
var dec = RocDec.fromString("0.45", 4);
|
||||
|
||||
expectEqual(RocDec{ .num = 450000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: 123" {
|
||||
var dec = RocDec.fromString("123", 3);
|
||||
|
||||
expectEqual(RocDec{ .num = 123000000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: -.45" {
|
||||
var dec = RocDec.fromString("-.45", 4);
|
||||
|
||||
expectEqual(RocDec{ .num = -450000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: -0.45" {
|
||||
var dec = RocDec.fromString("-0.45", 5);
|
||||
|
||||
expectEqual(RocDec{ .num = -450000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: -123" {
|
||||
var dec = RocDec.fromString("-123", 4);
|
||||
|
||||
expectEqual(RocDec{ .num = -123000000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: -123.45" {
|
||||
var dec = RocDec.fromString("-123.45", 7);
|
||||
|
||||
expectEqual(RocDec{ .num = -123450000000000000000 }, dec.?);
|
||||
}
|
||||
|
||||
test "fromString: abc" {
|
||||
var dec = RocDec.fromString("abc", 3);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue