package Ġcom . m cc or by . open min ed . worker . datasource . mapper Ċ Ċ import Ġcom . m cc or by . open min ed . worker . domain . Sy ft Message Ċ import Ġcom . m cc or by . open min ed . worker . domain . Sy ft Operand Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ import Ġorg . msg pack . core . Message Pack Ċ import Ġorg . msg pack . value . Value Ċ import Ġorg . msg pack . value . impl . Immutable Array Value Impl Ċ import Ġorg . msg pack . value . impl . Immutable Long Value Impl Ċ import Ġorg . msg pack . value . impl . Immutable StringValue Impl Ċ Ċ class ĠMap pers Kt Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Given Ġa Ġmsg pack Ġbyte Ġarray Ġcontaining Ġa ĠSet ĠObject Ġoperation Ġand Ġa Ġtensor Ġthe Ġmapper Ġreturns Ġthe Ġcorresponding ĠSy ft Message `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ[ 2 ,[ 2 ,[ 0 ,[ 2 7 5 4 8 7 9 8 3 0 7 ," the _ binary _ stuff ", null , null , null , null ]] ]] ĊĠĠĠĠĠĠĠ Ġ// Ġ( 2 7 , Ġ( 2 , Ġ( 1 3 , Ġ( 3 7 0 6 9 7 5 6 5 7 2 , Ġb '< T ENSOR >', ĠNone , ĠNone , ĠNone , ĠNone )))) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġtensor As Bytes Ġ= ĠByteArray ( 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġtensor Id Ġ= Ġ 6 8 3 0 L ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠSy ft Message . Set Object ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSy ft Operand . Sy ft Tensor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtensor Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtensor As Bytes . content ToString (). toByteArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtensor Array Ġ= Ġpack Tensor ( tensor Id , Ġtensor As Bytes ) ĊĊĠĠĠĠĠĠĠ Ġval Ġoperation Array Ġ= Ġpack Send Object ( pack Tuple ( tensor Array )) ĊĊĠĠĠĠĠĠĠ Ġval Ġpack er Ġ= ĠMessage Pack . new Default Buffer Pack er () ĊĠĠĠĠĠĠĠ Ġpack er . pack Value ( Immutable Array Value Impl ( array Of ( operation Array ))) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġsy ft Message Ġ= Ġpack er . toByteArray (). map To Sy ft Message () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertTrue ( sy ft Message Ġis ĠSy ft Message . Set Object ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġsy ft Message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Given Ġa Ġmsg pack Ġbyte Ġarray Ġcontaining Ġan ĠAdd Ġoperation Ġand Ġtwo Ġpointers Ġthe Ġmapper Ġreturns Ġthe Ġcorresponding ĠSy ft Message `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠNOTE ĠRemoving . ĠThese Ġtests Ġhave Ġa Ġstrong Ġdependency Ġon Ġmsg pack . ĠThe Ġwhole Ġserde Ġsystem Ġis Ġbeing Ġref actored Ġin ĠPy Sy ft ĊĠĠĠĠĠĠĠ Ġ// Ġwhich Ġwill Ġcause Ġthis Ġexpensive - to - maint ain Ġtest Ġuseless Ċ // ĠĠĠĠĠĠĠ Ġ// Ġ[ 2 ,[ 1 ,[ 2 , [[ 2 , [" __ add __ ",[ 1 1 ,[ 3 5 0 5 6 0 0 8 4 4 1 , 7 3 6 0 9 0 2 3 5 2 7 , 0 , null ,[ 5 ]] ],[ 2 , [[ 1 1 ,[ 5 3 2 0 2 0 3 3 7 2 , 9 3 5 0 4 6 6 4 2 0 5 , 0 , null ,[ 5 ]] ]] ],[ 5 , {} ]] ],[ 3 ,[ 3 4 4 0 2 5 6 0 4 1 5 ]] ]] ]] Ċ // ĠĠĠĠĠĠĠ Ġ// Ġ( 2 6 , Ġ( 1 , Ġ(( 6 , Ġ(( 5 , Ġ( b ' __ add __ ', )), Ġ( 2 0 , Ġ( 6 8 1 5 0 4 1 3 1 3 9 , Ġ 1 8 8 8 1 0 2 2 5 2 5 , Ġ' alice ', ĠNone , Ġ( 1 0 , Ġ( 5 , )), ĠTrue )), Ġ( 6 , Ġ(( 2 0 , Ġ( 5 0 9 4 9 3 2 3 3 5 5 , Ġ 8 0 4 9 0 5 5 6 8 9 , Ġ' alice ', ĠNone , Ġ( 1 0 , Ġ( 5 , )), ĠTrue )), )), Ġ( 0 , Ġ( )))), Ġ( 1 7 5 4 7 3 1 9 5 8 6 , )))) Ċ // ĠĠĠĠĠĠĠ Ġ// ĠAdd Ġis Ġa ĠCMD Ġwith Ġthe Ġfirst Ġoperand Ġand Ġa Ġlist Ġof Ġother Ġoperands Ċ // ĠĠĠĠĠĠĠ Ġval Ġtensor 1 Id Ġ= Ġ 6 8 3 0 L Ċ // ĠĠĠĠĠĠĠ Ġval Ġtensor 2 Id Ġ= Ġ 1 2 3 4 L Ċ // ĠĠĠĠĠĠĠ Ġval Ġtensor Pointer 1 Ġ= ĠSy ft Operand . Sy ft Tensor Pointer ( tensor 1 Id ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġtensor Pointer 2 Ġ= ĠSy ft Operand . Sy ft Tensor Pointer ( tensor 2 Id ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġresult Id Ġ= Ġ 7 7 6 6 L Ċ // ĠĠĠĠĠĠĠ Ġval Ġresult Ids Ġ= ĠlistOf ( result Id ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠSy ft Message . ExecuteCommand ( Sy ft Command . Add ( listOf ( tensor Pointer 1 , Ġtensor Pointer 2 ), Ġresult Ids )) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġpointer 1 Ġ= Ġpack Tensor Pointer ( tensor 1 Id , Ġ 9 9 9 9 ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġpointer 2 Ġ= ĠImmutable Array Value Impl ( array Of < Value >( pack Tensor Pointer ( tensor 2 Id , Ġ 9 9 9 9 ))) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// Ġ[ 2 , [[ 1 1 ,[ 9 9 9 9 , 1 2 3 4 ]] ]] Ċ // ĠĠĠĠĠĠĠ Ġval Ġsecond Oper ands Ġ= Ġpack Tuple ( pointer 2 ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġoperation Ġ= Ġpack Operation ( Command Constants . CMD _ ADD , Ġpointer 1 , Ġsecond Oper ands ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġoperation And Oper ands Array Ġ= Ġpack Tuple ( operation ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġresult Ids Wrapper Ġ= ĠImmutable Array Value Impl ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( Type Constants . TYPE _ LIST . to Long ()), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Array Value Impl ( array Of < Value >( Immutable Long Value Impl ( result Id ))) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġoperation And Result Wrapper Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġpack Tuple ( Immutable Array Value Impl ( array Of < Value >( operation And Oper ands Array , Ġresult Ids Wrapper ))) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġoperation Array Ġ= ĠImmutable Array Value Impl ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( Operation Constants . CMD . to Long ()), Ġ// ĠCMD Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperation And Result Wrapper Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġouter Wrapper Ġ= ĠImmutable Array Value Impl ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( Type Constants . TYPE _ T UP LE . to Long ()), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Array Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġpack er Ġ= ĠMessage Pack . new Default Buffer Pack er () Ċ // ĠĠĠĠĠĠĠ Ġpack er . pack Value ( Immutable Array Value Impl ( array Of ( outer Wrapper ))) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// ĠWhen Ċ // ĠĠĠĠĠĠĠ Ġval Ġsy ft Message Ġ= Ġpack er . toByteArray (). map To Sy ft Message () Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// ĠThen Ċ // ĠĠĠĠĠĠĠ ĠassertTrue ( sy ft Message Ġis ĠSy ft Message . ExecuteCommand ) Ċ // ĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġsy ft Message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Given Ġa Ġmsg pack Ġbyte Ġarray Ġcontaining Ġan ĠDelete Ġoperation Ġthe Ġmapper Ġreturns Ġthe Ġcorresponding ĠSy ft Message `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ[ 4 , 9 3 5 0 4 6 6 4 2 0 5 ] ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġpointer Id Ġ= Ġ 1 2 3 4 L ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠSy ft Message . Delete Object ( pointer Id ) ĊĊĠĠĠĠĠĠĠ Ġval Ġoperation Ġ= ĠImmutable Array Value Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( Operation Constants . OBJ _ DEL . to Long ()), Ġ// ĠThis Ġcorresponds Ġto ĠMap pers . OBJ _ DEL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( pointer Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpack er Ġ= ĠMessage Pack . new Default Buffer Pack er () ĊĠĠĠĠĠĠĠ Ġpack er . pack Value ( Immutable Array Value Impl ( array Of ( operation ))) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġsy ft Message Ġ= Ġpack er . toByteArray (). map To Sy ft Message () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertTrue ( sy ft Message Ġis ĠSy ft Message . Delete Object ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġsy ft Message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Given Ġa Ġmsg pack Ġbyte Ġarray Ġcontaining Ġan ĠGet Ġoperation Ġthe Ġmapper Ġreturns Ġthe Ġcorresponding ĠSy ft Message `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ( 2 8 , Ġ( 3 , Ġ 1 7 5 4 7 3 1 9 5 8 6 )) ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġpointer Id Ġ= Ġ 1 2 3 4 L ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠSy ft Message . GetObject ( pointer Id ) ĊĊĠĠĠĠĠĠĠ Ġval Ġoperation Ġ= ĠImmutable Array Value Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( Operation Constants . OBJ _ REQ . to Long ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Array Value Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( Type Constants . TYPE _ T UP LE . to Long ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( pointer Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpack er Ġ= ĠMessage Pack . new Default Buffer Pack er () ĊĠĠĠĠĠĠĠ Ġpack er . pack Value ( Immutable Array Value Impl ( array Of ( operation ))) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġsy ft Message Ġ= Ġpack er . toByteArray (). map To Sy ft Message () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertTrue ( sy ft Message Ġis ĠSy ft Message . GetObject ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġsy ft Message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpack Operation ( ĊĊĠĠĠĠĠĠĠ Ġoperation : ĠString , ĊĠĠĠĠĠĠĠ Ġpointer : ĠImmutable Array Value Impl , ĊĠĠĠĠĠĠĠ Ġsecond Oper ands : ĠImmutable Array Value Impl ĊĠĠĠ Ġ): ĠImmutable Array Value Impl Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ[ 1 8 , [" __ add __ "]] ĊĠĠĠĠĠĠĠ Ġreturn ĠImmutable Array Value Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Array Value Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( 2 6 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Array Value Impl ( array Of ( Immutable StringValue Impl ( operation ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpointer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecond Oper ands ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpack Tensor Pointer ( tensor Id : ĠLong , Ġorigin Tensor Id : ĠLong ): ĠImmutable Array Value Impl Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ[ 1 1 ,[ 3 5 0 5 6 0 0 8 4 4 1 , 7 3 6 0 9 0 2 3 5 2 7 , 0 , null ,[ 5 ]]] ĊĠĠĠĠĠĠĠ Ġreturn ĠImmutable Array Value Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( Type Constants . TYPE _ T ENSOR _ POINTER . to Long ()), Ġ// ĠType ĠPointer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Array Value Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( origin Tensor Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( tensor Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpack Tensor ( tensor Id : ĠLong , Ġtensor As Bytes : ĠByteArray ): ĠImmutable Array Value Impl Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠImmutable Array Value Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( Type Constants . TYPE _ T ENSOR . to Long ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Array Value Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( tensor Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable StringValue Impl ( tensor As Bytes . content ToString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpack Send Object ( tensor Array : ĠImmutable Array Value Impl ): ĠImmutable Array Value Impl Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠImmutable Array Value Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( Operation Constants . OBJ . to Long ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtensor Array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpack Tuple ( operation Array : ĠImmutable Array Value Impl ): ĠImmutable Array Value Impl Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠImmutable Array Value Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Value >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutable Long Value Impl ( Type Constants . TYPE _ T UP LE . to Long ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }