@ -27,21 +27,51 @@ assert.throws(function() {
util . format ( '%d' , symbol ) ;
util . format ( '%d' , symbol ) ;
} , TypeError ) ;
} , TypeError ) ;
// Number format specifier
assert . strictEqual ( util . format ( '%d' ) , '%d' ) ;
assert . strictEqual ( util . format ( '%d' , 42.0 ) , '42' ) ;
assert . strictEqual ( util . format ( '%d' , 42.0 ) , '42' ) ;
assert . strictEqual ( util . format ( '%d' , 42 ) , '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 ( '%d' , '42' ) , '42' ) ;
assert . strictEqual ( util . format ( '%s' , '42' ) , '42' ) ;
assert . strictEqual ( util . format ( '%d' , '42.0' ) , '42' ) ;
assert . strictEqual ( util . format ( '%j' , '42' ) , '"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' ) , '%s' ) ;
assert . strictEqual ( util . format ( '%s' , undefined ) , 'undefined' ) ;
assert . strictEqual ( util . format ( '%s' , undefined ) , 'undefined' ) ;
assert . strictEqual ( util . format ( '%s' , 'foo' ) , 'foo' ) ;
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' ) , '%s:%s' ) ;
assert . strictEqual ( util . format ( '%s:%s' , undefined ) , 'undefined:%s' ) ;
assert . strictEqual ( util . format ( '%s:%s' , undefined ) , 'undefined:%s' ) ;
assert . strictEqual ( util . format ( '%s:%s' , 'foo' ) , 'foo:%s' ) ;
assert . strictEqual ( util . format ( '%s:%s' , 'foo' ) , 'foo:%s' ) ;
@ -50,11 +80,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 ( '%%%s%%%%' , 'hi' ) , '%hi%%' ) ;
assert . strictEqual ( util . format ( '%%%s%%%%' , 'hi' ) , '%hi%%' ) ;
assert . strictEqual ( util . format ( '%sbc%%def' , 'a' ) , 'abc%def' ) ;
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 , 30 ) , '12:30' ) ;
assert . strictEqual ( util . format ( '%d:%d' , 12 ) , '12:%d' ) ;
assert . strictEqual ( util . format ( '%d:%d' , 12 ) , '12:%d' ) ;
assert . strictEqual ( util . format ( '%d:%d' ) , '%d:%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: []' ) ;
assert . strictEqual ( util . format ( 'o: %j, a: %j' , { } ) , 'o: {}, a: %j' ) ;
assert . strictEqual ( util . format ( 'o: %j, a: %j' , { } ) , 'o: {}, a: %j' ) ;
assert . strictEqual ( util . format ( 'o: %j, a: %j' ) , 'o: %j, a: %j' ) ;
assert . strictEqual ( util . format ( 'o: %j, a: %j' ) , 'o: %j, a: %j' ) ;