js parse_/format_amount: Tests für Swiss-Zahlenformat & für Nicht-Oktal-Parsen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 6 Feb 2017 10:40:18 +0000 (11:40 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 6 Feb 2017 10:40:18 +0000 (11:40 +0100)
js/t/kivi/format_amount.js
js/t/kivi/parse_amount.js

index bfc093d..256c2ea 100644 (file)
@@ -38,6 +38,16 @@ QUnit.test("kivi.format_amount function English number style without thousand se
   assert.equal(kivi.format_amount(-1000000000.1234, 2), '-1000000000.12', 'format -1000000000.1234');
 });
 
+QUnit.test("kivi.format_amount function Swiss number style with thousand separator", function( assert ) {
+  kivi.setup_formats({ numbers: '1\'000.00' });
+
+  assert.equal(kivi.format_amount('1e1', 2), '10.00', 'format 1e1');
+  assert.equal(kivi.format_amount(1000, 2), '1\'000.00', 'format 1000');
+  assert.equal(kivi.format_amount(1000.1234, 2), '1\'000.12', 'format 1000.1234');
+  assert.equal(kivi.format_amount(1000000000.1234, 2), '1\'000\'000\'000.12', 'format 1000000000.1234');
+  assert.equal(kivi.format_amount(-1000000000.1234, 2), '-1\'000\'000\'000.12', 'format -1000000000.1234');
+});
+
 QUnit.test("kivi.format_amount function negative places", function( assert ) {
   kivi.setup_formats({ numbers: '1000.00' });
 
index d0c6e88..9b7d2aa 100644 (file)
@@ -81,3 +81,31 @@ QUnit.test("kivi.parse_amount function English number style without thousand sep
   assert.equal(kivi.parse_amount('1010.987654321'), 1010.987654321, '1010.987654321');
   assert.equal(kivi.parse_amount('1,010.987654321'), 1010.987654321, '1,010.987654321');
 });
+
+QUnit.test("kivi.parse_amount function Swiss number style with thousand separator", function( assert ) {
+  kivi.setup_formats({ numbers: '1\'000.00' });
+
+  assert.equal(kivi.parse_amount('10.00'), 10, '10.00');
+  assert.equal(kivi.parse_amount('10.'), 10, '10.');
+  assert.equal(kivi.parse_amount('1010.00'), 1010, '1010.00');
+  assert.equal(kivi.parse_amount('1010.'), 1010, '1010.');
+  assert.equal(kivi.parse_amount('1\'010.00'), 1010, '1\'010.00');
+  assert.equal(kivi.parse_amount('1\'010.'), 1010, '1\'010.');
+  assert.equal(kivi.parse_amount('9\'080\'070\'060\'050\'040\'030\'020\'010.00'), 9080070060050040030020010, '9\'080\'070\'060\'050\'040\'030\'020\'010.00');
+  assert.equal(kivi.parse_amount('9\'080\'070\'060\'050\'040\'030\'020\'010.'), 9080070060050040030020010, '9\'080\'070\'060\'050\'040\'030\'020\'010.');
+
+  assert.equal(kivi.parse_amount('10.98'), 10.98, '10.98');
+  assert.equal(kivi.parse_amount('1010.98'), 1010.98, '1010.98');
+  assert.equal(kivi.parse_amount('1\'010.98'), 1010.98, '1\'010.98');
+
+  assert.equal(kivi.parse_amount('10.987654321'), 10.987654321, '10.987654321');
+  assert.equal(kivi.parse_amount('1010.987654321'), 1010.987654321, '1010.987654321');
+  assert.equal(kivi.parse_amount('1\'010.987654321'), 1010.987654321, '1\'010.987654321');
+});
+
+QUnit.test("kivi.parse_amount function numbers with leading 0 should still be parsed as decimal and not octal", function( assert ) {
+  kivi.setup_formats({ numbers: '1000,00' });
+
+  assert.equal(kivi.parse_amount('0123456789'),   123456789, '0123456789');
+  assert.equal(kivi.parse_amount('000123456789'), 123456789, '000123456789');
+});