@@ -27,21 +27,51 @@ assert.throws(function() {
2727 util . format ( '%d' , symbol ) ;
2828} , / ^ T y p e E r r o r : C a n n o t c o n v e r t a S y m b o l v a l u e t o a n u m b e r $ / ) ;
2929
30+ // Number format specifier
31+ assert . strictEqual ( util . format ( '%d' ) , '%d' ) ;
3032assert . strictEqual ( util . format ( '%d' , 42.0 ) , '42' ) ;
3133assert . strictEqual ( util . format ( '%d' , 42 ) , '42' ) ;
32- assert . strictEqual ( util . format ( '%s' , 42 ) , '42' ) ;
33- assert . strictEqual ( util . format ( '%j' , 42 ) , '42' ) ;
34-
35- assert . strictEqual ( util . format ( '%d' , '42.0' ) , '42' ) ;
3634assert . strictEqual ( util . format ( '%d' , '42' ) , '42' ) ;
37- assert . strictEqual ( util . format ( '%s' , '42' ) , '42' ) ;
38- assert . strictEqual ( util . format ( '%j' , '42' ) , '"42"' ) ;
35+ assert . strictEqual ( util . format ( '%d' , '42.0' ) , '42' ) ;
36+ assert . strictEqual ( util . format ( '%d' , 1.5 ) , '1.5' ) ;
37+ assert . strictEqual ( util . format ( '%d' , - 0.5 ) , '-0.5' ) ;
38+ assert . strictEqual ( util . format ( '%d' , '' ) , '0' ) ;
3939
40- assert . strictEqual ( util . format ( '%%s%s' , 'foo' ) , '%sfoo' ) ;
40+ // Integer format specifier
41+ assert . strictEqual ( util . format ( '%i' ) , '%i' ) ;
42+ assert . strictEqual ( util . format ( '%i' , 42.0 ) , '42' ) ;
43+ assert . strictEqual ( util . format ( '%i' , 42 ) , '42' ) ;
44+ assert . strictEqual ( util . format ( '%i' , '42' ) , '42' ) ;
45+ assert . strictEqual ( util . format ( '%i' , '42.0' ) , '42' ) ;
46+ assert . strictEqual ( util . format ( '%i' , 1.5 ) , '1' ) ;
47+ assert . strictEqual ( util . format ( '%i' , - 0.5 ) , '0' ) ;
48+ assert . strictEqual ( util . format ( '%i' , '' ) , 'NaN' ) ;
49+
50+ // Float format specifier
51+ assert . strictEqual ( util . format ( '%f' ) , '%f' ) ;
52+ assert . strictEqual ( util . format ( '%f' , 42.0 ) , '42' ) ;
53+ assert . strictEqual ( util . format ( '%f' , 42 ) , '42' ) ;
54+ assert . strictEqual ( util . format ( '%f' , '42' ) , '42' ) ;
55+ assert . strictEqual ( util . format ( '%f' , '42.0' ) , '42' ) ;
56+ assert . strictEqual ( util . format ( '%f' , 1.5 ) , '1.5' ) ;
57+ assert . strictEqual ( util . format ( '%f' , - 0.5 ) , '-0.5' ) ;
58+ assert . strictEqual ( util . format ( '%f' , Math . PI ) , '3.141592653589793' ) ;
59+ assert . strictEqual ( util . format ( '%f' , '' ) , 'NaN' ) ;
4160
61+ // String format specifier
4262assert . strictEqual ( util . format ( '%s' ) , '%s' ) ;
4363assert . strictEqual ( util . format ( '%s' , undefined ) , 'undefined' ) ;
4464assert . strictEqual ( util . format ( '%s' , 'foo' ) , 'foo' ) ;
65+ assert . strictEqual ( util . format ( '%s' , 42 ) , '42' ) ;
66+ assert . strictEqual ( util . format ( '%s' , '42' ) , '42' ) ;
67+
68+ // JSON format specifier
69+ assert . strictEqual ( util . format ( '%j' ) , '%j' ) ;
70+ assert . strictEqual ( util . format ( '%j' , 42 ) , '42' ) ;
71+ assert . strictEqual ( util . format ( '%j' , '42' ) , '"42"' ) ;
72+
73+ // Various format specifiers
74+ assert . strictEqual ( util . format ( '%%s%s' , 'foo' ) , '%sfoo' ) ;
4575assert . strictEqual ( util . format ( '%s:%s' ) , '%s:%s' ) ;
4676assert . strictEqual ( util . format ( '%s:%s' , undefined ) , 'undefined:%s' ) ;
4777assert . strictEqual ( util . format ( '%s:%s' , 'foo' ) , 'foo:%s' ) ;
@@ -50,11 +80,9 @@ assert.strictEqual(util.format('%s:%s', 'foo', 'bar', 'baz'), 'foo:bar baz');
5080assert . strictEqual ( util . format ( '%%%s%%' , 'hi' ) , '%hi%' ) ;
5181assert . strictEqual ( util . format ( '%%%s%%%%' , 'hi' ) , '%hi%%' ) ;
5282assert . strictEqual ( util . format ( '%sbc%%def' , 'a' ) , 'abc%def' ) ;
53-
5483assert . strictEqual ( util . format ( '%d:%d' , 12 , 30 ) , '12:30' ) ;
5584assert . strictEqual ( util . format ( '%d:%d' , 12 ) , '12:%d' ) ;
5685assert . strictEqual ( util . format ( '%d:%d' ) , '%d:%d' ) ;
57-
5886assert . strictEqual ( util . format ( 'o: %j, a: %j' , { } , [ ] ) , 'o: {}, a: []' ) ;
5987assert . strictEqual ( util . format ( 'o: %j, a: %j' , { } ) , 'o: {}, a: %j' ) ;
6088assert . strictEqual ( util . format ( 'o: %j, a: %j' ) , 'o: %j, a: %j' ) ;
0 commit comments