/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 Ġpan pf Ġ< pan p fp an pf @ outlook . com > Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . github . pan pf . assembly adapter . recycler . test . divider Ċ Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . test . platform . app . Instrumentation Registry Ċ import Ġcom . github . pan pf . assembly adapter . View Item Factory Ċ import Ġcom . github . pan pf . assembly adapter . recycler . Assembly Recycler Adapter Ċ import Ġcom . github . pan pf . assembly adapter . recycler . divider . Assembly Divider Config Ċ import Ġcom . github . pan pf . assembly adapter . recycler . divider . Divider Ċ import Ġcom . github . pan pf . assembly adapter . recycler . divider . internal . Assembly Find Item Factory Class Support Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ import Ġjava . util . Date Ċ Ċ class ĠAssembly Divider Config And Assembly Item Divider Config Test Ġ{ ĊĊĠĠĠ Ġprivate Ġdata Ġclass ĠText ( val Ġtext : ĠString ) ĊĊĠĠĠ Ġprivate Ġclass ĠText Item Factory Ġ: ĠView Item Factory < Text >( Text :: class , Ġ{ Ġcontext , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠ ĠTextView ( context ) ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġprivate Ġdata Ġclass ĠImage ( val Ġres Id : ĠInt ) ĊĊĠĠĠ Ġprivate Ġclass ĠImage Item Factory Ġ: ĠView Item Factory < Image >( Image :: class , Ġ{ Ġcontext , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠ ĠImageView ( context ) ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġprivate Ġclass ĠDate Item Factory Ġ: ĠView Item Factory < Date >( Date :: class , Ġ{ Ġcontext , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠ ĠImageView ( context ) ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠInstrument ation Registry . get Instrumentation (). context ĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= ĠRecyclerView ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠAssembly Recycler Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Text Item Factory (), ĠImage Item Factory (), ĠDate Item Factory ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate (), ĠDate (), ĠDate (), ĠDate (), ĠDate (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate (), ĠDate (), ĠDate (), ĠDate (), ĠDate (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (""), ĠDate (), ĠImage ( android . R . drawable . btn _ default ), ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssembly Divider Config . Builder ( Divider . space ( 1 0 )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisable By Position ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisable By Position ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisable By Span Index ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisable By Item Factory Class ( Text Item Factory :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersonal ise By Position ( 3 , ĠDiv ider . space ( 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersonal ise By Position ( 7 , ĠDiv ider . space ( 7 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersonal ise By Span Index ( 3 , ĠDiv ider . space ( 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersonal ise By Item Factory Class ( Image Item Factory :: class , ĠDiv ider . space ( 2 0 )) ĊĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Assembly Item Divider Config ( context , ĠAssembly Find Item Factory Class Support ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 0 , Ġspan Index Ġ= Ġ 0 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 1 , Ġspan Index Ġ= Ġ 1 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 2 , Ġspan Index Ġ= Ġ 2 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 3 , Ġspan Index Ġ= Ġ 3 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 4 , Ġspan Index Ġ= Ġ 4 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 5 , Ġspan Index Ġ= Ġ 0 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 6 , Ġspan Index Ġ= Ġ 1 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 7 , Ġspan Index Ġ= Ġ 2 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 8 , Ġspan Index Ġ= Ġ 3 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 9 , Ġspan Index Ġ= Ġ 4 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 1 0 , Ġspan Index Ġ= Ġ 0 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 1 1 , Ġspan Index Ġ= Ġ 1 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 1 2 , Ġspan Index Ġ= Ġ 2 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 1 3 , Ġspan Index Ġ= Ġ 3 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Priority () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠInstrument ation Registry . get Instrumentation (). context ĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= ĠRecyclerView ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠAssembly Recycler Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Text Item Factory (), ĠImage Item Factory (), ĠDate Item Factory ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate (), ĠDate (), ĠDate (), ĠDate (), ĠDate (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate (), ĠDate (), ĠDate (), ĠDate (), ĠDate (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (""), ĠDate (), ĠImage ( android . R . drawable . btn _ default ), ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssembly Divider Config . Builder ( Divider . space ( 1 0 )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersonal ise By Position ( 9 , ĠDiv ider . space ( 9 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersonal ise By Item Factory Class ( Date Item Factory :: class , ĠDiv ider . space ( 2 0 )) ĊĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Assembly Item Divider Config ( context , ĠAssembly Find Item Factory Class Support ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( re cyclerView , Ġposition Ġ= Ġ 9 , Ġspan Index Ġ= Ġ 4 )?. getWidth ( true ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }