@@ -328,111 +328,144 @@ describe('encoding', () => {
328
328
}
329
329
} ) ;
330
330
331
- it ( 'iconv ucs2' , ( ) => {
332
- for ( var i = 0 ; i < 0xd800 ; i ++ ) {
333
- var s = String . fromCharCode ( i ) ;
334
- var buf = iconv . encode ( 'utf16le' , s ) ;
335
- var n = buf . readUInt16LE ( ) ;
336
- assert . equal ( i , n ) ;
337
- assert . equal ( iconv . decode ( 'utf16le' , buf ) , s ) ;
338
- }
331
+ describe ( "iconv" , ( ) => {
332
+ it ( 'ucs2' , ( ) => {
333
+ for ( var i = 0 ; i < 0xd800 ; i ++ ) {
334
+ var s = String . fromCharCode ( i ) ;
335
+ var buf = iconv . encode ( 'utf16le' , s ) ;
336
+ var n = buf . readUInt16LE ( ) ;
337
+ assert . equal ( i , n ) ;
338
+ assert . equal ( iconv . decode ( 'utf16le' , buf ) , s ) ;
339
+ }
339
340
340
- for ( var i = 0 ; i < 0xd800 ; i ++ ) {
341
- var s = String . fromCharCode ( i ) ;
342
- var buf = iconv . encode ( 'utf16be' , s ) ;
343
- var n = buf . readUInt16BE ( ) ;
344
- assert . equal ( i , n ) ;
345
- assert . equal ( iconv . decode ( 'utf16be' , buf ) , s ) ;
346
- }
341
+ for ( var i = 0 ; i < 0xd800 ; i ++ ) {
342
+ var s = String . fromCharCode ( i ) ;
343
+ var buf = iconv . encode ( 'utf16be' , s ) ;
344
+ var n = buf . readUInt16BE ( ) ;
345
+ assert . equal ( i , n ) ;
346
+ assert . equal ( iconv . decode ( 'utf16be' , buf ) , s ) ;
347
+ }
347
348
348
- assert . equal ( new Buffer ( [ 0xc8 ] ) . toString ( ) , '\ufffd' ) ;
349
- assert . equal ( Buffer . from ( '3DD84DDC' , 'hex' ) . toString ( 'utf16le' ) , '👍' ) ;
350
- } ) ;
349
+ assert . equal ( new Buffer ( [ 0xc8 ] ) . toString ( ) , '\ufffd' ) ;
350
+ assert . equal ( Buffer . from ( '3DD84DDC' , 'hex' ) . toString ( 'utf16le' ) , '👍' ) ;
351
+ } ) ;
352
+
353
+ var datas = [
354
+ [
355
+ 0x7f ,
356
+ "7f000000" ,
357
+ "7f000000"
358
+ ] ,
359
+ [
360
+ 0x80 ,
361
+ "80000000" ,
362
+ "80000000"
363
+ ] ,
364
+ [
365
+ 0x7ff ,
366
+ "ff070000" ,
367
+ "ff070000"
368
+ ] ,
369
+ [
370
+ 0x800 ,
371
+ "00080000" ,
372
+ "00080000"
373
+ ] ,
374
+ [
375
+ 0xffff ,
376
+ "ffff0000" ,
377
+ "ffff0000"
378
+ ] ,
379
+ [
380
+ 0x10000 ,
381
+ "00000100" ,
382
+ "00000100"
383
+ ] ,
384
+ [
385
+ 0x10ffff ,
386
+ "ffff1000" ,
387
+ "ffff1000"
388
+ ] ,
389
+ [
390
+ 0x110000 ,
391
+ "00001100" ,
392
+ "00001100"
393
+ ] ,
394
+ [
395
+ 0x1fffff ,
396
+ "ffff1f00" ,
397
+ "ffff1f00"
398
+ ] ,
E377
td>399
+ [
400
+ 0x200000 ,
401
+ "00002000" ,
402
+ "00002000"
403
+ ] ,
404
+ [
405
+ 0x3ffffff ,
406
+ "ffffff03" ,
407
+ "bfff0000ffdf0000"
408
+ ] ,
409
+ [
410
+ 0x4000000 ,
411
+ "00000004" ,
412
+ "c0ff000000dc0000"
413
+ ]
414
+ ] ;
351
415
352
- var datas = [
353
- [
354
- 0x7f ,
355
- "7f000000" ,
356
- "7f000000"
357
- ] ,
358
- [
359
- 0x80 ,
360
- "80000000" ,
361
- "80000000"
362
- ] ,
363
- [
364
- 0x7ff ,
365
- "ff070000" ,
366
- "ff070000"
367
- ] ,
368
- [
369
- 0x800 ,
370
- "00080000" ,
371
- "00080000"
372
- ] ,
373
- [
374
- 0xffff ,
375
- "ffff0000" ,
376
- "ffff0000"
377
- ] ,
378
- [
379
- 0x10000 ,
380
- "00000100" ,
381
- "00000100"
382
- ] ,
383
- [
384
- 0x10ffff ,
385
- "ffff1000" ,
386
- "ffff1000"
387
- ] ,
388
- [
389
- 0x110000 ,
390
- "00001100" ,
391
- "00001100"
392
- ] ,
393
- [
394
- 0x1fffff ,
395
- "ffff1f00" ,
396
- "ffff1f00"
397
- ] ,
398
- [
399
- 0x200000 ,
400
- "00002000" ,
401
- "00002000"
402
- ] ,
403
- [
404
- 0x3ffffff ,
405
- "ffffff03" ,
406
- "bfff0000ffdf0000"
407
- ] ,
408
- [
409
- 0x4000000 ,
410
- "00000004" ,
411
- "c0ff000000dc0000"
412
- ]
413
- ] ;
414
-
415
- it ( 'iconv ucs2 multi' , ( ) => {
416
- datas . forEach ( d => {
417
- var buf = Buffer . alloc ( 4 ) ;
418
- buf . writeUInt32LE ( d [ 0 ] ) ;
419
- var s = iconv . decode ( 'utf32le' , buf ) ;
420
- var buf2 = Buffer . alloc ( s . length * 2 ) ;
421
- buf2 . writeUInt16LE ( s . charCodeAt ( 0 ) ) ;
422
- if ( s . length > 1 )
423
- buf2 . writeUInt16LE ( s . charCodeAt ( 1 ) , 2 ) ;
424
- assert . equal ( iconv . decode ( 'utf16le' , buf2 ) , s ) ;
425
- } ) ;
426
- } ) ;
416
+ it ( 'ucs2 multi' , ( ) => {
417
+ datas . forEach ( d => {
418
+ var buf = Buffer . alloc ( 4 ) ;
419
+ buf . writeUInt32LE ( d [ 0 ] ) ;
420
+ var s = iconv . decode ( 'utf32le' , buf ) ;
421
+ var buf2 = Buffer . alloc ( s . length * 2 ) ;
422
+ buf2 . writeUInt16LE ( s . charCodeAt ( 0 ) ) ;
423
+ if ( s . length > 1 )
424
+ buf2 . writeUInt16LE ( s . charCodeAt ( 1 ) , 2 ) ;
425
+ assert . equal ( iconv . decode ( 'utf16le' , buf2 ) , s ) ;
426
+ } ) ;
427
+ } ) ;
428
+
429
+ it ( 'ucs4' , ( ) => {
430
+ datas . forEach ( d => {
431
+ var buf = Buffer . alloc ( 4 ) ;
432
+ buf . writeUInt32LE ( d [ 0 ] ) ;
433
+ var s = iconv . decode ( 'utf32le' , buf ) ;
434
+ var buf1 = iconv . encode ( 'utf32le' , s ) ;
435
+ assert . deepEqual ( buf . hex ( ) , d [ 1 ] ) ;
436
+ assert . deepEqual ( buf1 . hex ( ) , d [ 2 ] ) ;
437
+ } ) ;
438
+ } ) ;
439
+
440
+ const builtin_datas = [
441
+ {
442
+ "name" : "gbk" ,
443
+ "text" : "你好" ,
444
+ "hex" : "c4e3bac3"
445
+ } ,
446
+ {
447
+ "name" : "big5" ,
448
+ "text" : "你好" ,
449
+ "hex" : "a741a66e"
450
+ } ,
451
+ {
452
+ "name" : "shift_jis" ,
453
+ "text" : "こんにちは" ,
454
+ "hex" : "82b182f182c982bf82cd"
455
+ } ,
456
+ {
457
+ "name" : "euc-kr" ,
458
+ "text" : "안녕하세요" ,
459
+ "hex" : "bec8b3e7c7cfbcbcbfe4"
460
+ }
461
+ ] ;
427
462
428
- it ( 'iconv ucs4' , ( ) => {
429
- datas . forEach ( d => {
430
- var buf = Buffer . alloc ( 4 ) ;
431
- buf . writeUInt32LE ( d [ 0 ] ) ;
432
- var s = iconv . decode ( 'utf32le' , buf ) ;
433
- var buf1 = iconv . encode ( 'utf32le' , s ) ;
434
- assert . deepEqual ( buf . hex ( ) , d [ 1 ] ) ;
435
- assert . deepEqual ( buf1 . hex ( ) , d [ 2 ] ) ;
463
+ it ( "builtin codec" , ( ) => {
464
+ for ( var d of builtin_datas ) {
465
+ var buf = iconv . encode ( d . name , d . text ) ;
466
+ assert . equal ( buf . hex ( ) , d . hex ) ;
467
+ assert . equal ( iconv . decode ( d . name , buf ) , d . text ) ;
468
+ }
436
469
} ) ;
437
470
} ) ;
438
471
@@ -755,7 +788,7 @@ describe('encoding', () => {
755
788
} ) ;
756
789
757
790
it ( 'test for Map' , ( ) => {
758
- var tmp = { a : 12 , b : [ 2 , 3 , 5 ] , c : true } ;
791
+ var tmp = { a : 12 , b : [ 2 , 3 , 5 ] , c : true } ;
759
792
var map = new Map ( Object . entries ( tmp ) ) ;
760
793
assert . deepEqual ( tmp , msgpack . decode ( msgpack . encode ( map ) ) ) ;
761
794
assert . isObject ( msgpack . decode ( msgpack . encode ( map ) ) ) ;
0 commit comments