Tablesorter Testing (WIP)

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)

Tests completed in 25 milliseconds.
483 assertions of 483 passed, 0 failed.

  1. ipv6 parser (0, 483, 483)Rerun4 ms
    1. invalid: ""
    2. valid: 0000:0000:0000:0000:0000:0000:0000:0001 ← "::1"
    3. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "::"
    4. valid: 0000:0000:0000:0000:0000:0000:0000:0001 ← "0:0:0:0:0:0:0:1"
    5. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "0:0:0:0:0:0:0:0"
    6. valid: 2001:0db8:0000:0000:0008:0800:200c:417a ← "2001:db8:0:0:8:800:200c:417a"
    7. valid: ff01:0000:0000:0000:0000:0000:0000:0101 ← "ff01:0:0:0:0:0:0:101"
    8. valid: 2001:0db8:0000:0000:0008:0800:200c:417a ← "2001:db8::8:800:200c:417a"
    9. valid: ff01:0000:0000:0000:0000:0000:0000:0101 ← "ff01::101"
    10. invalid: "2001:db8:0:0:8:800:200c:417a:221"
    11. invalid: "ff01::101::2"
    12. valid: fe80:0000:0000:0000:0217:f2ff:fe07:ed62 ← "fe80::217:f2ff:fe07:ed62"
    13. valid: 2001:0000:1234:0000:0000:c1c0:abcd:0876 ← "2001:0000:1234:0000:0000:c1c0:abcd:0876"
    14. valid: 3ffe:0b00:0000:0000:0001:0000:0000:000a ← "3ffe:0b00:0000:0000:0001:0000:0000:000a"
    15. valid: ff02:0000:0000:0000:0000:0000:0000:0001 ← "ff02:0000:0000:0000:0000:0000:0000:0001"
    16. valid: 0000:0000:0000:0000:0000:0000:0000:0001 ← "0000:0000:0000:0000:0000:0000:0000:0001"
    17. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "0000:0000:0000:0000:0000:0000:0000:0000"
    18. invalid: "02001:0000:1234:0000:0000:c1c0:abcd:0876"
    19. invalid: "2001:0000:1234:0000:00001:c1c0:abcd:0876"
    20. invalid: "2001:0000:1234:0000:0000:c1c0:abcd:0876 0"
    21. invalid: "2001:0000:1234: 0000:0000:c1c0:abcd:0876"
    22. invalid: "3ffe:0b00:0000:0001:0000:0000:000a"
    23. invalid: "ff02:0000:0000:0000:0000:0000:0000:0000:0001"
    24. invalid: "3ffe:b00::1::a"
    25. invalid: "::1111:2222:3333:4444:5555:6666::"
    26. valid: 0002:0000:0000:0000:0000:0000:0000:0010 ← "2::10"
    27. valid: ff02:0000:0000:0000:0000:0000:0000:0001 ← "ff02::1"
    28. valid: fe80:0000:0000:0000:0000:0000:0000:0000 ← "fe80::"
    29. valid: 2002:0000:0000:0000:0000:0000:0000:0000 ← "2002::"
    30. valid: 2001:0db8:0000:0000:0000:0000:0000:0000 ← "2001:db8::"
    31. valid: 2001:0db8:1234:0000:0000:0000:0000:0000 ← "2001:0db8:1234::"
    32. valid: 0000:0000:0000:0000:0000:ffff:0000:0000 ← "::ffff:0:0"
    33. valid: 0001:0002:0003:0004:0005:0006:0007:0008 ← "1:2:3:4:5:6:7:8"
    34. valid: 0001:0002:0003:0004:0005:0006:0000:0008 ← "1:2:3:4:5:6::8"
    35. valid: 0001:0002:0003:0004:0005:0000:0000:0008 ← "1:2:3:4:5::8"
    36. valid: 0001:0002:0003:0004:0000:0000:0000:0008 ← "1:2:3:4::8"
    37. valid: 0001:0002:0003:0000:0000:0000:0000:0008 ← "1:2:3::8"
    38. valid: 0001:0002:0000:0000:0000:0000:0000:0008 ← "1:2::8"
    39. valid: 0001:0000:0000:0000:0000:0000:0000:0008 ← "1::8"
    40. valid: 0001:0000:0002:0003:0004:0005:0006:0007 ← "1::2:3:4:5:6:7"
    41. valid: 0001:0000:0000:0002:0003:0004:0005:0006 ← "1::2:3:4:5:6"
    42. valid: 0001:0000:0000:0000:0002:0003:0004:0005 ← "1::2:3:4:5"
    43. valid: 0001:0000:0000:0000:0000:0002:0003:0004 ← "1::2:3:4"
    44. valid: 0001:0000:0000:0000:0000:0000:0002:0003 ← "1::2:3"
    45. valid: 0001:0000:0000:0000:0000:0000:0000:0008 ← "1::8"
    46. valid: 0000:0002:0003:0004:0005:0006:0007:0008 ← "::2:3:4:5:6:7:8"
    47. valid: 0000:0000:0002:0003:0004:0005:0006:0007 ← "::2:3:4:5:6:7"
    48. valid: 0000:0000:0000:0002:0003:0004:0005:0006 ← "::2:3:4:5:6"
    49. valid: 0000:0000:0000:0000:0002:0003:0004:0005 ← "::2:3:4:5"
    50. valid: 0000:0000:0000:0000:0000:0002:0003:0004 ← "::2:3:4"
    51. valid: 0000:0000:0000:0000:0000:0000:0002:0003 ← "::2:3"
    52. valid: 0000:0000:0000:0000:0000:0000:0000:0008 ← "::8"
    53. valid: 0001:0002:0003:0004:0005:0006:0000:0000 ← "1:2:3:4:5:6::"
    54. valid: 0001:0002:0003:0004:0005:0000:0000:0000 ← "1:2:3:4:5::"
    55. valid: 0001:0002:0003:0004:0000:0000:0000:0000 ← "1:2:3:4::"
    56. valid: 0001:0002:0003:0000:0000:0000:0000:0000 ← "1:2:3::"
    57. valid: 0001:0002:0000:0000:0000:0000:0000:0000 ← "1:2::"
    58. valid: 0001:0000:0000:0000:0000:0000:0000:0000 ← "1::"
    59. valid: 0001:0002:0003:0004:0005:0000:0007:0008 ← "1:2:3:4:5::7:8"
    60. invalid: "1:2:3::4:5::7:8"
    61. invalid: "12345::6:7:8"
    62. valid: 0001:0002:0003:0004:0000:0000:0007:0008 ← "1:2:3:4::7:8"
    63. valid: 0001:0002:0003:0000:0000:0000:0007:0008 ← "1:2:3::7:8"
    64. valid: 0001:0002:0000:0000:0000:0000:0007:0008 ← "1:2::7:8"
    65. valid: 0001:0000:0000:0000:0000:0000:0007:0008 ← "1::7:8"
    66. valid: 0001:0002:0003:0004:0005:0006:0102:0304 ← "1:2:3:4:5:6:1.2.3.4"
    67. valid: 0001:0002:0003:0004:0005:0000:0102:0304 ← "1:2:3:4:5::1.2.3.4"
    68. valid: 0001:0002:0003:0004:0000:0000:0102:0304 ← "1:2:3:4::1.2.3.4"
    69. valid: 0001:0002:0003:0000:0000:0000:0102:0304 ← "1:2:3::1.2.3.4"
    70. valid: 0001:0002:0000:0000:0000:0000:0102:0304 ← "1:2::1.2.3.4"
    71. valid: 0001:0000:0000:0000:0000:0000:0102:0304 ← "1::1.2.3.4"
    72. valid: 0001:0002:0003:0004:0000:0005:0102:0304 ← "1:2:3:4::5:1.2.3.4"
    73. valid: 0001:0002:0003:0000:0000:0005:0102:0304 ← "1:2:3::5:1.2.3.4"
    74. valid: 0001:0002:0000:0000:0000:0005:0102:0304 ← "1:2::5:1.2.3.4"
    75. valid: 0001:0000:0000:0000:0000:0005:0102:0304 ← "1::5:1.2.3.4"
    76. valid: 0001:0000:0000:0000:0000:0005:0b16:212c ← "1::5:11.22.33.44"
    77. invalid: "1::5:400.2.3.4"
    78. invalid: "1::5:260.2.3.4"
    79. invalid: "1::5:256.2.3.4"
    80. invalid: "1::5:1.256.3.4"
    81. invalid: "1::5:1.2.256.4"
    82. invalid: "1::5:1.2.3.256"
    83. invalid: "1::5:300.2.3.4"
    84. invalid: "1::5:1.300.3.4"
    85. invalid: "1::5:1.2.300.4"
    86. invalid: "1::5:1.2.3.300"
    87. invalid: "1::5:900.2.3.4"
    88. invalid: "1::5:1.900.3.4"
    89. invalid: "1::5:1.2.900.4"
    90. invalid: "1::5:1.2.3.900"
    91. invalid: "1::5:300.300.300.300"
    92. invalid: "1::5:3000.30.30.30"
    93. invalid: "1::400.2.3.4"
    94. invalid: "1::260.2.3.4"
    95. invalid: "1::256.2.3.4"
    96. invalid: "1::1.256.3.4"
    97. invalid: "1::1.2.256.4"
    98. invalid: "1::1.2.3.256"
    99. invalid: "1::300.2.3.4"
    100. invalid: "1::1.300.3.4"
    101. invalid: "1::1.2.300.4"
    102. invalid: "1::1.2.3.300"
    103. invalid: "1::900.2.3.4"
    104. invalid: "1::1.900.3.4"
    105. invalid: "1::1.2.900.4"
    106. invalid: "1::1.2.3.900"
    107. invalid: "1::300.300.300.300"
    108. invalid: "1::3000.30.30.30"
    109. invalid: "::400.2.3.4"
    110. invalid: "::260.2.3.4"
    111. invalid: "::256.2.3.4"
    112. invalid: "::1.256.3.4"
    113. invalid: "::1.2.256.4"
    114. invalid: "::1.2.3.256"
    115. invalid: "::300.2.3.4"
    116. invalid: "::1.300.3.4"
    117. invalid: "::1.2.300.4"
    118. invalid: "::1.2.3.300"
    119. invalid: "::900.2.3.4"
    120. invalid: "::1.900.3.4"
    121. invalid: "::1.2.900.4"
    122. invalid: "::1.2.3.900"
    123. invalid: "::300.300.300.300"
    124. invalid: "::3000.30.30.30"
    125. valid: fe80:0000:0000:0000:0217:f2ff:fe07:ed62 ← "fe80::217:f2ff:254.7.237.98"
    126. valid: 0000:0000:0000:0000:0000:ffff:c0a8:011a ← "::ffff:192.168.1.26"
    127. invalid: "2001:1:1:1:1:1:255z255x255y255"
    128. invalid: "::ffff:192x168.1.26"
    129. valid: 0000:0000:0000:0000:0000:ffff:c0a8:0101 ← "::ffff:192.168.1.1"
    130. valid: 0000:0000:0000:0000:0000:0000:0d01:4403 ← "0:0:0:0:0:0:13.1.68.3"
    131. valid: 0000:0000:0000:0000:0000:ffff:8190:3426 ← "0:0:0:0:0:ffff:129.144.52.38"
    132. valid: 0000:0000:0000:0000:0000:0000:0d01:4403 ← "::13.1.68.3"
    133. valid: 0000:0000:0000:0000:0000:ffff:8190:3426 ← "::ffff:129.144.52.38"
    134. valid: fe80:0000:0000:0000:0204:61ff:fe9d:f156 ← "fe80:0:0:0:204:61ff:254.157.241.86"
    135. valid: fe80:0000:0000:0000:0204:61ff:fe9d:f156 ← "fe80::204:61ff:254.157.241.86"
    136. valid: 0000:0000:0000:0000:0000:ffff:0c22:384e ← "::ffff:12.34.56.78"
    137. invalid: "::ffff:2.3.4"
    138. invalid: "::ffff:257.1.2.3"
    139. invalid: "1.2.3.4"
    140. invalid: "1.2.3.4:1111:2222:3333:4444::5555"
    141. invalid: "1.2.3.4:1111:2222:3333::5555"
    142. invalid: "1.2.3.4:1111:2222::5555"
    143. invalid: "1.2.3.4:1111::5555"
    144. invalid: "1.2.3.4::5555"
    145. invalid: "1.2.3.4::"
    146. invalid: "fe80:0000:0000:0000:0204:61ff:254.157.241.086"
    147. valid: 0000:0000:0000:0000:0000:ffff:c000:0280 ← "::ffff:192.0.2.128"
    148. invalid: "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:1.2.3.4"
    149. invalid: "1111:2222:3333:4444:5555:6666:00.00.00.00"
    150. invalid: "1111:2222:3333:4444:5555:6666:000.000.000.000"
    151. invalid: "1111:2222:3333:4444:5555:6666:256.256.256.256"
    152. valid: fe80:0000:0000:0000:0204:61ff:fe9d:f156 ← "fe80:0000:0000:0000:0204:61ff:fe9d:f156"
    153. valid: fe80:0000:0000:0000:0204:61ff:fe9d:f156 ← "fe80:0:0:0:204:61ff:fe9d:f156"
    154. valid: fe80:0000:0000:0000:0204:61ff:fe9d:f156 ← "fe80::204:61ff:fe9d:f156"
    155. valid: fe80:0000:0000:0000:0000:0000:0000:0000 ← "fe80::"
    156. valid: fe80:0000:0000:0000:0000:0000:0000:0001 ← "fe80::1"
    157. invalid: ":"
    158. valid: 0000:0000:0000:0000:0000:ffff:c000:0280 ← "::ffff:c000:280"
    159. invalid: "1111:2222:3333:4444::5555:"
    160. invalid: "1111:2222:3333::5555:"
    161. invalid: "1111:2222::5555:"
    162. invalid: "1111::5555:"
    163. invalid: "::5555:"
    164. invalid: ":::"
    165. invalid: "1111:"
    166. invalid: ":"
    167. invalid: ":1111:2222:3333:4444::5555"
    168. invalid: ":1111:2222:3333::5555"
    169. invalid: ":1111:2222::5555"
    170. invalid: ":1111::5555"
    171. invalid: ":::5555"
    172. invalid: ":::"
    173. valid: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 ← "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
    174. valid: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 ← "2001:db8:85a3:0:0:8a2e:370:7334"
    175. valid: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 ← "2001:db8:85a3::8a2e:370:7334"
    176. valid: 2001:0db8:0000:0000:0000:0000:1428:57ab ← "2001:0db8:0000:0000:0000:0000:1428:57ab"
    177. valid: 2001:0db8:0000:0000:0000:0000:1428:57ab ← "2001:0db8:0000:0000:0000::1428:57ab"
    178. valid: 2001:0db8:0000:0000:0000:0000:1428:57ab ← "2001:0db8:0:0:0:0:1428:57ab"
    179. valid: 2001:0db8:0000:0000:0000:0000:1428:57ab ← "2001:0db8:0:0::1428:57ab"
    180. valid: 2001:0db8:0000:0000:0000:0000:1428:57ab ← "2001:0db8::1428:57ab"
    181. valid: 2001:0db8:0000:0000:0000:0000:1428:57ab ← "2001:db8::1428:57ab"
    182. valid: 0000:0000:0000:0000:0000:0000:0000:0001 ← "0000:0000:0000:0000:0000:0000:0000:0001"
    183. valid: 0000:0000:0000:0000:0000:ffff:0c22:384e ← "::ffff:0c22:384e"
    184. valid: 2001:0db8:1234:0000:0000:0000:0000:0000 ← "2001:0db8:1234:0000:0000:0000:0000:0000"
    185. valid: 2001:0db8:1234:ffff:ffff:ffff:ffff:ffff ← "2001:0db8:1234:ffff:ffff:ffff:ffff:ffff"
    186. valid: 2001:0db8:000a:0000:0000:0000:0000:0123 ← "2001:db8:a::123"
    187. valid: fe80:0000:0000:0000:0000:0000:0000:0000 ← "fe80::"
    188. invalid: "123"
    189. invalid: "ldkfj"
    190. invalid: "2001::ffd3::57ab"
    191. invalid: "2001:db8:85a3::8a2e:37023:7334"
    192. invalid: "2001:db8:85a3::8a2e:370k:7334"
    193. invalid: "1:2:3:4:5:6:7:8:9"
    194. invalid: "1::2::3"
    195. invalid: "1:::3:4:5"
    196. invalid: "1:2:3::4:5:6:7:8:9"
    197. valid: 1111:2222:3333:4444:5555:6666:7777:8888 ← "1111:2222:3333:4444:5555:6666:7777:8888"
    198. valid: 1111:2222:3333:4444:5555:6666:7777:0000 ← "1111:2222:3333:4444:5555:6666:7777::"
    199. valid: 1111:2222:3333:4444:5555:6666:0000:0000 ← "1111:2222:3333:4444:5555:6666::"
    200. valid: 1111:2222:3333:4444:5555:0000:0000:0000 ← "1111:2222:3333:4444:5555::"
    201. valid: 1111:2222:3333:4444:0000:0000:0000:0000 ← "1111:2222:3333:4444::"
    202. valid: 1111:2222:3333:0000:0000:0000:0000:0000 ← "1111:2222:3333::"
    203. valid: 1111:2222:0000:0000:0000:0000:0000:0000 ← "1111:2222::"
    204. valid: 1111:0000:0000:0000:0000:0000:0000:0000 ← "1111::"
    205. valid: 1111:2222:3333:4444:5555:6666:0000:8888 ← "1111:2222:3333:4444:5555:6666::8888"
    206. valid: 1111:2222:3333:4444:5555:0000:0000:8888 ← "1111:2222:3333:4444:5555::8888"
    207. valid: 1111:2222:3333:4444:0000:0000:0000:8888 ← "1111:2222:3333:4444::8888"
    208. valid: 1111:2222:3333:0000:0000:0000:0000:8888 ← "1111:2222:3333::8888"
    209. valid: 1111:2222:0000:0000:0000:0000:0000:8888 ← "1111:2222::8888"
    210. valid: 1111:0000:0000:0000:0000:0000:0000:8888 ← "1111::8888"
    211. valid: 0000:0000:0000:0000:0000:0000:0000:8888 ← "::8888"
    212. valid: 1111:2222:3333:4444:5555:0000:7777:8888 ← "1111:2222:3333:4444:5555::7777:8888"
    213. valid: 1111:2222:3333:4444:0000:0000:7777:8888 ← "1111:2222:3333:4444::7777:8888"
    214. valid: 1111:2222:3333:0000:0000:0000:7777:8888 ← "1111:2222:3333::7777:8888"
    215. valid: 1111:2222:0000:0000:0000:0000:7777:8888 ← "1111:2222::7777:8888"
    216. valid: 1111:0000:0000:0000:0000:0000:7777:8888 ← "1111::7777:8888"
    217. valid: 0000:0000:0000:0000:0000:0000:7777:8888 ← "::7777:8888"
    218. valid: 1111:2222:3333:4444:0000:6666:7777:8888 ← "1111:2222:3333:4444::6666:7777:8888"
    219. valid: 1111:2222:3333:0000:0000:6666:7777:8888 ← "1111:2222:3333::6666:7777:8888"
    220. valid: 1111:2222:0000:0000:0000:6666:7777:8888 ← "1111:2222::6666:7777:8888"
    221. valid: 1111:0000:0000:0000:0000:6666:7777:8888 ← "1111::6666:7777:8888"
    222. valid: 0000:0000:0000:0000:0000:6666:7777:8888 ← "::6666:7777:8888"
    223. valid: 1111:2222:3333:0000:5555:6666:7777:8888 ← "1111:2222:3333::5555:6666:7777:8888"
    224. valid: 1111:2222:0000:0000:5555:6666:7777:8888 ← "1111:2222::5555:6666:7777:8888"
    225. valid: 1111:0000:0000:0000:5555:6666:7777:8888 ← "1111::5555:6666:7777:8888"
    226. valid: 0000:0000:0000:0000:5555:6666:7777:8888 ← "::5555:6666:7777:8888"
    227. valid: 1111:2222:0000:4444:5555:6666:7777:8888 ← "1111:2222::4444:5555:6666:7777:8888"
    228. valid: 1111:0000:0000:4444:5555:6666:7777:8888 ← "1111::4444:5555:6666:7777:8888"
    229. valid: 0000:0000:0000:4444:5555:6666:7777:8888 ← "::4444:5555:6666:7777:8888"
    230. valid: 1111:0000:3333:4444:5555:6666:7777:8888 ← "1111::3333:4444:5555:6666:7777:8888"
    231. valid: 0000:0000:3333:4444:5555:6666:7777:8888 ← "::3333:4444:5555:6666:7777:8888"
    232. valid: 0000:2222:3333:4444:5555:6666:7777:8888 ← "::2222:3333:4444:5555:6666:7777:8888"
    233. valid: 1111:2222:3333:4444:5555:6666:7b7b:7b7b ← "1111:2222:3333:4444:5555:6666:123.123.123.123"
    234. valid: 1111:2222:3333:4444:5555:0000:7b7b:7b7b ← "1111:2222:3333:4444:5555::123.123.123.123"
    235. valid: 1111:2222:3333:4444:0000:0000:7b7b:7b7b ← "1111:2222:3333:4444::123.123.123.123"
    236. valid: 1111:2222:3333:0000:0000:0000:7b7b:7b7b ← "1111:2222:3333::123.123.123.123"
    237. valid: 1111:2222:0000:0000:0000:0000:7b7b:7b7b ← "1111:2222::123.123.123.123"
    238. valid: 1111:0000:0000:0000:0000:0000:7b7b:7b7b ← "1111::123.123.123.123"
    239. valid: 0000:0000:0000:0000:0000:0000:7b7b:7b7b ← "::123.123.123.123"
    240. valid: 1111:2222:3333:4444:0000:6666:7b7b:7b7b ← "1111:2222:3333:4444::6666:123.123.123.123"
    241. valid: 1111:2222:3333:0000:0000:6666:7b7b:7b7b ← "1111:2222:3333::6666:123.123.123.123"
    242. valid: 1111:2222:0000:0000:0000:6666:7b7b:7b7b ← "1111:2222::6666:123.123.123.123"
    243. valid: 1111:0000:0000:0000:0000:6666:7b7b:7b7b ← "1111::6666:123.123.123.123"
    244. valid: 0000:0000:0000:0000:0000:6666:7b7b:7b7b ← "::6666:123.123.123.123"
    245. valid: 1111:2222:3333:0000:5555:6666:7b7b:7b7b ← "1111:2222:3333::5555:6666:123.123.123.123"
    246. valid: 1111:2222:0000:0000:5555:6666:7b7b:7b7b ← "1111:2222::5555:6666:123.123.123.123"
    247. valid: 1111:0000:0000:0000:5555:6666:7b7b:7b7b ← "1111::5555:6666:123.123.123.123"
    248. valid: 0000:0000:0000:0000:5555:6666:7b7b:7b7b ← "::5555:6666:123.123.123.123"
    249. valid: 1111:2222:0000:4444:5555:6666:7b7b:7b7b ← "1111:2222::4444:5555:6666:123.123.123.123"
    250. valid: 1111:0000:0000:4444:5555:6666:7b7b:7b7b ← "1111::4444:5555:6666:123.123.123.123"
    251. valid: 0000:0000:0000:4444:5555:6666:7b7b:7b7b ← "::4444:5555:6666:123.123.123.123"
    252. valid: 1111:0000:3333:4444:5555:6666:7b7b:7b7b ← "1111::3333:4444:5555:6666:123.123.123.123"
    253. valid: 0000:2222:3333:4444:5555:6666:7b7b:7b7b ← "::2222:3333:4444:5555:6666:123.123.123.123"
    254. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "::0:0:0:0:0:0:0"
    255. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "::0:0:0:0:0:0"
    256. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "::0:0:0:0:0"
    257. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "::0:0:0:0"
    258. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "::0:0:0"
    259. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "::0:0"
    260. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "::0"
    261. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "0:0:0:0:0:0:0::"
    262. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "0:0:0:0:0:0::"
    263. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "0:0:0:0:0::"
    264. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "0:0:0:0::"
    265. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "0:0:0::"
    266. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "0:0::"
    267. valid: 0000:0000:0000:0000:0000:0000:0000:0000 ← "0::"
    268. invalid: "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx"
    269. invalid: "1111:2222:3333:4444:5555:6666:7777:8888:9999"
    270. invalid: "1111:2222:3333:4444:5555:6666:7777:8888::"
    271. invalid: "::2222:3333:4444:5555:6666:7777:8888:9999"
    272. invalid: "1111:2222:3333:4444:5555:6666:7777"
    273. invalid: "1111:2222:3333:4444:5555:6666"
    274. invalid: "1111:2222:3333:4444:5555"
    275. invalid: "1111:2222:3333:4444"
    276. invalid: "1111:2222:3333"
    277. invalid: "1111:2222"
    278. invalid: "1111"
    279. invalid: "11112222:3333:4444:5555:6666:7777:8888"
    280. invalid: "1111:22223333:4444:5555:6666:7777:8888"
    281. invalid: "1111:2222:33334444:5555:6666:7777:8888"
    282. invalid: "1111:2222:3333:44445555:6666:7777:8888"
    283. invalid: "1111:2222:3333:4444:55556666:7777:8888"
    284. invalid: "1111:2222:3333:4444:5555:66667777:8888"
    285. invalid: "1111:2222:3333:4444:5555:6666:77778888"
    286. invalid: "1111:2222:3333:4444:5555:6666:7777:8888:"
    287. invalid: "1111:2222:3333:4444:5555:6666:7777:"
    288. invalid: "1111:2222:3333:4444:5555:6666:"
    289. invalid: "1111:2222:3333:4444:5555:"
    290. invalid: "1111:2222:3333:4444:"
    291. invalid: "1111:2222:3333:"
    292. invalid: "1111:2222:"
    293. invalid: "1111:"
    294. invalid: ":"
    295. invalid: ":8888"
    296. invalid: ":7777:8888"
    297. invalid: ":6666:7777:8888"
    298. invalid: ":5555:6666:7777:8888"
    299. invalid: ":4444:5555:6666:7777:8888"
    300. invalid: ":3333:4444:5555:6666:7777:8888"
    301. invalid: ":2222:3333:4444:5555:6666:7777:8888"
    302. invalid: ":1111:2222:3333:4444:5555:6666:7777:8888"
    303. invalid: ":::2222:3333:4444:5555:6666:7777:8888"
    304. invalid: "1111:::3333:4444:5555:6666:7777:8888"
    305. invalid: "1111:2222:::4444:5555:6666:7777:8888"
    306. invalid: "1111:2222:3333:::5555:6666:7777:8888"
    307. invalid: "1111:2222:3333:4444:::6666:7777:8888"
    308. invalid: "1111:2222:3333:4444:5555:::7777:8888"
    309. invalid: "1111:2222:3333:4444:5555:6666:::8888"
    310. invalid: "1111:2222:3333:4444:5555:6666:7777:::"
    311. invalid: "::2222::4444:5555:6666:7777:8888"
    312. invalid: "::2222:3333::5555:6666:7777:8888"
    313. invalid: "::2222:3333:4444::6666:7777:8888"
    314. invalid: "::2222:3333:4444:5555::7777:8888"
    315. invalid: "::2222:3333:4444:5555:7777::8888"
    316. invalid: "::2222:3333:4444:5555:7777:8888::"
    317. invalid: "1111::3333::5555:6666:7777:8888"
    318. invalid: "1111::3333:4444::6666:7777:8888"
    319. invalid: "1111::3333:4444:5555::7777:8888"
    320. invalid: "1111::3333:4444:5555:6666::8888"
    321. invalid: "1111::3333:4444:5555:6666:7777::"
    322. invalid: "1111:2222::4444::6666:7777:8888"
    323. invalid: "1111:2222::4444:5555::7777:8888"
    324. invalid: "1111:2222::4444:5555:6666::8888"
    325. invalid: "1111:2222::4444:5555:6666:7777::"
    326. invalid: "1111:2222:3333::5555::7777:8888"
    327. invalid: "1111:2222:3333::5555:6666::8888"
    328. invalid: "1111:2222:3333::5555:6666:7777::"
    329. invalid: "1111:2222:3333:4444::6666::8888"
    330. invalid: "1111:2222:3333:4444::6666:7777::"
    331. invalid: "1111:2222:3333:4444:5555::7777::"
    332. invalid: "1111:2222:3333:4444:5555:6666:7777:8888:1.2.3.4"
    333. invalid: "1111:2222:3333:4444:5555:6666:7777:1.2.3.4"
    334. invalid: "1111:2222:3333:4444:5555:6666::1.2.3.4"
    335. invalid: "::2222:3333:4444:5555:6666:7777:1.2.3.4"
    336. invalid: "1111:2222:3333:4444:5555:6666:1.2.3.4.5"
    337. invalid: "1111:2222:3333:4444:5555:1.2.3.4"
    338. invalid: "1111:2222:3333:4444:1.2.3.4"
    339. invalid: "1111:2222:3333:1.2.3.4"
    340. invalid: "1111:2222:1.2.3.4"
    341. invalid: "1111:1.2.3.4"
    342. invalid: "1.2.3.4"
    343. invalid: "11112222:3333:4444:5555:6666:1.2.3.4"
    344. invalid: "1111:22223333:4444:5555:6666:1.2.3.4"
    345. invalid: "1111:2222:33334444:5555:6666:1.2.3.4"
    346. invalid: "1111:2222:3333:44445555:6666:1.2.3.4"
    347. invalid: "1111:2222:3333:4444:55556666:1.2.3.4"
    348. invalid: "1111:2222:3333:4444:5555:66661.2.3.4"
    349. invalid: "1111:2222:3333:4444:5555:6666:255255.255.255"
    350. invalid: "1111:2222:3333:4444:5555:6666:255.255255.255"
    351. invalid: "1111:2222:3333:4444:5555:6666:255.255.255255"
    352. invalid: ":1.2.3.4"
    353. invalid: ":6666:1.2.3.4"
    354. invalid: ":5555:6666:1.2.3.4"
    355. invalid: ":4444:5555:6666:1.2.3.4"
    356. invalid: ":3333:4444:5555:6666:1.2.3.4"
    357. invalid: ":2222:3333:4444:5555:6666:1.2.3.4"
    358. invalid: ":1111:2222:3333:4444:5555:6666:1.2.3.4"
    359. invalid: ":::2222:3333:4444:5555:6666:1.2.3.4"
    360. invalid: "1111:::3333:4444:5555:6666:1.2.3.4"
    361. invalid: "1111:2222:::4444:5555:6666:1.2.3.4"
    362. invalid: "1111:2222:3333:::5555:6666:1.2.3.4"
    363. invalid: "1111:2222:3333:4444:::6666:1.2.3.4"
    364. invalid: "1111:2222:3333:4444:5555:::1.2.3.4"
    365. invalid: "::2222::4444:5555:6666:1.2.3.4"
    366. invalid: "::2222:3333::5555:6666:1.2.3.4"
    367. invalid: "::2222:3333:4444::6666:1.2.3.4"
    368. invalid: "::2222:3333:4444:5555::1.2.3.4"
    369. invalid: "1111::3333::5555:6666:1.2.3.4"
    370. invalid: "1111::3333:4444::6666:1.2.3.4"
    371. invalid: "1111::3333:4444:5555::1.2.3.4"
    372. invalid: "1111:2222::4444::6666:1.2.3.4"
    373. invalid: "1111:2222::4444:5555::1.2.3.4"
    374. invalid: "1111:2222:3333::5555::1.2.3.4"
    375. invalid: "::."
    376. invalid: "::.."
    377. invalid: "::..."
    378. invalid: "::1..."
    379. invalid: "::1.2.."
    380. invalid: "::1.2.3."
    381. invalid: "::.2.."
    382. invalid: "::.2.3."
    383. invalid: "::.2.3.4"
    384. invalid: "::..3."
    385. invalid: "::..3.4"
    386. invalid: "::...4"
    387. invalid: ":1111:2222:3333:4444:5555:6666:7777::"
    388. invalid: ":1111:2222:3333:4444:5555:6666::"
    389. invalid: ":1111:2222:3333:4444:5555::"
    390. invalid: ":1111:2222:3333:4444::"
    391. invalid: ":1111:2222:3333::"
    392. invalid: ":1111:2222::"
    393. invalid: ":1111::"
    394. invalid: ":::"
    395. invalid: ":1111:2222:3333:4444:5555:6666::8888"
    396. invalid: ":1111:2222:3333:4444:5555::8888"
    397. invalid: ":1111:2222:3333:4444::8888"
    398. invalid: ":1111:2222:3333::8888"
    399. invalid: ":1111:2222::8888"
    400. invalid: ":1111::8888"
    401. invalid: ":::8888"
    402. invalid: ":1111:2222:3333:4444:5555::7777:8888"
    403. invalid: ":1111:2222:3333:4444::7777:8888"
    404. invalid: ":1111:2222:3333::7777:8888"
    405. invalid: ":1111:2222::7777:8888"
    406. invalid: ":1111::7777:8888"
    407. invalid: ":::7777:8888"
    408. invalid: ":1111:2222:3333:4444::6666:7777:8888"
    409. invalid: ":1111:2222:3333::6666:7777:8888"
    410. invalid: ":1111:2222::6666:7777:8888"
    411. invalid: ":1111::6666:7777:8888"
    412. invalid: ":::6666:7777:8888"
    413. invalid: ":1111:2222:3333::5555:6666:7777:8888"
    414. invalid: ":1111:2222::5555:6666:7777:8888"
    415. invalid: ":1111::5555:6666:7777:8888"
    416. invalid: ":::5555:6666:7777:8888"
    417. invalid: ":1111:2222::4444:5555:6666:7777:8888"
    418. invalid: ":1111::4444:5555:6666:7777:8888"
    419. invalid: ":::4444:5555:6666:7777:8888"
    420. invalid: ":1111::3333:4444:5555:6666:7777:8888"
    421. invalid: ":::3333:4444:5555:6666:7777:8888"
    422. invalid: ":::2222:3333:4444:5555:6666:7777:8888"
    423. invalid: ":1111:2222:3333:4444:5555:6666:1.2.3.4"
    424. invalid: ":1111:2222:3333:4444:5555::1.2.3.4"
    425. invalid: ":1111:2222:3333:4444::1.2.3.4"
    426. invalid: ":1111:2222:3333::1.2.3.4"
    427. invalid: ":1111:2222::1.2.3.4"
    428. invalid: ":1111::1.2.3.4"
    429. invalid: ":::1.2.3.4"
    430. invalid: ":1111:2222:3333:4444::6666:1.2.3.4"
    431. invalid: ":1111:2222:3333::6666:1.2.3.4"
    432. invalid: ":1111:2222::6666:1.2.3.4"
    433. invalid: ":1111::6666:1.2.3.4"
    434. invalid: ":::6666:1.2.3.4"
    435. invalid: ":1111:2222:3333::5555:6666:1.2.3.4"
    436. invalid: ":1111:2222::5555:6666:1.2.3.4"
    437. invalid: ":1111::5555:6666:1.2.3.4"
    438. invalid: ":::5555:6666:1.2.3.4"
    439. invalid: ":1111:2222::4444:5555:6666:1.2.3.4"
    440. invalid: ":1111::4444:5555:6666:1.2.3.4"
    441. invalid: ":::4444:5555:6666:1.2.3.4"
    442. invalid: ":1111::3333:4444:5555:6666:1.2.3.4"
    443. invalid: ":::2222:3333:4444:5555:6666:1.2.3.4"
    444. invalid: "1111:2222:3333:4444:5555:6666:7777:::"
    445. invalid: "1111:2222:3333:4444:5555:6666:::"
    446. invalid: "1111:2222:3333:4444:5555:::"
    447. invalid: "1111:2222:3333:4444:::"
    448. invalid: "1111:2222:3333:::"
    449. invalid: "1111:2222:::"
    450. invalid: "1111:::"
    451. invalid: ":::"
    452. invalid: "1111:2222:3333:4444:5555:6666::8888:"
    453. invalid: "1111:2222:3333:4444:5555::8888:"
    454. invalid: "1111:2222:3333:4444::8888:"
    455. invalid: "1111:2222:3333::8888:"
    456. invalid: "1111:2222::8888:"
    457. invalid: "1111::8888:"
    458. invalid: "::8888:"
    459. invalid: "1111:2222:3333:4444:5555::7777:8888:"
    460. invalid: "1111:2222:3333:4444::7777:8888:"
    461. invalid: "1111:2222:3333::7777:8888:"
    462. invalid: "1111:2222::7777:8888:"
    463. invalid: "1111::7777:8888:"
    464. invalid: "::7777:8888:"
    465. invalid: "1111:2222:3333:4444::6666:7777:8888:"
    466. invalid: "1111:2222:3333::6666:7777:8888:"
    467. invalid: "1111:2222::6666:7777:8888:"
    468. invalid: "1111::6666:7777:8888:"
    469. invalid: "::6666:7777:8888:"
    470. invalid: "1111:2222:3333::5555:6666:7777:8888:"
    471. invalid: "1111:2222::5555:6666:7777:8888:"
    472. invalid: "1111::5555:6666:7777:8888:"
    473. invalid: "::5555:6666:7777:8888:"
    474. invalid: "1111:2222::4444:5555:6666:7777:8888:"
    475. invalid: "1111::4444:5555:6666:7777:8888:"
    476. invalid: "::4444:5555:6666:7777:8888:"
    477. invalid: "1111::3333:4444:5555:6666:7777:8888:"
    478. invalid: "::3333:4444:5555:6666:7777:8888:"
    479. invalid: "::2222:3333:4444:5555:6666:7777:8888:"
    480. valid: 0000:000a:000b:000c:000d:000e:000f:0000 ← "0:a:b:c:d:e:f::"
    481. valid: 0000:0000:000a:000b:000c:000d:000e:000f ← "::0:a:b:c:d:e:f"
    482. valid: 000a:000b:000c:000d:000e:000f:0000:0000 ← "a:b:c:d:e:f:0::"
    483. invalid: "':10.0.0.1"

This is a work-in-progress. It does not yet comprehensively test all sorting methods. The following are on the to do list:

test-head
num
test-foottxt
test2x2
test1x3
test3x1
Info
testBx5
testCx4
testAx6
1
2
3
4
abcd
zyxw
1
2
3
4
A43-3501-.1
A2553302N/A #1
A33203N/A #2
A1-504-8.4
A102NR05-2.2
A10-10697.4
A0210723.6
A554411.4
A8704NR5.2
NR