Skip to content

Commit

Permalink
Add more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
HalidOdat committed Sep 20, 2023
1 parent 44df688 commit 6f9afcf
Showing 1 changed file with 101 additions and 9 deletions.
110 changes: 101 additions & 9 deletions boa_engine/src/builtins/number/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,107 @@ fn to_fixed() {
TestAction::assert_eq("Number('3.456e-4').toFixed()", "0"),
TestAction::assert_eq("Number(5).toFixed()", "5"),
TestAction::assert_eq("Number('I am also not a number').toFixed()", "NaN"),
TestAction::assert_eq("(1.35).toFixed(1)", "1.4"),
// Test cases from https://source.chromium.org/chromium/chromium/src/+/main:v8/test/mjsunit/number-tostring-func.js;l=157-240;drc=aa3518a0f37245ebe8f062dce97ee492e2a41652
TestAction::assert_eq("(NaN).toFixed(2)", "NaN"),
TestAction::assert_eq("(1/0).toFixed(2)", "Infinity"),
TestAction::assert_eq("(-1/0).toFixed(2)", "-Infinity"),
TestAction::assert_eq(
"(1111111111111111111111).toFixed(8)",
"1.1111111111111111e+21",
),
TestAction::assert_eq("(0.1).toFixed(1)", "0.1"),
TestAction::assert_eq("(0.1).toFixed(2)", "0.10"),
TestAction::assert_eq("(0.1).toFixed(3)", "0.100"),
TestAction::assert_eq("(0.01).toFixed(2)", "0.01"),
TestAction::assert_eq("(0.01).toFixed(3)", "0.010"),
TestAction::assert_eq("(0.01).toFixed(4)", "0.0100"),
TestAction::assert_eq("(0.001).toFixed(2)", "0.00"),
TestAction::assert_eq("(0.001).toFixed(3)", "0.001"),
TestAction::assert_eq("(0.001).toFixed(4)", "0.0010"),
TestAction::assert_eq("(1).toFixed(4)", "1.0000"),
TestAction::assert_eq("(1).toFixed(1)", "1.0"),
TestAction::assert_eq("(1).toFixed(0)", "1"),
TestAction::assert_eq("(12).toFixed(0)", "12"),
TestAction::assert_eq("(1.1).toFixed(0)", "1"),
TestAction::assert_eq("(12.1).toFixed(0)", "12"),
TestAction::assert_eq("(1.12).toFixed(0)", "1"),
TestAction::assert_eq("(12.12).toFixed(0)", "12"),
TestAction::assert_eq("(0.0000006).toFixed(7)", "0.0000006"),
TestAction::assert_eq("(0.00000006).toFixed(8)", "0.00000006"),
TestAction::assert_eq("(0.00000006).toFixed(9)", "0.000000060"),
TestAction::assert_eq("(0.00000006).toFixed(10)", "0.0000000600"),
TestAction::assert_eq("(0).toFixed(0)", "0"),
TestAction::assert_eq("(0).toFixed(1)", "0.0"),
TestAction::assert_eq("(0).toFixed(2)", "0.00"),
TestAction::assert_eq(
"(-1111111111111111111111).toFixed(8)",
"-1.1111111111111111e+21",
),
TestAction::assert_eq("(-0.1).toFixed(1)", "-0.1"),
TestAction::assert_eq("(-0.1).toFixed(2)", "-0.10"),
TestAction::assert_eq("(-0.1).toFixed(3)", "-0.100"),
TestAction::assert_eq("(-0.01).toFixed(2)", "-0.01"),
TestAction::assert_eq("(-0.01).toFixed(3)", "-0.010"),
TestAction::assert_eq("(-0.01).toFixed(4)", "-0.0100"),
TestAction::assert_eq("(-0.001).toFixed(2)", "-0.00"),
TestAction::assert_eq("(-0.001).toFixed(3)", "-0.001"),
TestAction::assert_eq("(-0.001).toFixed(4)", "-0.0010"),
TestAction::assert_eq("(-1).toFixed(4)", "-1.0000"),
TestAction::assert_eq("(-1).toFixed(1)", "-1.0"),
TestAction::assert_eq("(-1).toFixed(0)", "-1"),
TestAction::assert_eq("(-1.1).toFixed(0)", "-1"),
TestAction::assert_eq("(-12.1).toFixed(0)", "-12"),
TestAction::assert_eq("(-1.12).toFixed(0)", "-1"),
TestAction::assert_eq("(-12.12).toFixed(0)", "-12"),
TestAction::assert_eq("(-0.0000006).toFixed(7)", "-0.0000006"),
TestAction::assert_eq("(-0.00000006).toFixed(8)", "-0.00000006"),
TestAction::assert_eq("(-0.00000006).toFixed(9)", "-0.000000060"),
TestAction::assert_eq("(-0.00000006).toFixed(10)", "-0.0000000600"),
TestAction::assert_eq("(-0).toFixed(0)", "0"),
TestAction::assert_eq("(-0).toFixed(1)", "0.0"),
TestAction::assert_eq("(-0).toFixed(2)", "0.00"),
TestAction::assert_eq("(0.00001).toFixed(5)", "0.00001"),
TestAction::assert_eq(
"(0.0000000000000000001).toFixed(20)",
"0.00000000000000000010",
),
TestAction::assert_eq("(0.00001).toFixed(17)", "0.00001000000000000"),
TestAction::assert_eq("(1).toFixed(17)", "1.00000000000000000"),
TestAction::assert_eq("(100000000000000128).toFixed(1)", "100000000000000128.0"),
TestAction::assert_eq("(10000000000000128).toFixed(2)", "10000000000000128.00"),
TestAction::assert_eq(
"(10000000000000128).toFixed(20)",
"10000000000000128.00000000000000000000",
),
TestAction::assert_eq("(-42).toFixed(3)", "-42.000"),
TestAction::assert_eq(
"(-0.0000000000000000001).toFixed(20)",
"-0.00000000000000000010",
),
TestAction::assert_eq("(0.123123123123123).toFixed(20)", "0.12312312312312299889"),
TestAction::assert_eq("(-1000000000000000128).toFixed()", "-1000000000000000128"),
TestAction::assert_eq("(0).toFixed()", "0"),
TestAction::assert_eq("(1000000000000000128).toFixed()", "1000000000000000128"),
TestAction::assert_eq("(1000).toFixed()", "1000"),
TestAction::assert_eq("(0.00001).toFixed()", "0"),
// Test that we round up even when the last digit generated is even.
// dtoa does not do this in its original form.
TestAction::assert_eq("(0.5).toFixed(0)", "1"),
TestAction::assert_eq("(-0.5).toFixed(0)", "-1"),
TestAction::assert_eq("(1.25).toFixed(1)", "1.3"),
// This is bizare, but Spidermonkey and KJS behave the same.
TestAction::assert_eq("(234.2040).toFixed(4)", "234.2040"),
TestAction::assert_eq("(234.2040506).toFixed(4)", "234.2041"),
]);
}

// https://github.com/boa-dev/boa/issues/2609
#[test]
fn issue_2609() {
run_test_actions([
TestAction::assert_eq("(1.25).toFixed(1)", "1.3"),
TestAction::assert_eq("(1.35).toFixed(1)", "1.4"),
]);
}

Expand Down Expand Up @@ -479,12 +580,3 @@ fn issue_2717() {
TestAction::assert_eq("(0.23046743672210102).toString(36)", "0.8aoosla2phj"),
]);
}

// https://github.com/boa-dev/boa/issues/2609
#[test]
fn issue_2609() {
run_test_actions([
TestAction::assert_eq("(1.25).toFixed(1)", "1.3"),
TestAction::assert_eq("(1.35).toFixed(1)", "1.4"),
]);
}

0 comments on commit 6f9afcf

Please sign in to comment.