package Ġit . uni bo . tup ro log . core . test utils Ċ Ċ import Ġit . uni bo . tup ro log . core . Scope Ċ import Ġit . uni bo . tup ro log . core . Var Ċ import Ġit . uni bo . tup ro log . core . test utils . Assertion Utils . on Corre sponding Items Ċ import Ġit . uni bo . tup ro log . core . test utils . Scope Utils . non Empty Scopes Ċ import Ġkotlin . test . assertEquals Ċ Ċ /** Ċ Ġ* ĠUtils Ġsingleton Ġfor Ġtesting Ġ[ Scope ] Ċ Ġ* Ċ Ġ* Ġ@ author ĠEn ric o Ċ Ġ*/ Ċ internal Ġobject ĠScope Utils Ġ{ ĊĊĠĠĠ Ġ/** ĠReturns Ġan Ġempty ĠScope Ġ*/ ĊĠĠĠ Ġinternal Ġval Ġempty Scope ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmutable Map Of < String , ĠVar >() ĊĊĠĠĠ Ġ/** ĠContains Ġsome Ġnon Ġempty Ġvariable ĠS copes Ġ*/ ĊĠĠĠ Ġinternal Ġval Ġnon Empty Scopes ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Map Of (" X " Ġto ĠVar . of (" X ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Map Of (" H " Ġto ĠVar . of (" H "), Ġ" T " Ġto ĠVar . of (" T ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Map Of (" A " Ġto ĠVar . of (" A "), Ġ" B " Ġto ĠVar . of (" B "), Ġ" C " Ġto ĠVar . of (" C ")) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠ Ġ/** ĠContains Ġthe Ġvariables Ġinside Ġ[ non Empty Scopes ] Ġ*/ ĊĠĠĠ Ġinternal Ġval Ġnon Empty Scope Vars ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġnon Empty Scopes . map Ġ{ Ġit . values . toList () Ġ} ĊĊĠĠĠ Ġ/** ĠContains Ġthe Ġvariable Ġnames Ġinside Ġ[ non Empty Scopes ] Ġ*/ ĊĠĠĠ Ġinternal Ġval Ġnon Empty Scope Var Names ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġnon Empty Scope Vars . map Ġ{ Ġvars Ġ-> Ġvars . map Ġ{ Ġit . name Ġ} Ġ} ĊĊĠĠĠ Ġ/** ĠContains Ġmixed Ġ[ non Empty Scopes ] Ġand Ġthe Ġ[ empty Scope ] Ġ*/ ĊĠĠĠ Ġinternal Ġval Ġmixed Scopes ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġnon Empty Scopes Ġ+ Ġempty Scope ĊĊĠĠĠ Ġ/** ĠAssert s Ġthat Ġtwo ĠScope ĠMaps Ġhave Ġsame Ġkeys Ġ( Var Ġnames ) Ġand , Ġon Ġthe Ġvalue Ġside , Ġonly ĠVar Ġname Ġin Ġcommon Ġ*/ ĊĠĠĠ Ġinternal Ġfun Ġassert Scope Correct Contents ( expected : ĠMap < String , ĠVar >, Ġactual : ĠMap < String , ĠVar >) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected . keys , Ġactual . keys ) ĊĠĠĠĠĠĠĠ Ġon Corre sponding Items ( expected . values , Ġactual . values , ĠVar Utils :: assert Different Variable Except For Name ) ĊĠĠĠ Ġ} Ċ } Ċ