package Ġpl . po zn an . put . mio ib . algorithm . mut ators . ls Ċ Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠUpper Triangle Ne ighbour hood Explorer Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Explore Whole Space In Given Order () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġseq Ġ= Ġint ArrayOf ( 0 , Ġ 1 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġexploration Order Ġ= Ġmutable ListOf < Pair < Int , ĠInt >>() ĊĠĠĠĠĠĠĠ ĠUpper Triangle Ne ighbour hood Explorer . explore ( seq ) Ġ{ Ġfrom , Ġto Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexploration Order Ġ+= ĠPair ( from , Ġto ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( 0 Ġto Ġ 1 , Ġ 0 Ġto Ġ 2 , Ġ 1 Ġto Ġ 2 ), Ġexploration Order ) Ġ{ Ġ" wrong Ġexploration Ġorder " Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return When Satisf ied () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġseq Ġ= Ġint ArrayOf ( 0 , Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġvar Ġcall Counter Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ ĠUpper Triangle Ne ighbour hood Explorer . explore ( seq ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Counter ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġcall Counter ) Ġ{ Ġ" should Ġbe Ġcalled Ġexactly Ġonce " Ġ} ĊĠĠĠ Ġ} Ċ } Ċ