diff options
author | Roman Reiss <me@silverwind.io> | 2016-12-16 21:20:15 +0100 |
---|---|---|
committer | Roman Reiss <me@silverwind.io> | 2017-03-29 07:12:05 +0200 |
commit | a46c43d21a6c9980c5c1cdafc21be7c96dec1ad5 (patch) | |
tree | adc03f699a16dac8a16f39c5bbe051d423f48ccb /test/parallel/test-util-format.js | |
parent | 1fde98bb4fa5cab0d060994768ebd055ce6fbf2c (diff) | |
download | android-node-v8-a46c43d21a6c9980c5c1cdafc21be7c96dec1ad5.tar.gz android-node-v8-a46c43d21a6c9980c5c1cdafc21be7c96dec1ad5.tar.bz2 android-node-v8-a46c43d21a6c9980c5c1cdafc21be7c96dec1ad5.zip |
util: add %i and %f formatting specifiers
This change brings formatting specifiers available in `util.format` and
consequently, `console.*` closer to what is supported in all major
browsers.
- `%i` is introduced to format integer values.
- `%f` is introduced to format floating point values.
Fixes: https://github.com/nodejs/node/issues/10292
PR-URL: https://github.com/nodejs/node/pull/10308
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-util-format.js')
-rw-r--r-- | test/parallel/test-util-format.js | 46 |
1 files changed, 37 insertions, 9 deletions
diff --git a/test/parallel/test-util-format.js b/test/parallel/test-util-format.js index a57a8094ac..912e448d18 100644 --- a/test/parallel/test-util-format.js +++ b/test/parallel/test-util-format.js @@ -48,21 +48,51 @@ assert.throws(function() { util.format('%d', symbol); }, TypeError); +// Number format specifier +assert.strictEqual(util.format('%d'), '%d'); assert.strictEqual(util.format('%d', 42.0), '42'); assert.strictEqual(util.format('%d', 42), '42'); -assert.strictEqual(util.format('%s', 42), '42'); -assert.strictEqual(util.format('%j', 42), '42'); - -assert.strictEqual(util.format('%d', '42.0'), '42'); assert.strictEqual(util.format('%d', '42'), '42'); -assert.strictEqual(util.format('%s', '42'), '42'); -assert.strictEqual(util.format('%j', '42'), '"42"'); +assert.strictEqual(util.format('%d', '42.0'), '42'); +assert.strictEqual(util.format('%d', 1.5), '1.5'); +assert.strictEqual(util.format('%d', -0.5), '-0.5'); +assert.strictEqual(util.format('%d', ''), '0'); -assert.strictEqual(util.format('%%s%s', 'foo'), '%sfoo'); +// Integer format specifier +assert.strictEqual(util.format('%i'), '%i'); +assert.strictEqual(util.format('%i', 42.0), '42'); +assert.strictEqual(util.format('%i', 42), '42'); +assert.strictEqual(util.format('%i', '42'), '42'); +assert.strictEqual(util.format('%i', '42.0'), '42'); +assert.strictEqual(util.format('%i', 1.5), '1'); +assert.strictEqual(util.format('%i', -0.5), '0'); +assert.strictEqual(util.format('%i', ''), 'NaN'); + +// Float format specifier +assert.strictEqual(util.format('%f'), '%f'); +assert.strictEqual(util.format('%f', 42.0), '42'); +assert.strictEqual(util.format('%f', 42), '42'); +assert.strictEqual(util.format('%f', '42'), '42'); +assert.strictEqual(util.format('%f', '42.0'), '42'); +assert.strictEqual(util.format('%f', 1.5), '1.5'); +assert.strictEqual(util.format('%f', -0.5), '-0.5'); +assert.strictEqual(util.format('%f', Math.PI), '3.141592653589793'); +assert.strictEqual(util.format('%f', ''), 'NaN'); +// String format specifier assert.strictEqual(util.format('%s'), '%s'); assert.strictEqual(util.format('%s', undefined), 'undefined'); assert.strictEqual(util.format('%s', 'foo'), 'foo'); +assert.strictEqual(util.format('%s', 42), '42'); +assert.strictEqual(util.format('%s', '42'), '42'); + +// JSON format specifier +assert.strictEqual(util.format('%j'), '%j'); +assert.strictEqual(util.format('%j', 42), '42'); +assert.strictEqual(util.format('%j', '42'), '"42"'); + +// Various format specifiers +assert.strictEqual(util.format('%%s%s', 'foo'), '%sfoo'); assert.strictEqual(util.format('%s:%s'), '%s:%s'); assert.strictEqual(util.format('%s:%s', undefined), 'undefined:%s'); assert.strictEqual(util.format('%s:%s', 'foo'), 'foo:%s'); @@ -71,11 +101,9 @@ assert.strictEqual(util.format('%s:%s', 'foo', 'bar', 'baz'), 'foo:bar baz'); assert.strictEqual(util.format('%%%s%%', 'hi'), '%hi%'); assert.strictEqual(util.format('%%%s%%%%', 'hi'), '%hi%%'); assert.strictEqual(util.format('%sbc%%def', 'a'), 'abc%def'); - assert.strictEqual(util.format('%d:%d', 12, 30), '12:30'); assert.strictEqual(util.format('%d:%d', 12), '12:%d'); assert.strictEqual(util.format('%d:%d'), '%d:%d'); - assert.strictEqual(util.format('o: %j, a: %j', {}, []), 'o: {}, a: []'); assert.strictEqual(util.format('o: %j, a: %j', {}), 'o: {}, a: %j'); assert.strictEqual(util.format('o: %j, a: %j'), 'o: %j, a: %j'); |