@@ -4,36 +4,37 @@ import { Chars } from './chars'
44import alphaEncoder from './encoder/alpha'
55import alphaCaseEncoder from './encoder/alphaCase'
66import alphaNumEncoder from './encoder/alphaNum'
7+ import alphaNumCaseEncoder from './encoder/alphaNumCase'
78import base32Encoder from './encoder/base32'
89import base32HexCaseEncoder from './encoder/base32HexCase'
910import decimalEncoder from './encoder/decimal'
1011import hexCaseEncoder from './encoder/hexCase'
1112import safe32Encoder from './encoder/safe32'
1213import safe64Encoder from './encoder/safe64'
1314import safeAsciiEncoder from './encoder/safeAscii'
15+ import symbolEncoder from './encoder/symbol'
1416
1517type PuidEncoder = ( n : number ) => number
16- const encoderString = ( n : number , encoder : PuidEncoder ) =>
17- String . fromCodePoint (
18- ...new Array ( n )
19- . fill ( 0 )
20- . map ( ( zero , ndx ) => zero + ndx )
21- . map ( ( v ) => encoder ( v ) )
22- )
2318
24- const testEncoder = ( t : ExecutionContext , encoder : PuidEncoder , chars : string ) =>
25- t . is ( encoderString ( chars . length , encoder ) , chars )
19+ const encoder = ( t : ExecutionContext , encoder : PuidEncoder , chars : string ) => {
20+ const codes = [ ...Array ( chars . length ) . keys ( ) ] . map ( code => encoder ( code ) )
21+ const encoded = String . fromCharCode ( ...codes )
22+ t . is ( encoded , chars )
23+ }
2624
27- test ( 'alpha() encoder' , ( t ) => testEncoder ( t , alphaEncoder ( ) , Chars . Alpha ) )
28- test ( 'alphaCase() encoder' , ( t ) => testEncoder ( t , alphaCaseEncoder ( ) , Chars . AlphaLower ) )
29- test ( 'alphaCase(true) encoder' , ( t ) => testEncoder ( t , alphaCaseEncoder ( true ) , Chars . AlphaUpper ) )
30- test ( 'alphaNumEncoder() encoder' , ( t ) => testEncoder ( t , alphaNumEncoder ( ) , Chars . AlphaNum ) )
31- test ( 'base32Encoder() encoder' , ( t ) => testEncoder ( t , base32Encoder ( ) , Chars . Base32 ) )
32- test ( 'base32HexCaseEncoder() encoder' , ( t ) => testEncoder ( t , base32HexCaseEncoder ( ) , Chars . Base32Hex ) )
33- test ( 'base32HexCaseEncoder(true) encoder' , ( t ) => testEncoder ( t , base32HexCaseEncoder ( true ) , Chars . Base32HexUpper ) )
34- test ( 'decimalEncoder() encoder' , ( t ) => testEncoder ( t , decimalEncoder ( ) , Chars . Decimal ) )
35- test ( 'hexCaseEncoder() encoder' , ( t ) => testEncoder ( t , hexCaseEncoder ( ) , Chars . Hex ) )
36- test ( 'hexCaseEncoder(true) encoder' , ( t ) => testEncoder ( t , hexCaseEncoder ( true ) , Chars . HexUpper ) )
37- test ( 'safe32Encoder() encoder' , ( t ) => testEncoder ( t , safe32Encoder ( ) , Chars . Safe32 ) )
38- test ( 'safe64Encoder encoder' , ( t ) => testEncoder ( t , safe64Encoder ( ) , Chars . Safe64 ) )
39- test ( 'safeAsciiEncoder() encoder' , ( t ) => testEncoder ( t , safeAsciiEncoder ( ) , Chars . SafeAscii ) )
25+ test ( 'alpha() encoder chars' , ( t ) => encoder ( t , alphaEncoder ( ) , Chars . Alpha ) )
26+ test ( 'alphaCase() encoder chars' , ( t ) => encoder ( t , alphaCaseEncoder ( ) , Chars . AlphaLower ) )
27+ test ( 'alphaCase(true) encoder chars' , ( t ) => encoder ( t , alphaCaseEncoder ( true ) , Chars . AlphaUpper ) )
28+ test ( 'alphaNumEncoder() encoder chars' , ( t ) => encoder ( t , alphaNumEncoder ( ) , Chars . AlphaNum ) )
29+ test ( 'alphaNumCaseEncoder() encoder chars' , ( t ) => encoder ( t , alphaNumCaseEncoder ( ) , Chars . AlphaNumLower ) )
30+ test ( 'alphaNumCaseEncoder(true) encoder chars' , ( t ) => encoder ( t , alphaNumCaseEncoder ( true ) , Chars . AlphaNumUpper ) )
31+ test ( 'base32Encoder() encoder chars' , ( t ) => encoder ( t , base32Encoder ( ) , Chars . Base32 ) )
32+ test ( 'base32HexCaseEncoder() encoder chars' , ( t ) => encoder ( t , base32HexCaseEncoder ( ) , Chars . Base32Hex ) )
33+ test ( 'base32HexCaseEncoder(true) encoder chars' , ( t ) => encoder ( t , base32HexCaseEncoder ( true ) , Chars . Base32HexUpper ) )
34+ test ( 'decimalEncoder() encoder chars' , ( t ) => encoder ( t , decimalEncoder ( ) , Chars . Decimal ) )
35+ test ( 'hexCaseEncoder() encoder chars' , ( t ) => encoder ( t , hexCaseEncoder ( ) , Chars . Hex ) )
36+ test ( 'hexCaseEncoder(true) encoder chars' , ( t ) => encoder ( t , hexCaseEncoder ( true ) , Chars . HexUpper ) )
37+ test ( 'safeAsciiEncoder() encoder chars' , ( t ) => encoder ( t , safeAsciiEncoder ( ) , Chars . SafeAscii ) )
38+ test ( 'safe32Encoder() encoder chars' , ( t ) => encoder ( t , safe32Encoder ( ) , Chars . Safe32 ) )
39+ test ( 'safe64Encoder encoder chars' , ( t ) => encoder ( t , safe64Encoder ( ) , Chars . Safe64 ) )
40+ test ( 'symbolEncoder() encoder chars' , ( t ) => encoder ( t , symbolEncoder ( ) , Chars . Symbol ) )
0 commit comments