package Ġcom . ger ard br ad sh aw . v 2 mix up Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Check able Ċ import Ġandroidx . appcompat . widget . Switch Compat Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . test . espress o . Esp ress o . on View Ċ import Ġandroidx . test . espress o . Ui Controller Ċ import Ġandroidx . test . espress o . View Action Ċ import Ġandroidx . test . espress o . assertion . View Assertions . matches Ċ import Ġandroidx . test . espress o . matcher . Bounded Matcher Ċ import Ġandroidx . test . espress o . matcher . View Matchers .* Ċ import Ġorg . hamcrest .* Ċ import Ġorg . hamcrest . Matchers . not Ċ Ċ object ĠTest Util Ġ{ ĊĊĠ Ġfun Ġcheck Is Displayed ( res Id : ĠInt ) Ġ{ ĊĠĠĠ Ġon View ( with Id ( res Id )) ĊĠĠĠĠĠ Ġ. check ( matches ( is Displayed ())) ĊĠ Ġ} ĊĊĠ Ġfun Ġcheck IsNot Displayed ( res Id : ĠInt ) Ġ{ ĊĠĠĠ Ġon View ( with Id ( res Id )) ĊĠĠĠĠĠ Ġ. check ( matches ( not ( is Displayed ()))) ĊĠ Ġ} ĊĊĠ Ġfun Ġnth Child Of ( parent Matcher : ĠMatcher < View ? >, Ġchild Position : ĠInt ): ĠMatcher < View ?> ? Ġ{ ĊĠĠĠ Ġreturn Ġobject Ġ: ĠType Safe Matcher < View ?> () Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġdescribe To ( description : ĠDescription ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription . append Text (" with Ġ$ child Position Ġchild Ġview Ġof Ġtype Ġparent Matcher ") ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmatches S af ely ( view : ĠView ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( view . parent Ġ! is ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparent Matcher . matches ( view . parent ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġval Ġgroup : ĠViewGroup Ġ= Ġview . parent Ġas ĠViewGroup ĊĠĠĠĠĠĠĠĠĠ Ġreturn Ġparent Matcher . matches ( view . parent ) Ġ&& Ġgroup . getChild At ( child Position ) Ġ== Ġview ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġat Position ( position : ĠInt , Ġitem Matcher : ĠMatcher < View ?> ): ĠMatcher < View ?> ? Ġ{ ĊĠĠĠ Ġreturn Ġobject Ġ: ĠBo unded Matcher < View ?, ĠRecyclerView >( RecyclerView :: class . java ) Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġdescribe To ( description : ĠDescription ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription . append Text (" has Ġitem Ġat Ġposition Ġ$ position : Ġ") ĊĠĠĠĠĠĠĠ Ġitem Matcher . describe To ( description ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġmatches S af ely ( view : ĠRecyclerView ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠviewHolder Ġ= Ġview . find ViewHolder For Adapter Position ( position ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġitem Matcher . matches ( view Holder . item View ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġset Checked ( checked : ĠBoolean ): ĠView Action ? Ġ{ ĊĠĠĠ Ġreturn Ġobject Ġ: ĠView Action Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠgetDescription (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" set Ġchecked " ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġget Constraints (): ĠMatcher < View > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis AssignableFrom ( Switch Compat :: class . java ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġperform ( ui Controller : ĠUi Controller , Ġview : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcheck ableView : ĠCheck able Ġ= Ġview Ġas ĠCheck able ĊĠĠĠĠĠĠĠ Ġcheck ableView . isChecked Ġ= Ġchecked ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }