package Ġio . em 2 m . simp lex . std Ċ Ċ import Ġio . em 2 m . simp lex . Simp lex Ċ import Ġio . em 2 m . simp lex . model . Basic Key Resolver Ċ import Ġio . em 2 m . simp lex . model . Const Key Handler Ċ import Ġio . em 2 m . simp lex . model . Key Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assertEquals ĊĊ Ċ class ĠArray Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġkey Resolver Ġ= ĠBasic Key Resolver ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey (" ns ", Ġ" key 1 ") Ġto ĠConst Key Handler ( listOf (" A ", Ġ" B ", Ġ" C ")), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey (" ns ", Ġ" key 2 ") Ġto ĠConst Key Handler (" value 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey (" ns ", Ġ" pie ") Ġto ĠConst Key Handler ( 3 . 1 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey (" ns ", Ġ" duration ") Ġto ĠConst Key Handler ( 2 1 0 _ 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey (" ns ", Ġ" five ") Ġto ĠConst Key Handler ( 5 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. delegate ( Numbers . keys ) ĊĊĊĠĠĠ Ġval Ġsimp lex Ġ= ĠSimp lex (). keys ( key Resolver ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Size Ġof Ġthe Ġarray Ġusing Ġa Ġpipe `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsimp lex . eval ("\ ${ ns : key 1 Ġ| Ġsize }", Ġempty Map ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` First Ġitem Ġin Ġthe Ġarray `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsimp lex . eval ("\ ${ ns : key 1 Ġ| Ġfirst }", Ġempty Map ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" A ", Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Last Ġitem Ġin Ġthe Ġarray `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsimp lex . eval ("\ ${ ns : key 1 Ġ| Ġlast }", Ġempty Map ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" C ", Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Re versed Ġitems Ġin Ġthe Ġarray `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsimp lex . eval ("\ ${ ns : key 1 Ġ| Ġreversed Ġ| Ġfirst }", Ġempty Map ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" C ", Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Slice () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult 1 Ġ= Ġsimp lex . eval ("\ ${ ns : key 1 Ġ| Ġslice : 0 : 0 }", Ġempty Map ()) ĊĠĠĠĠĠĠĠ Ġval Ġresult 2 Ġ= Ġsimp lex . eval ("\ ${ ns : key 1 Ġ| Ġslice : 0 : 1 }", Ġempty Map ()) ĊĠĠĠĠĠĠĠ Ġval Ġresult 3 Ġ= Ġsimp lex . eval ("\ ${ ns : key 1 Ġ| Ġslice : 1 : 1 }", Ġempty Map ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" A "), Ġresult 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" A ", Ġ" B "), Ġresult 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf (" B "), Ġresult 3 ) ĊĠĠĠ Ġ} Ċ Ċ }