@@ -164,6 +164,7 @@ suite.addBatch({
164164 assert . strictEqual ( format ( "08,d" ) ( 0 ) , "0,000,000" ) ;
165165 assert . strictEqual ( format ( "013,d" ) ( 0 ) , "0,000,000,000" ) ;
166166 assert . strictEqual ( format ( "021,d" ) ( 0 ) , "0,000,000,000,000,000" ) ;
167+ assert . strictEqual ( format ( "013,d" ) ( - 42000000 ) , "-0,042,000,000" ) ;
167168 } ,
168169 "can group thousands and zero fill with overflow" : function ( format ) {
169170 assert . strictEqual ( format ( "01,d" ) ( 1 ) , "1" ) ;
@@ -220,6 +221,90 @@ suite.addBatch({
220221 "will not display non-integers in integer format" : function ( format ) {
221222 assert . strictEqual ( format ( "d" ) ( 4.2 ) , "" ) ;
222223 } ,
224+ "unicode character" : function ( format ) {
225+ assert . strictEqual ( format ( "c" ) ( 9731 ) , "☃" ) ;
226+ } ,
227+ "binary" : function ( format ) {
228+ assert . strictEqual ( format ( "b" ) ( 10 ) , "1010" ) ;
229+ } ,
230+ "binary with prefix" : function ( format ) {
231+ assert . strictEqual ( format ( "#b" ) ( 10 ) , "0b1010" ) ;
232+ } ,
233+ "octal" : function ( format ) {
234+ assert . strictEqual ( format ( "o" ) ( 10 ) , "12" ) ;
235+ } ,
236+ "octal with prefix" : function ( format ) {
237+ assert . strictEqual ( format ( "#o" ) ( 10 ) , "0o12" ) ;
238+ } ,
239+ "hexadecimal (lowercase)" : function ( format ) {
240+ assert . strictEqual ( format ( "x" ) ( 3735928559 ) , "deadbeef" ) ;
241+ } ,
242+ "hexadecimal (lowercase) with prefix" : function ( format ) {
243+ assert . strictEqual ( format ( "#x" ) ( 3735928559 ) , "0xdeadbeef" ) ;
244+ } ,
245+ "hexadecimal (uppercase)" : function ( format ) {
246+ assert . strictEqual ( format ( "X" ) ( 3735928559 ) , "DEADBEEF" ) ;
247+ } ,
248+ "hexadecimal (uppercase) with prefix" : function ( format ) {
249+ assert . strictEqual ( format ( "#X" ) ( 3735928559 ) , "0xDEADBEEF" ) ;
250+ } ,
251+ "fill respects prefix" : function ( format ) {
252+ assert . strictEqual ( format ( "#20x" ) ( 3735928559 ) , " 0xdeadbeef" ) ;
253+ } ,
254+ "align left" : function ( format ) {
255+ assert . strictEqual ( format ( "<1,d" ) ( 0 ) , "0" ) ;
256+ assert . strictEqual ( format ( "<1,d" ) ( 0 ) , "0" ) ;
257+ assert . strictEqual ( format ( "<2,d" ) ( 0 ) , "0 " ) ;
258+ assert . strictEqual ( format ( "<3,d" ) ( 0 ) , "0 " ) ;
259+ assert . strictEqual ( format ( "<5,d" ) ( 0 ) , "0 " ) ;
260+ assert . strictEqual ( format ( "<8,d" ) ( 0 ) , "0 " ) ;
261+ assert . strictEqual ( format ( "<13,d" ) ( 0 ) , "0 " ) ;
262+ assert . strictEqual ( format ( "<21,d" ) ( 0 ) , "0 " ) ;
263+ } ,
264+ "align right" : function ( format ) {
265+ assert . strictEqual ( format ( ">1,d" ) ( 0 ) , "0" ) ;
266+ assert . strictEqual ( format ( ">1,d" ) ( 0 ) , "0" ) ;
267+ assert . strictEqual ( format ( ">2,d" ) ( 0 ) , " 0" ) ;
268+ assert . strictEqual ( format ( ">3,d" ) ( 0 ) , " 0" ) ;
269+ assert . strictEqual ( format ( ">5,d" ) ( 0 ) , " 0" ) ;
270+ assert . strictEqual ( format ( ">8,d" ) ( 0 ) , " 0" ) ;
271+ assert . strictEqual ( format ( ">13,d" ) ( 0 ) , " 0" ) ;
272+ assert . strictEqual ( format ( ">21,d" ) ( 0 ) , " 0" ) ;
273+ } ,
274+ "align center" : function ( format ) {
275+ assert . strictEqual ( format ( "^1,d" ) ( 0 ) , "0" ) ;
276+ assert . strictEqual ( format ( "^1,d" ) ( 0 ) , "0" ) ;
277+ assert . strictEqual ( format ( "^2,d" ) ( 0 ) , " 0" ) ;
278+ assert . strictEqual ( format ( "^3,d" ) ( 0 ) , " 0 " ) ;
279+ assert . strictEqual ( format ( "^5,d" ) ( 0 ) , " 0 " ) ;
280+ assert . strictEqual ( format ( "^8,d" ) ( 0 ) , " 0 " ) ;
281+ assert . strictEqual ( format ( "^13,d" ) ( 0 ) , " 0 " ) ;
282+ assert . strictEqual ( format ( "^21,d" ) ( 0 ) , " 0 " ) ;
283+ } ,
284+ "pad after sign" : function ( format ) {
285+ assert . strictEqual ( format ( "=+1,d" ) ( 0 ) , "+0" ) ;
286+ assert . strictEqual ( format ( "=+1,d" ) ( 0 ) , "+0" ) ;
287+ assert . strictEqual ( format ( "=+2,d" ) ( 0 ) , "+0" ) ;
288+ assert . strictEqual ( format ( "=+3,d" ) ( 0 ) , "+ 0" ) ;
289+ assert . strictEqual ( format ( "=+5,d" ) ( 0 ) , "+ 0" ) ;
290+ assert . strictEqual ( format ( "=+8,d" ) ( 0 ) , "+ 0" ) ;
291+ assert . strictEqual ( format ( "=+13,d" ) ( 0 ) , "+ 0" ) ;
292+ assert . strictEqual ( format ( "=+21,d" ) ( 0 ) , "+ 0" ) ;
293+ } ,
294+ "a space can denote positive numbers" : function ( format ) {
295+ assert . strictEqual ( format ( " 1,d" ) ( - 1 ) , "-1" ) ;
296+ assert . strictEqual ( format ( " 1,d" ) ( 0 ) , " 0" ) ;
297+ assert . strictEqual ( format ( " 2,d" ) ( 0 ) , " 0" ) ;
298+ assert . strictEqual ( format ( " 3,d" ) ( 0 ) , " 0" ) ;
299+ assert . strictEqual ( format ( " 5,d" ) ( 0 ) , " 0" ) ;
300+ assert . strictEqual ( format ( " 8,d" ) ( 0 ) , " 0" ) ;
301+ assert . strictEqual ( format ( " 13,d" ) ( 0 ) , " 0" ) ;
302+ assert . strictEqual ( format ( " 21,d" ) ( 0 ) , " 0" ) ;
303+ } ,
304+ "can format negative zero" : function ( format ) {
305+ assert . strictEqual ( format ( "1d" ) ( - 0 ) , "-0" ) ;
306+ assert . strictEqual ( format ( "1f" ) ( - 0 ) , "-0" ) ;
307+ } ,
223308 "supports \"n\" as an alias for \",g\"" : function ( format ) {
224309 var f = format ( "n" ) ;
225310 assert . strictEqual ( f ( .0042 ) , "0.0042" ) ;
0 commit comments