import { expect } from "chai" ; import { ipv6StringFromBuffer } from "../../../lib/deserialize/address/ipv6StringFromBuffer" ; const tests = [ [ "Addresses are lower case" , Buffer . from ( "aaaabbbbccccddddeeeeffff77778888" , "hex" ) , "aaaa:bbbb:cccc:dddd:eeee:ffff:7777:8888" , ] , [ "All non-zero values" , Buffer . from ( "11112222333344445555666677778888" , "hex" ) , "1111:2222:3333:4444:5555:6666:7777:8888" , ] , [ "Removes leading zeros" , Buffer . from ( "00110022003300440055006600770088" , "hex" ) , "11:22:33:44:55:66:77:88" , ] , [ "All zero collapses to ::" , Buffer . from ( "00000000000000000000000000000000" , "hex" ) , "::" , ] , [ "Loopback is as expected" , Buffer . from ( "00000000000000000000000000000001" , "hex" ) , "::1" , ] , [ "Single collapse start" , Buffer . from ( "00002222333344445555666677778888" , "hex" ) , "::2222:3333:4444:5555:6666:7777:8888" , ] , [ "Single collapse in middle" , Buffer . from ( "11112222000044445555666677778888" , "hex" ) , "1111:2222::4444:5555:6666:7777:8888" , ] , [ "Single collapse at end" , Buffer . from ( "11112222333344445555666677770000" , "hex" ) , "1111:2222:3333:4444:5555:6666:7777::" , ] , [ "Extended collapse in start" , Buffer . from ( "00000000333344445555666677778888" , "hex" ) , "::3333:4444:5555:6666:7777:8888" , ] , [ "Extended collapse in middle" , Buffer . from ( "11112222000000005555666677778888" , "hex" ) , "1111:2222::5555:6666:7777:8888" , ] , [ "Extended collapse at end" , Buffer . from ( "11112222333344445555666600000000" , "hex" ) , "1111:2222:3333:4444:5555:6666::" , ] , [ "Multiple collapse sections ignores future collapse" , Buffer . from ( "11110000333300005555000077770000" , "hex" ) , "1111::3333:0:5555:0:7777:0" , ] , [ "Multiple nested collapse sections" , Buffer . from ( "00000000333300000000666600000000" , "hex" ) , "::3333:0:0:6666:0:0" , ] , ] ; describe ( "ipv6StringFromBuffer" , ( ) => { for ( const [ title , input , expected ] of tests ) { it ( title , ( ) => { const actual = ipv6StringFromBuffer ( input ) ; expect ( actual ) . to . equal ( expected ) ; } ) ; } } ) ;