package Ġcom . an ap lan . engineering . az uki . v dm Ċ Ċ import Ġcom . an ap lan . engineering . az uki . core . system . Check Ċ Ċ interface ĠV dm Check < SC : ĠSystem Context > Ġ: ĠCheck Ġ{ ĊĊĠĠĠ Ġfun Ġbuild ( builder : ĠModule Builder < SC >): ĠModule Builder < SC > ĊĊĠĠĠ Ġfun Ġcheck Equals ( actual : ĠString Ġ= Ġ" actual ", Ġexpected : ĠString Ġ= Ġ" expected ", Ġt oler ant : ĠBoolean Ġ= Ġtrue , Ġmsg : ĠString ? Ġ= Ġnull ) Ġ= ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġnot Ġ$ actual Ġ= Ġ$ expected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthen Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġskip ; ĊĠĠĠĠĠĠĠ Ġ""" Ċ // Ġcan 't Ġrely Ġon Ġprintln Ġbeing Ġavailable Ġat Ġmoment Ċ // ĠĠĠĠĠĠĠ Ġ""" Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġnot Ġ$ actual Ġ= Ġ$ expected Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġthen Ġ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ v dm Println ("* ĠCheck Ġ'${ java Class . simple Name }${ if Ġ( msg Ġ== Ġnull ) Ġ"" Ġelse Ġ": $ msg "} ' Ġfailed Ġ( t oler ant Ġ= Ġ$ t oler ant )"); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ v dm Print (" ĠĠĠ ĠExpected : Ġ"); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ v dm Println ($ expected ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ v dm Print (" ĠĠĠ ĠActual : Ġ"); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ v dm Println ($ actual ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ$ v dm Println ("* ĠCheck Ġ'${ java Class . simple Name }${ if Ġ( msg Ġ== Ġnull ) Ġ"" Ġelse Ġ": $ msg "} ' Ġpassed "); Ċ // ĠĠĠĠĠĠĠ Ġ""" Ċ Ċ } Ċ Ċ type alias ĠDefault V dm Check Ġ= ĠV dm Check < Empty System Context > Ċ Ċ val Ġto Default V dm Check : Ġ( Check ) Ġ-> ĠDefault V dm Check Ġ= Ġ{ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġit Ġas ? ĠDefault V dm Check Ġ?: Ġthrow ĠIllegalArgumentException (" Invalid Ġcheck : Ġ$ it ") Ċ } ĊĊ