fast-printf
Version:
Fast and spec-compliant printf implementation for Node.js and browser.
158 lines (157 loc) • 6.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ava_1 = __importDefault(require("ava"));
const printf_1 = require("../../src/printf");
(0, ava_1.default)('interpolates %b', (t) => {
t.is((0, printf_1.printf)('%b', true), 'true');
t.is((0, printf_1.printf)('%b', false), 'false');
t.is((0, printf_1.printf)('%b', 1), 'true');
t.is((0, printf_1.printf)('%b', 0), 'false');
});
(0, ava_1.default)('interpolates %B', (t) => {
t.is((0, printf_1.printf)('%B', true), 'TRUE');
t.is((0, printf_1.printf)('%B', false), 'FALSE');
t.is((0, printf_1.printf)('%B', 1), 'TRUE');
t.is((0, printf_1.printf)('%B', 0), 'FALSE');
});
(0, ava_1.default)('interpolates %c', (t) => {
t.is((0, printf_1.printf)('%c', 'a'), 'a');
t.is((0, printf_1.printf)('%c%c', 'a', 'b'), 'ab');
});
(0, ava_1.default)('interpolates %C', (t) => {
t.is((0, printf_1.printf)('%C', 'a'), 'A');
});
(0, ava_1.default)('interpolates %i', (t) => {
t.is((0, printf_1.printf)('%i', 123), '123');
});
(0, ava_1.default)('interpolates %i (removes fractional digits)', (t) => {
t.is((0, printf_1.printf)('%i', 123.567), '123');
});
(0, ava_1.default)('interpolates %d', (t) => {
t.is((0, printf_1.printf)('%d', 123), '123');
});
(0, ava_1.default)('interpolates %d (removes fractional digits)', (t) => {
t.is((0, printf_1.printf)('%d', 123.567), '123');
});
(0, ava_1.default)('interpolates %3d', (t) => {
t.is((0, printf_1.printf)('%3d', 1), ' 1');
t.is((0, printf_1.printf)('%3d', 1234), '1234');
});
(0, ava_1.default)('interpolates %+3d', (t) => {
t.is((0, printf_1.printf)('%+3d', 1), ' +1');
t.is((0, printf_1.printf)('%+3d', 1234), '+1234');
});
(0, ava_1.default)('interpolates %+3d (negative number)', (t) => {
t.is((0, printf_1.printf)('%+3d', -1), ' -1');
t.is((0, printf_1.printf)('%+3d', -1234), '-1234');
});
(0, ava_1.default)('interpolates %-+3d', (t) => {
t.is((0, printf_1.printf)('%-+3d', 1), '+1 ');
t.is((0, printf_1.printf)('%-+3d', 1234), '+1234');
});
(0, ava_1.default)('interpolates %-+3d (negative number)', (t) => {
t.is((0, printf_1.printf)('%-+3d', -1), '-1 ');
t.is((0, printf_1.printf)('%-+3d', -1234), '-1234');
});
(0, ava_1.default)('interpolates %-3d', (t) => {
t.is((0, printf_1.printf)('%-3d', 1), '1 ');
t.is((0, printf_1.printf)('%-3d', 1234), '1234');
});
(0, ava_1.default)('interpolates %03d', (t) => {
t.is((0, printf_1.printf)('%03d', 1), '001');
t.is((0, printf_1.printf)('%03d', 1234), '1234');
});
(0, ava_1.default)('interpolates %e', (t) => {
t.is((0, printf_1.printf)('%e', 52.8), '5.28e+1');
});
(0, ava_1.default)('interpolates %E', (t) => {
t.is((0, printf_1.printf)('%E', 52.8), '5.28E+1');
});
(0, ava_1.default)('interpolates %f', (t) => {
t.is((0, printf_1.printf)('%f', 52.8), '52.8');
});
(0, ava_1.default)('interpolates %.1f', (t) => {
t.is((0, printf_1.printf)('%.1f', 1.2345), '1.2');
t.is((0, printf_1.printf)('%.1f', 1.25), '1.3');
});
(0, ava_1.default)('interpolates %5.1f', (t) => {
t.is((0, printf_1.printf)('%5.1f', 1.2345), ' 1.2');
t.is((0, printf_1.printf)('%5.1f', 1.25), ' 1.3');
});
(0, ava_1.default)('interpolates %+5.1f', (t) => {
t.is((0, printf_1.printf)('%+5.1f', 1.2345), ' +1.2');
t.is((0, printf_1.printf)('%+5.1f', 1.25), ' +1.3');
});
(0, ava_1.default)('interpolates %+5.1f (negative number)', (t) => {
t.is((0, printf_1.printf)('%+5.1f', -1.2345), ' -1.2');
t.is((0, printf_1.printf)('%+5.1f', -1.25), ' -1.3');
});
(0, ava_1.default)('interpolates %-+5.1f', (t) => {
t.is((0, printf_1.printf)('%-+5.1f', 1.2345), '+1.2 ');
t.is((0, printf_1.printf)('%-+5.1f', 1.25), '+1.3 ');
});
(0, ava_1.default)('interpolates %-+5.1f (negative number)', (t) => {
t.is((0, printf_1.printf)('%-+5.1f', -1.2345), '-1.2 ');
t.is((0, printf_1.printf)('%-+5.1f', -1.25), '-1.3 ');
});
(0, ava_1.default)('interpolates %-5.1f', (t) => {
t.is((0, printf_1.printf)('%-5.1f', 1.2345), '1.2 ');
t.is((0, printf_1.printf)('%-5.1f', 1.25), '1.3 ');
});
(0, ava_1.default)('interpolates %05.1f', (t) => {
t.is((0, printf_1.printf)('%05.1f', 1.2345), '001.2');
t.is((0, printf_1.printf)('%05.1f', 1.25), '001.3');
});
(0, ava_1.default)('interpolates %o', (t) => {
t.is((0, printf_1.printf)('%o', 8), '10');
});
(0, ava_1.default)('interpolates %s', (t) => {
t.is((0, printf_1.printf)('%s', 'foo'), 'foo');
});
(0, ava_1.default)('interpolates %S', (t) => {
t.is((0, printf_1.printf)('%S', 'foo'), 'FOO');
});
(0, ava_1.default)('interpolates %5s', (t) => {
t.is((0, printf_1.printf)('%5s', 'foo'), ' foo');
});
(0, ava_1.default)('interpolates %-5s', (t) => {
t.is((0, printf_1.printf)('%-5s', 'foo'), 'foo ');
});
(0, ava_1.default)('interpolates %u', (t) => {
t.is((0, printf_1.printf)('%u', 0), '0');
t.is((0, printf_1.printf)('%u', 1), '1');
t.is((0, printf_1.printf)('%u', -1), '4294967295');
});
(0, ava_1.default)('interpolates %x', (t) => {
t.is((0, printf_1.printf)('%x', 255), 'ff');
});
(0, ava_1.default)('interpolates %5x', (t) => {
t.is((0, printf_1.printf)('%5x', 255), ' ff');
});
(0, ava_1.default)('%% prints %', (t) => {
t.is((0, printf_1.printf)('%%'), '%');
});
(0, ava_1.default)('%%s prints %s', (t) => {
t.is((0, printf_1.printf)('%%s'), '%s');
});
(0, ava_1.default)('%% does not advance value cursor', (t) => {
t.is((0, printf_1.printf)('%% %s', 'foo'), '% foo');
});
(0, ava_1.default)('\\% prints %', (t) => {
t.is((0, printf_1.printf)('\\%'), '%');
});
(0, ava_1.default)('\\% does not advance value cursor', (t) => {
t.is((0, printf_1.printf)('\\% %s', 'foo'), '% foo');
});
(0, ava_1.default)('does not interpolate unbound placeholders', (t) => {
t.is((0, printf_1.printf)('%s %s %s %s', 'foo'), 'foo %s %s %s');
});
(0, ava_1.default)('%2$s %1$s', (t) => {
t.is((0, printf_1.printf)('%2$s %1$s', 'bar', 'foo'), 'foo bar');
});
(0, ava_1.default)('%1$.2f', (t) => {
t.is((0, printf_1.printf)('%1$.2f', 123.456), '123.46');
});