@@ -15,17 +15,37 @@ describe('TextMap', () => {
1515 ${ 'fine café' } | ${ [ 200 , 209 ] } | ${ undefined } | ${ [ 205 , 209 ] } | ${ tm ( 'café' , [ 205 , 209 ] ) }
1616 ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 205 , 212 ] } | ${ tm ( 'café' , [ 205 , 212 ] , [ 3 , 3 , 4 , 1 ] ) }
1717 ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 200 , 212 ] } | ${ tm ( 'fine café' , [ 200 , 212 ] , [ 8 , 8 , 4 , 1 ] ) }
18- ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 200 , 213 ] } | ${ tm ( 'fine café ' , [ 200 , 213 ] , [ 8 , 8 , 4 , 1 ] ) }
18+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 200 , 213 ] } | ${ tm ( 'fine café ' , [ 200 , 213 ] , [ 8 , 8 , 4 , 1 , 7 , 7 ] ) }
1919 ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 200 , 219 ] } | ${ tm ( 'fine café coffee' , [ 200 , 219 ] , [ 8 , 8 , 4 , 1 , 7 , 7 ] ) }
2020 ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 ] } | ${ [ 200 , 219 ] } | ${ tm ( 'fine café coffee' , [ 200 , 219 ] , [ 8 , 8 , 4 , 1 ] ) }
2121 ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 ] } | ${ [ 205 , 212 ] } | ${ tm ( 'café' , [ 205 , 212 ] , [ 3 , 3 , 4 , 1 ] ) }
2222 ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 ] } | ${ [ 205 , 219 ] } | ${ tm ( 'café coffee' , [ 205 , 219 ] , [ 3 , 3 , 4 , 1 ] ) }
23+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 ] } | ${ [ 201 , 202 ] } | ${ tm ( 'i' , [ 201 , 202 ] ) }
24+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 ] } | ${ [ 201 , 202 ] } | ${ tm ( 'i' , [ 201 , 202 ] ) }
2325 ` ( 'extractTextMap $text $range $map $extRange' , ( { text, range, map, extRange, expected } ) => {
2426 const tm = { text, range, map } ;
2527 const r = extractTextMapRangeOrigin ( tm , extRange ) ;
2628 expect ( r ) . toEqual ( expected ) ;
2729 } ) ;
2830
31+ test . each `
32+ text | range | map | extRange | expected
33+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 ] } | ${ [ 208 , 208 ] } | ${ tm ( '' , [ 208 , 208 ] , [ 4 , 1 ] ) }
34+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 ] } | ${ [ 208 , 209 ] } | ${ tm ( '' , [ 208 , 209 ] , [ 4 , 1 ] ) }
35+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 208 , 210 ] } | ${ tm ( '' , [ 208 , 210 ] , [ 4 , 1 ] ) }
36+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 208 , 211 ] } | ${ tm ( '' , [ 208 , 211 ] , [ 4 , 1 ] ) }
37+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 208 , 212 ] } | ${ tm ( 'é' , [ 208 , 212 ] , [ 4 , 1 ] ) }
38+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 208 , 213 ] } | ${ tm ( 'é ' , [ 208 , 213 ] , [ 4 , 1 , 7 , 7 ] ) }
39+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 209 , 212 ] } | ${ tm ( 'é' , [ 209 , 212 ] , [ 3 , 1 ] ) }
40+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 210 , 212 ] } | ${ tm ( 'é' , [ 210 , 212 ] , [ 2 , 1 ] ) }
41+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 211 , 212 ] } | ${ tm ( 'é' , [ 211 , 212 ] , [ 0 , 0 , 1 , 1 ] ) }
42+ ${ 'fine café coffee' } | ${ [ 200 , 219 ] } | ${ [ 8 , 8 , 4 , 1 , 7 , 7 ] } | ${ [ 212 , 212 ] } | ${ tm ( '' , [ 212 , 212 ] ) }
43+ ` ( 'extractTextMap edge cases $text $range $map $extRange' , ( { text, range, map, extRange, expected } ) => {
44+ const tm = { text, range, map } ;
45+ const r = extractTextMapRangeOrigin ( tm , extRange ) ;
46+ expect ( r ) . toEqual ( expected ) ;
47+ } ) ;
48+
2949 test . each `
3050 range | intersectRange | expected
3151 ${ [ 0 , 100 ] } | ${ [ 50 , 200 ] } | ${ true }
0 commit comments