package Ġco . l lect ive . hy ena . repl Ċ Ċ import Ġco . l lect ive . hy ena . api .* Ċ import Ġjava . math . BigInteger Ċ import Ġjava . util .* Ċ import Ġjava . util . Locale ĊĊ Ċ /** ĠThis Ġobject Ġcontains Ġa Ġset Ġof Ġutility Ġfunction Ġto Ġhelp Ġplay Ġwith Ġthe ĠREPL Ġ*/ Ċ object ĠHelper Ġ{ ĊĠĠĠ Ġval Ġupper Ġ= Ġ" ABCDEF GH IJ KL MN OP Q RST UV W XYZ " ĊĠĠĠ Ġval Ġlower Ġ= Ġupper . toLowerCase ( Locale . ROOT ) ĊĠĠĠ Ġval Ġdigits Ġ= Ġ" 0 1 2 3 4 5 6 7 8 9 " ĊĠĠĠ Ġval Ġal phanum Ġ= Ġupper Ġ+ Ġlower Ġ+ Ġdigits ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġrandom Timestamp s ( n : ĠInt ): ĠList < Long > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠArrayList < Long >( n ) ĊĠĠĠĠĠĠĠ Ġval Ġgenerator Ġ= ĠRandom () ĊĠĠĠĠĠĠĠ Ġ( 0 Ġuntil Ġn ). map Ġ{ Ġlist . add ( Math . abs ( generator . next Long ())) Ġ} ĊĠĠĠĠĠĠĠ Ġlist . sort () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġrandom String Of Random Length ( generator : ĠRandom ): ĠString Ġ= Ġrandom String ( generator , Ġgenerator . nextInt ( 2 5 6 )) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġrandom String ( generator : ĠRandom , Ġlength : ĠInt ): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 0 .. length ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ({ Ġ_ Ġ-> Ġal phanum [ generator . nextInt ( al phanum . length )] Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString () ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġrandom String Block ( n : ĠInt ): ĠString Block Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblock Ġ= Ġcreate Block ( n , ĠBlock Type . String Dense ) Ġas ĠString Block ĊĠĠĠĠĠĠĠ Ġval Ġgenerator Ġ= ĠRandom () ĊĠĠĠĠĠĠĠ Ġ( 0 Ġuntil Ġn ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock . add ( random String Of Random Length ( generator )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġblock ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static () ĊĠĠĠ Ġfun Ġrandom Dense Block ( n : ĠInt , Ġtype : ĠBlock Type ): ĠBlock Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblock : ĠDense Block < *> Ġ= Ġcreate Block ( n , Ġtype ) Ġas ĠDense Block < *> ĊĠĠĠĠĠĠĠ Ġval Ġgenerator Ġ= ĠRandom () ĊĠĠĠĠĠĠĠ Ġ( 0 Ġuntil Ġn ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock . add ( when Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 8 Dense Ġ-> Ġ( generator . nextInt ( 2 5 6 ) Ġ- Ġ 1 2 8 ). to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 1 6 Dense Ġ-> Ġ( generator . nextInt ( 6 5 5 3 6 ) Ġ- Ġ 3 2 7 6 8 ). to Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 3 2 Dense Ġ-> Ġgenerator . nextInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 6 4 Dense Ġ-> Ġgenerator . next Long () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 8 Dense Ġ-> Ġgenerator . nextInt ( 2 5 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 1 6 Dense Ġ-> Ġgenerator . nextInt ( 6 5 5 3 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 3 2 Dense Ġ-> Ġgenerator . nextInt ( Int . MAX _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 6 4 Dense Ġ-> ĠMath . abs ( generator . next Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" random Dense Column Ġcannot Ġbe Ġused Ġto Ġbuild Ġsparse Ġor ĠString Ġcolumn ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġblock ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġrandom Sparse Block ( n : ĠInt , Ġtype : ĠBlock Type ): ĠSparse Block < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsparse Block Ġ= Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 8 Sparse Ġ-> ĠSparse Block < Byte >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 1 6 Sparse Ġ-> ĠSparse Block < Short >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 3 2 Sparse Ġ-> ĠSparse Block < Int >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 6 4 Sparse Ġ-> ĠSparse Block < Long >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 8 Sparse Ġ-> ĠSparse Block < Short >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 1 6 Sparse Ġ-> ĠSparse Block < Int >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 3 2 Sparse Ġ-> ĠSparse Block < Long >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 6 4 Sparse Ġ-> ĠSparse Block < BigInteger >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" cannot Ġcreate Ġrandom Ġblock Ġfor Ġ$ type Ġblock Ġtype ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfill Random Sparse Block ( sparse Block , Ġn ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġprivate Ġfun Ġ< T Ġ: ĠNumber > Ġfill Random Sparse Block ( sparse Block : ĠSparse Block < T >, Ġn : ĠInt ): ĠSparse Block < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgenerator Ġ= ĠRandom () ĊĠĠĠĠĠĠĠ Ġval Ġoffsets Ġ= Ġ( 0 Ġuntil Ġn ). map Ġ{ Ġgenerator . nextInt ( Int . MAX _ VALUE ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġvalue List : ĠMutable List < T > Ġ= ĠArrayList ( n ) ĊĠĠĠĠĠĠĠ Ġ( 0 Ġuntil Ġn ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( sparse Block . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 8 Sparse Ġ-> Ġvalue List . add (( generator . nextInt ( 2 5 6 ) Ġ- Ġ 1 2 8 ). to Byte () Ġas ĠT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 1 6 Sparse Ġ-> Ġvalue List . add (( generator . nextInt ( 6 5 5 3 6 ) Ġ- Ġ 3 2 7 6 8 ). to Short () Ġas ĠT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 3 2 Sparse Ġ-> Ġvalue List . add ( generator . nextInt () Ġas ĠT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 6 4 Sparse Ġ-> Ġvalue List . add ( generator . next Long () Ġas ĠT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 8 Sparse Ġ-> Ġvalue List . add ( generator . nextInt ( 2 5 6 ) Ġas ĠT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 1 6 Sparse Ġ-> Ġvalue List . add ( generator . nextInt ( 6 5 5 3 6 ) Ġas ĠT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 3 2 Sparse Ġ-> Ġvalue List . add ( generator . nextInt ( Int . MAX _ VALUE ) Ġas ĠT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 6 4 Sparse Ġ-> Ġvalue List . add ( Math . abs ( generator . next Long ()) Ġas ĠT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" random Sparse Column Ġcannot Ġbe Ġcreated Ġfor Ġ" Ġ+ Ġsparse Block . type Ġ+ Ġ" Ġtype ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoffsets . zip ( value List ). forEach Ġ{ Ġ( index , Ġvalue ) Ġ-> Ġsparse Block . add ( index , Ġvalue ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsparse Block ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġconvert Value ( value : ĠString , Ġtype : ĠFilter Type ): ĠAny Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Type . I 8 Ġ-> Ġjava . lang . Long . parse Long ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Type . I 1 6 Ġ-> Ġjava . lang . Long . parse Long ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Type . I 3 2 Ġ-> Ġjava . lang . Long . parse Long ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Type . I 6 4 Ġ-> Ġjava . lang . Long . parse Long ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Type . I 1 2 8 Ġ-> ĠTODO () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Type . U 8 Ġ-> Ġjava . lang . Long . parse Long ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Type . U 1 6 Ġ-> Ġjava . lang . Long . parse Long ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Type . U 3 2 Ġ-> Ġjava . lang . Long . parse Long ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Type . U 6 4 Ġ-> Ġjava . lang . Long . parse Long ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Type . U 1 2 8 Ġ-> ĠTODO () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter Type . String Ġ-> Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġcreate Block ( n : ĠInt , Ġtype : ĠBlock Type ): ĠBlock Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 8 Dense Ġ-> ĠDense Block < Byte >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 1 6 Dense Ġ-> ĠDense Block < Short >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 3 2 Dense Ġ-> ĠDense Block < Int >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 6 4 Dense Ġ-> ĠDense Block < Long >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 8 Dense Ġ-> ĠDense Block < Short >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 1 6 Dense Ġ-> ĠDense Block < Int >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 3 2 Dense Ġ-> ĠDense Block < Long >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 6 4 Dense Ġ-> ĠDense Block < BigInteger >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 8 Sparse Ġ-> ĠSparse Block < Byte >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 1 6 Sparse Ġ-> ĠSparse Block < Short >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 3 2 Sparse Ġ-> ĠSparse Block < Int >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . I 6 4 Sparse Ġ-> ĠSparse Block < Long >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 8 Sparse Ġ-> ĠSparse Block < Short >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 1 6 Sparse Ġ-> ĠSparse Block < Int >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 3 2 Sparse Ġ-> ĠSparse Block < Long >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . U 6 4 Sparse Ġ-> ĠSparse Block < BigInteger >( type , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Type . String Dense Ġ-> ĠString Block ( n ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 1 2 8 bit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" implement ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }