@@ -48,21 +48,51 @@ assert.throws(function() {
4848 util . format ( '%d' , symbol ) ;
4949} , TypeError ) ;
5050
51+ // Number format specifier
52+ assert . strictEqual ( util . format ( '%d' ) , '%d' ) ;
5153assert . strictEqual ( util . format ( '%d' , 42.0 ) , '42' ) ;
5254assert . strictEqual ( util . format ( '%d' , 42 ) , '42' ) ;
53- assert . strictEqual ( util . format ( '%s' , 42 ) , '42' ) ;
54- assert . strictEqual ( util . format ( '%j' , 42 ) , '42' ) ;
55-
56- assert . strictEqual ( util . format ( '%d' , '42.0' ) , '42' ) ;
5755assert . strictEqual ( util . format ( '%d' , '42' ) , '42' ) ;
58- assert . strictEqual ( util . format ( '%s' , '42' ) , '42' ) ;
59- assert . strictEqual ( util . format ( '%j' , '42' ) , '"42"' ) ;
56+ assert . strictEqual ( util . format ( '%d' , '42.0' ) , '42' ) ;
57+ assert . strictEqual ( util . format ( '%d' , 1.5 ) , '1.5' ) ;
58+ assert . strictEqual ( util . format ( '%d' , - 0.5 ) , '-0.5' ) ;
59+ assert . strictEqual ( util . format ( '%d' , '' ) , '0' ) ;
6060
61- assert . strictEqual ( util . format ( '%%s%s' , 'foo' ) , '%sfoo' ) ;
61+ // Integer format specifier
62+ assert . strictEqual ( util . format ( '%i' ) , '%i' ) ;
63+ assert . strictEqual ( util . format ( '%i' , 42.0 ) , '42' ) ;
64+ assert . strictEqual ( util . format ( '%i' , 42 ) , '42' ) ;
65+ assert . strictEqual ( util . format ( '%i' , '42' ) , '42' ) ;
66+ assert . strictEqual ( util . format ( '%i' , '42.0' ) , '42' ) ;
67+ assert . strictEqual ( util . format ( '%i' , 1.5 ) , '1' ) ;
68+ assert . strictEqual ( util . format ( '%i' , - 0.5 ) , '0' ) ;
69+ assert . strictEqual ( util . format ( '%i' , '' ) , 'NaN' ) ;
70+
71+ // Float format specifier
72+ assert . strictEqual ( util . format ( '%f' ) , '%f' ) ;
73+ assert . strictEqual ( util . format ( '%f' , 42.0 ) , '42' ) ;
74+ assert . strictEqual ( util . format ( '%f' , 42 ) , '42' ) ;
75+ assert . strictEqual ( util . format ( '%f' , '42' ) , '42' ) ;
76+ assert . strictEqual ( util . format ( '%f' , '42.0' ) , '42' ) ;
77+ assert . strictEqual ( util . format ( '%f' , 1.5 ) , '1.5' ) ;
78+ assert . strictEqual ( util . format ( '%f' , - 0.5 ) , '-0.5' ) ;
79+ assert . strictEqual ( util . format ( '%f' , Math . PI ) , '3.141592653589793' ) ;
80+ assert . strictEqual ( util . format ( '%f' , '' ) , 'NaN' ) ;
6281
82+ // String format specifier
6383assert . strictEqual ( util . format ( '%s' ) , '%s' ) ;
6484assert . strictEqual ( util . format ( '%s' , undefined ) , 'undefined' ) ;
6585assert . strictEqual ( util . format ( '%s' , 'foo' ) , 'foo' ) ;
86+ assert . strictEqual ( util . format ( '%s' , 42 ) , '42' ) ;
87+ assert . strictEqual ( util . format ( '%s' , '42' ) , '42' ) ;
88+
89+ // JSON format specifier
90+ assert . strictEqual ( util . format ( '%j' ) , '%j' ) ;
91+ assert . strictEqual ( util . format ( '%j' , 42 ) , '42' ) ;
92+ assert . strictEqual ( util . format ( '%j' , '42' ) , '"42"' ) ;
93+
94+ // Various format specifiers
95+ assert . strictEqual ( util . format ( '%%s%s' , 'foo' ) , '%sfoo' ) ;
6696assert . strictEqual ( util . format ( '%s:%s' ) , '%s:%s' ) ;
6797assert . strictEqual ( util . format ( '%s:%s' , undefined ) , 'undefined:%s' ) ;
6898assert . strictEqual ( util . format ( '%s:%s' , 'foo' ) , 'foo:%s' ) ;
@@ -71,11 +101,9 @@ assert.strictEqual(util.format('%s:%s', 'foo', 'bar', 'baz'), 'foo:bar baz');
71101assert . strictEqual ( util . format ( '%%%s%%' , 'hi' ) , '%hi%' ) ;
72102assert . strictEqual ( util . format ( '%%%s%%%%' , 'hi' ) , '%hi%%' ) ;
73103assert . strictEqual ( util . format ( '%sbc%%def' , 'a' ) , 'abc%def' ) ;
74-
75104assert . strictEqual ( util . format ( '%d:%d' , 12 , 30 ) , '12:30' ) ;
76105assert . strictEqual ( util . format ( '%d:%d' , 12 ) , '12:%d' ) ;
77106assert . strictEqual ( util . format ( '%d:%d' ) , '%d:%d' ) ;
78-
79107assert . strictEqual ( util . format ( 'o: %j, a: %j' , { } , [ ] ) , 'o: {}, a: []' ) ;
80108assert . strictEqual ( util . format ( 'o: %j, a: %j' , { } ) , 'o: {}, a: %j' ) ;
81109assert . strictEqual ( util . format ( 'o: %j, a: %j' ) , 'o: %j, a: %j' ) ;
0 commit comments