зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1504181 - Force scientific notation in CanonicalJSON r=glasserc
Mimic python for small float numbers Differential Revision: https://phabricator.services.mozilla.com/D10734 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
a8c4d8395e
Коммит
a0fb02038c
|
@ -139,3 +139,22 @@ add_task(async function test_canonicalJSON_with_deeply_nested_dicts() {
|
||||||
|
|
||||||
Assert.equal(CanonicalJSON.stringify(records), expected);
|
Assert.equal(CanonicalJSON.stringify(records), expected);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
add_task(async function test_canonicalJSON_should_use_scientific_notation() {
|
||||||
|
/*
|
||||||
|
We globally follow the Python float representation, except for exponents < 10
|
||||||
|
where we drop the leading zero
|
||||||
|
*/
|
||||||
|
Assert.equal(CanonicalJSON.stringify(.00099), "0.00099");
|
||||||
|
Assert.equal(CanonicalJSON.stringify(.000011), "0.000011");
|
||||||
|
Assert.equal(CanonicalJSON.stringify(.0000011), "0.0000011");
|
||||||
|
Assert.equal(CanonicalJSON.stringify(.000001), "0.000001");
|
||||||
|
Assert.equal(CanonicalJSON.stringify(.00000099), "9.9e-7");
|
||||||
|
Assert.equal(CanonicalJSON.stringify(.0000001), "1e-7");
|
||||||
|
Assert.equal(CanonicalJSON.stringify(.000000930258908), "9.30258908e-7");
|
||||||
|
Assert.equal(CanonicalJSON.stringify(.00000000000068272), "6.8272e-13");
|
||||||
|
Assert.equal(CanonicalJSON.stringify(Math.pow(10, 20)), "100000000000000000000");
|
||||||
|
Assert.equal(CanonicalJSON.stringify(Math.pow(10, 21)), "1e+21");
|
||||||
|
Assert.equal(CanonicalJSON.stringify(Math.pow(10, 15) + 0.1), "1000000000000000.1");
|
||||||
|
Assert.equal(CanonicalJSON.stringify(Math.pow(10, 16) * 1.1), "11000000000000000");
|
||||||
|
});
|
||||||
|
|
Загрузка…
Ссылка в новой задаче