package Ġcom . ac orn ui . collection Ċ Ċ import Ġcom . ac orn ui . test . assert List Equals Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠArray UtilsTest Ġ{ ĊĊ ĉ @ Test Ġfun Ġdouble Array Add () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert List Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 4 . 0 ). add ( 1 , Ġdouble ArrayOf ( 2 . 0 , Ġ 3 . 0 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert List Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 ). add ( 2 , Ġdouble ArrayOf ( 3 . 0 , Ġ 4 . 0 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert List Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 3 . 0 , Ġ 4 . 0 ). add ( 0 , Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert List Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ). add ( 0 , Ġdouble ArrayOf ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert List Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf (). add ( 0 , Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 )) ĊĠĠĠĠĠĠĠ Ġ) Ċ ĉ } ĊĉĊ ĉ @ Test Ġfun Ġdouble Array Remove () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert List Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 4 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ). remove ( 1 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert List Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ). remove ( 0 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert List Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ). remove ( 2 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert List Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ). remove ( 2 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert List Equals ( double ArrayOf (), Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ). remove ( 0 , Ġ 4 )) Ċ ĉ } ĊĉĊ ĉ @ Test Ġfun Ġdouble Array Get Insertion Index () Ġ{ Ċĉ ĉ assertEquals ( 1 , Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ). get Insertion Index ( 1 . 0 )) Ċĉ ĉ assertEquals ( 4 , Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ). get Insertion Index ( 4 . 0 )) Ċĉ ĉ assertEquals ( 2 , Ġdouble ArrayOf ( 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 , Ġ 4 . 0 ). get Insertion Index ( 2 . 0 )) ĊĊĉ ĉ assertEquals ( 2 , Ġdouble ArrayOf ( 1 . 0 , Ġ 9 . 0 , Ġ 2 . 0 , Ġ 1 0 . 0 , Ġ 3 . 0 , Ġ 1 1 . 0 , Ġ 4 . 0 , Ġ 1 3 . 0 ). get Insertion Index ( 1 . 0 , Ġstride Ġ= Ġ 2 )) Ċĉ ĉ assertEquals ( 8 , Ġdouble ArrayOf ( 1 . 0 , Ġ 9 . 0 , Ġ 2 . 0 , Ġ 1 0 . 0 , Ġ 3 . 0 , Ġ 1 1 . 0 , Ġ 4 . 0 , Ġ 1 3 . 0 ). get Insertion Index ( 4 . 0 , Ġstride Ġ= Ġ 2 )) Ċĉ ĉ assertEquals ( 4 , Ġdouble ArrayOf ( 1 . 0 , Ġ 9 . 0 , Ġ 2 . 0 , Ġ 1 0 . 0 , Ġ 3 . 0 , Ġ 1 1 . 0 , Ġ 4 . 0 , Ġ 1 3 . 0 ). get Insertion Index ( 2 . 0 , Ġstride Ġ= Ġ 2 )) ĊĊĉ ĉ assertEquals ( 3 , Ġdouble ArrayOf (- 1 . 0 , Ġ 1 . 0 , Ġ 9 . 0 , Ġ- 2 . 0 , Ġ 2 . 0 , Ġ 1 0 . 0 , Ġ- 3 . 0 , Ġ 3 . 0 , Ġ 1 1 . 0 , Ġ- 4 . 0 , Ġ 4 . 0 , Ġ 1 3 . 0 ). get Insertion Index ( 1 . 0 , Ġstride Ġ= Ġ 3 , Ġoffset Ġ= Ġ 1 )) Ċĉ ĉ assertEquals ( 1 2 , Ġdouble ArrayOf (- 1 . 0 , Ġ 1 . 0 , Ġ 9 . 0 , Ġ- 2 . 0 , Ġ 2 . 0 , Ġ 1 0 . 0 , Ġ- 3 . 0 , Ġ 3 . 0 , Ġ 1 1 . 0 , Ġ- 4 . 0 , Ġ 4 . 0 , Ġ 1 3 . 0 ). get Insertion Index ( 4 . 0 , Ġstride Ġ= Ġ 3 , Ġoffset Ġ= Ġ 1 )) Ċĉ ĉ assertEquals ( 6 , Ġdouble ArrayOf (- 1 . 0 , Ġ 1 . 0 , Ġ 9 . 0 , Ġ- 2 . 0 , Ġ 2 . 0 , Ġ 1 0 . 0 , Ġ- 3 . 0 , Ġ 3 . 0 , Ġ 1 1 . 0 , Ġ- 4 . 0 , Ġ 4 . 0 , Ġ 1 3 . 0 ). get Insertion Index ( 2 . 0 , Ġstride Ġ= Ġ 3 , Ġoffset Ġ= Ġ 1 )) Ċ ĉ } Ċ }