package Ġarray Ċ Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails With Ċ Ċ class ĠFind Index Test Ġ: ĠA PL Test () Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsingle Index () Ġ{ ĊĠĠĠĠĠĠĠ Ġparse AP L Expression (" 3 0 Ġâ į ³ Ġ 1 0 Ġ 2 0 Ġ 3 0 Ġ 4 0 "). let Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Dimension ( dimensions Of Size ( 4 ), Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Array Content ( array Of ( 1 , Ġ 1 , Ġ 0 , Ġ 1 ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmulti Indexes () Ġ{ ĊĠĠĠĠĠĠĠ Ġparse AP L Expression (" 1 0 Ġ 6 0 Ġâ į ³ Ġ 1 0 Ġ 2 0 Ġ 3 0 Ġ 4 0 Ġ 5 0 Ġ 6 0 "). let Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Dimension ( dimensions Of Size ( 6 ), Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Array Content ( array Of ( 0 , Ġ 2 , Ġ 2 , Ġ 2 , Ġ 2 , Ġ 1 ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġindex Test Plain () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Simple Number ( 1 , Ġparse AP L Expression (" 1 0 Ġ 2 0 Ġ 3 0 Ġ 4 0 Ġ 5 0 Ġâ į ³ Ġ 2 0 ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġindex Test Multi Arg () Ġ{ ĊĠĠĠĠĠĠĠ Ġparse AP L Expression (" 1 0 Ġ 2 0 Ġ 3 0 Ġ 4 0 Ġ 5 0 Ġ 6 0 Ġ 7 0 Ġ 8 0 Ġ 9 0 Ġâ į ³ Ġ 1 0 Ġ 5 0 "). let Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Dimension ( dimensions Of Size ( 2 ), Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Array Content ( array Of ( 0 , Ġ 4 ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġindex No Index Found () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Simple Number ( 4 , Ġparse AP L Expression (" 1 0 Ġ 2 0 Ġ 3 0 Ġ 4 0 Ġâ į ³ Ġ 1 ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġindex NotFound Multi Arg () Ġ{ ĊĠĠĠĠĠĠĠ Ġparse AP L Expression (" 1 0 Ġ 2 0 Ġ 3 0 Ġ 4 0 Ġâ į ³ Ġ 1 Ġ 2 "). let Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Dimension ( dimensions Of Size ( 2 ), Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Array Content ( array Of ( 4 , Ġ 4 ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġindex With Multi Dimension al Left Arg () Ġ{ ĊĠĠĠĠĠĠĠ Ġparse AP L Expression (" 9 Ġ 6 Ġ 1 Ġ 2 Ġ 0 Ġâ į ³ Ġ( 2 Ġ 2 Ġâ į ´ Ġâ į ³ 4 ) "). let Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Dimension ( dimensions Of Size ( 2 , Ġ 2 ), Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Array Content ( array Of ( 4 , Ġ 2 , Ġ 3 , Ġ 5 ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġindex With Optim isation 0 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( result , Ġout ) Ġ= Ġparse AP L Expression With Output ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| a Ġâ ĩ Ĳ Ġ{ Ġio : print Ġâ į µ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ( a Â ¨ Ġ 1 0 Ġ 1 1 Ġ 1 2 Ġ 1 3 Ġ 1 4 Ġ 1 5 Ġ 1 6 ) Ġâ į ³ Ġ 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin ()) ĊĠĠĠĠĠĠĠ Ġassert Simple Number ( 2 , Ġresult ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 0 1 1 1 2 ", Ġout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġindex With Optim isation 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( result , Ġout ) Ġ= Ġparse AP L Expression With Output ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| a Ġâ ĩ Ĳ Ġ{ Ġio : print Ġâ į µ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ( a Â ¨ Ġ 1 0 Ġ 1 1 Ġ 1 2 Ġ 1 3 Ġ 1 4 Ġ 1 5 Ġ 1 6 ) Ġâ į ³ Ġ 1 1 Ġ 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin ()) ĊĠĠĠĠĠĠĠ Ġassert Dimension ( dimensions Of Size ( 2 ), Ġresult ) ĊĠĠĠĠĠĠĠ Ġassert Array Content ( array Of ( 1 , Ġ 2 ), Ġresult ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 0 1 1 1 0 1 1 1 2 ", Ġout ) ĊĠĠĠ Ġ} Ċ } Ċ