Polyfill inadequate Intl support

Ensure that formatting is balanced with parsing to avoid truncating numbers.
This commit is contained in:
Minh Nguyễn
2021-10-26 18:26:14 -07:00
parent 252828bb4b
commit 2ba7177080
5 changed files with 43 additions and 25 deletions
+20 -16
View File
@@ -9,35 +9,39 @@ describe('iD.coreLocalizer', function() {
describe('#floatParser', function () {
it('roundtrips English numbers', function () {
var localizer = iD.coreLocalizer();
var formatFloat = localizer.floatFormatter('en');
var parseFloat = localizer.floatParser('en');
expect(parseFloat((-0.1).toLocaleString(localizer.languageCode()))).to.eql(-0.1);
expect(parseFloat((1.234).toLocaleString(localizer.languageCode()))).to.eql(1.234);
expect(parseFloat(1234).toLocaleString(localizer.languageCode())).to.eql(1234);
expect(parseFloat(1234.56).toLocaleString(localizer.languageCode())).to.eql(1234.56);
expect(parseFloat(formatFloat(-0.1))).to.eql(-0.1);
expect(parseFloat(formatFloat(1.234))).to.eql(1.234);
expect(parseFloat(formatFloat(1234))).to.eql(1234);
expect(parseFloat(formatFloat(1234.56))).to.eql(1234.56);
});
it('roundtrips Spanish numbers', function () {
var localizer = iD.coreLocalizer();
var formatFloat = localizer.floatFormatter('es');
var parseFloat = localizer.floatParser('es');
expect(parseFloat((-0.1).toLocaleString(localizer.languageCode()))).to.eql(-0.1);
expect(parseFloat((1.234).toLocaleString(localizer.languageCode()))).to.eql(1.234);
expect(parseFloat(1234).toLocaleString(localizer.languageCode())).to.eql(1234);
expect(parseFloat(1234.56).toLocaleString(localizer.languageCode())).to.eql(1234.56);
expect(parseFloat(formatFloat(-0.1))).to.eql(-0.1);
expect(parseFloat(formatFloat(1.234))).to.eql(1.234);
expect(parseFloat(formatFloat(1234))).to.eql(1234);
expect(parseFloat(formatFloat(1234.56))).to.eql(1234.56);
});
it('roundtrips Arabic numbers', function () {
var localizer = iD.coreLocalizer();
var formatFloat = localizer.floatFormatter('ar-EG');
var parseFloat = localizer.floatParser('ar-EG');
expect(parseFloat((-0.1).toLocaleString(localizer.languageCode()))).to.eql(-0.1);
expect(parseFloat((1.234).toLocaleString(localizer.languageCode()))).to.eql(1.234);
expect(parseFloat(1234).toLocaleString(localizer.languageCode())).to.eql(1234);
expect(parseFloat(1234.56).toLocaleString(localizer.languageCode())).to.eql(1234.56);
expect(parseFloat(formatFloat(-0.1))).to.eql(-0.1);
expect(parseFloat(formatFloat(1.234))).to.eql(1.234);
expect(parseFloat(formatFloat(1234))).to.eql(1234);
expect(parseFloat(formatFloat(1234.56))).to.eql(1234.56);
});
it('roundtrips Bengali numbers', function () {
var localizer = iD.coreLocalizer();
var formatFloat = localizer.floatFormatter('bn');
var parseFloat = localizer.floatParser('bn');
expect(parseFloat((-0.1).toLocaleString(localizer.languageCode()))).to.eql(-0.1);
expect(parseFloat((1.234).toLocaleString(localizer.languageCode()))).to.eql(1.234);
expect(parseFloat(1234).toLocaleString(localizer.languageCode())).to.eql(1234);
expect(parseFloat(1234.56).toLocaleString(localizer.languageCode())).to.eql(1234.56);
expect(parseFloat(formatFloat(-0.1))).to.eql(-0.1);
expect(parseFloat(formatFloat(1.234))).to.eql(1.234);
expect(parseFloat(formatFloat(1234))).to.eql(1234);
expect(parseFloat(formatFloat(1234.56))).to.eql(1234.56);
});
});
});