package Ġco il . compose . utils Ċ Ċ import Ġandroid . content . Content Resolver Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . annotation . Float Range Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . compose . ui . graphics . Image Bitmap Ċ import Ġandroidx . compose . ui . graphics . as Android Bitmap Ċ import Ġandroidx . core . graphics . apply Canvas Ċ import Ġandroidx . core . graphics . create Bitmap Ċ import Ġandroidx . core . graphics . drawable . to Bitmap Ċ import Ġandroidx . core . net . to Uri Ċ import Ġandroidx . test . platform . app . Instrumentation Registry Ċ import Ġco il . decode . Decode Utils Ċ import Ġco il . size . Scale Ċ import Ġco il . util . assertIs Similar To Ċ Ċ fun Ġresource Uri (@ Id Res Ġres Id : ĠInt ): ĠUri Ġ{ ĊĠĠĠ Ġval ĠpackageName Ġ= ĠInstrument ation Registry . get Instrumentation (). target Context . packageName ĊĠĠĠ Ġreturn Ġ"${ Content Resolver . SCHEME _ ANDROID _ RESOURCE } :// $ packageName /$ res Id ". to Uri () Ċ } Ċ Ċ fun ĠImage Bitmap . assertIs Similar To ( ĊĠĠĠ Ġ@ Id Res Ġres Id : ĠInt , ĊĠĠĠ Ġ@ Float Range ( from Ġ= Ġ- 1 . 0 , Ġto Ġ= Ġ 1 . 0 ) Ġthreshold : ĠDouble Ġ= Ġ 0 . 9 Ġ// ĠUse Ġa Ġlower Ġthreshold Ġby Ġdefault . Ċ ) Ġ{ ĊĠĠĠ Ġval Ġcontext Ġ= ĠInstrument ation Registry . get Instrumentation (). target Context ĊĠĠĠ Ġval Ġexpected Ġ= Ġcontext . get Drawable ( res Id ) !!. to Bitmap (). fit Center ( width , Ġheight ) ĊĠĠĠ Ġas Android Bitmap (). assertIs Similar To ( expected , Ġthreshold ) Ċ } Ċ Ċ private Ġfun ĠBitmap . fit Center ( width : ĠInt , Ġheight : ĠInt ): ĠBitmap Ġ{ ĊĠĠĠ Ġval Ġinput Ġ= Ġthis . apply Ġ{ Ġdensity Ġ= ĠBitmap . D ENS ITY _ NONE Ġ} ĊĊĠĠĠ Ġreturn Ġcreate Bitmap ( width , Ġheight ). apply Canvas Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠDraw Ġthe Ġwhite Ġbackground Ġto Ġmatch Ġthe Ġtest Ġbackground . ĊĠĠĠĠĠĠĠ Ġdraw Color ( Color . WHITE ) ĊĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= ĠDecode Utils . compute Size Multiplier ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Width Ġ= Ġinput . width , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Height Ġ= Ġinput . height , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdst Width Ġ= Ġwidth , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdst Height Ġ= Ġheight , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= ĠScale . FIT ĊĠĠĠĠĠĠĠ Ġ). toFloat () ĊĠĠĠĠĠĠĠ Ġval Ġdx Ġ= Ġ( width Ġ- Ġscale Ġ* Ġinput . width ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġdy Ġ= Ġ( height Ġ- Ġscale Ġ* Ġinput . height ) Ġ/ Ġ 2 ĊĊĠĠĠĠĠĠĠ Ġtranslate ( dx , Ġdy ) ĊĠĠĠĠĠĠĠ Ġscale ( scale , Ġscale ) ĊĠĠĠĠĠĠĠ Ġdraw Bitmap ( input , Ġ 0 f , Ġ 0 f , Ġnull ) ĊĠĠĠ Ġ} Ċ } Ċ