Burrows–Wheeler transform: Difference between revisions
Content added Content deleted
Line 809: | Line 809: | ||
NB. demonstrate the transform |
NB. demonstrate the transform |
||
A=: <@bwt ;._2 ] 0 :0 |
|||
tests[0] = "banana"; |
tests[0] = "banana"; |
||
tests[1] = "appellee"; |
tests[1] = "appellee"; |
||
Line 854: | Line 854: | ||
tail=. {: |
tail=. {: |
||
mark=. STX , ,&ETX |
mark=. STX , ,&ETX |
||
transform=. tail Rank 1 @: sort @: rotations @: mark @: verify |
|||
EXPECT=. ETX , 'ANNB' , STX , 'AA' |
EXPECT=. ETX , 'ANNB' , STX , 'AA' |
||
assert. EXPECT -: |
assert. EXPECT -: transform 'BANANA' |
||
unscramble=. (,Rank 0 1 sort)^:(#@[)&(i.0) |
unscramble=. (,Rank 0 1 sort)^:(#@[)&(i.0) |
||
Line 864: | Line 864: | ||
curtail=. }: |
curtail=. }: |
||
erase_mark =. behead @: curtail |
erase_mark =. behead @: curtail |
||
restore=. erase_mark @: (from~ find) @: unscramble |
|||
assert. 'BANANA' -: |
assert. 'BANANA' -: restore EXPECT |
||
obverse=. :. |
obverse=. :. |
||
fixed=. f. |
fixed=. f. |
||
bwt=: |
bwt=: transform obverse restore fixed |
||
assert (-: ]&.:bwt)'same under transformation' |
assert (-: ]&.:bwt)'same under transformation' |