/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ġandroidx . ui . material Ċ Ċ import Ġandroidx . compose . Composable Ċ import Ġandroidx . test . filters . Small Test Ċ import Ġandroidx . ui . core . Alignment Ċ import Ġandroidx . ui . core . Dp Ċ import Ġandroidx . ui . core . First Baseline Ċ import Ġandroidx . ui . core . On Child Position ed Ċ import Ġandroidx . ui . core . Px Ċ import Ġandroidx . ui . core . Px Position Ċ import Ġandroidx . ui . core . Px Size Ċ import Ġandroidx . ui . core . Ref Ċ import Ġandroidx . ui . core . Text Ċ import Ġandroidx . ui . core . dp Ċ import Ġandroidx . ui . core . ip x Ċ import Ġandroidx . ui . core . px Ċ import Ġandroidx . ui . core . round Ċ import Ġandroidx . ui . core . to Px Ċ import Ġandroidx . ui . core . with Density Ċ import Ġandroidx . ui . foundation . Simple Image Ċ import Ġandroidx . ui . graphics . Image Ċ import Ġandroidx . ui . layout . Container Ċ import Ġandroidx . ui . test . create Compose Rule Ċ import Ġcom . google . common . truth . Truth Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ import Ġkotlin . math . round ToInt Ċ Ċ @ Small Test Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠListItem Test Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġcompose Test Rule Ġ= Ġcreate Compose Rule () ĊĊĠĠĠ Ġval Ġicon 2 4 x 2 4 Ġby Ġlazy Ġ{ ĠImage ( width Ġ= Ġ 2 4 . dp . toInt Px (), Ġheight Ġ= Ġ 2 4 . dp . toInt Px ()) Ġ} ĊĠĠĠ Ġval Ġicon 4 0 x 4 0 Ġby Ġlazy Ġ{ ĠImage ( width Ġ= Ġ 4 0 . dp . toInt Px (), Ġheight Ġ= Ġ 4 0 . dp . toInt Px ()) Ġ} ĊĠĠĠ Ġval Ġicon 5 6 x 5 6 Ġby Ġlazy Ġ{ ĠImage ( width Ġ= Ġ 5 6 . dp . toInt Px (), Ġheight Ġ= Ġ 5 6 . dp . toInt Px ()) Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Item _ one Line _ size () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġcompose Test Rule . display Metrics ĊĠĠĠĠĠĠĠ Ġval Ġexpected Height No Icon Ġ= Ġ 4 8 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Height Small Icon Ġ= Ġ 5 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Height Large Icon Ġ= Ġ 7 2 . dp ĊĠĠĠĠĠĠĠ Ġcompose Test Rule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Material Content And Collect Sizes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( text Ġ= Ġ" Primary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Height Equals To ( expected Height No Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Width Equals To Ġ{ Ġdm . width Pixels . ip x Ġ} ĊĠĠĠĠĠĠĠ Ġcompose Test Rule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Material Content And Collect Sizes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( text Ġ= Ġ" Primary Ġtext ", Ġicon Ġ= Ġicon 2 4 x 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Height Equals To ( expected Height Small Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Width Equals To Ġ{ Ġdm . width Pixels . ip x Ġ} ĊĠĠĠĠĠĠĠ Ġcompose Test Rule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Material Content And Collect Sizes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( text Ġ= Ġ" Primary Ġtext ", Ġicon Ġ= Ġicon 5 6 x 5 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Height Equals To ( expected Height Large Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Width Equals To Ġ{ Ġdm . width Pixels . ip x Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Item _ two Line _ size () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġcompose Test Rule . display Metrics ĊĠĠĠĠĠĠĠ Ġval Ġexpected Height No Icon Ġ= Ġ 6 4 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Height With Icon Ġ= Ġ 7 2 . dp ĊĠĠĠĠĠĠĠ Ġcompose Test Rule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Material Content And Collect Sizes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( text Ġ= Ġ" Primary Ġtext ", Ġsecondary Text Ġ= Ġ" Secondary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Height Equals To ( expected Height No Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Width Equals To Ġ{ Ġdm . width Pixels . ip x Ġ} ĊĠĠĠĠĠĠĠ Ġcompose Test Rule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Material Content And Collect Sizes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Primary Ġtext ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Ġ= Ġ" Secondary Ġtext ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġicon 2 4 x 2 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Height Equals To ( expected Height With Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Width Equals To Ġ{ Ġdm . width Pixels . ip x Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Item _ three Line _ size () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġcompose Test Rule . display Metrics ĊĠĠĠĠĠĠĠ Ġval Ġexpected Height Ġ= Ġ 8 8 . dp ĊĠĠĠĠĠĠĠ Ġcompose Test Rule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Material Content And Collect Sizes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġover line Text Ġ= Ġ" OVER LINE ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Primary Ġtext ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Ġ= Ġ" Secondary Ġtext " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Height Equals To ( expected Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Width Equals To Ġ{ Ġdm . width Pixels . ip x Ġ} ĊĠĠĠĠĠĠĠ Ġcompose Test Rule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Material Content And Collect Sizes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Primary Ġtext ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Ġ= Ġ" Secondary Ġtext Ġwith Ġlong Ġtext ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Secondary Text Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Height Equals To ( expected Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Width Equals To Ġ{ Ġdm . width Pixels . ip x Ġ} ĊĠĠĠĠĠĠĠ Ġcompose Test Rule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Material Content And Collect Sizes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġover line Text Ġ= Ġ" OVER LINE ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Primary Ġtext ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Ġ= Ġ" Secondary Ġtext ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta Text Ġ= Ġ" meta " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Height Equals To ( expected Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Width Equals To Ġ{ Ġdm . width Pixels . ip x Ġ} ĊĠĠĠĠĠĠĠ Ġcompose Test Rule ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Material Content And Collect Sizes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Primary Ġtext ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Ġ= Ġ" Secondary Ġtext Ġwith Ġlong Ġtext ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Secondary Text Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta Text Ġ= Ġ" meta " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Height Equals To ( expected Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Width Equals To Ġ{ Ġdm . width Pixels . ip x Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Item _ one Line _ position ing _ no Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Item Height Ġ= Ġ 4 8 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Left Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Right Padding Ġ= Ġ 1 6 . dp ĊĊĠĠĠĠĠĠĠ Ġval Ġtext Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġcompose Test Rule . set Material Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContainer ( alignment Ġ= ĠAlignment . Top Left ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ{ ĠSave Layout ( text Position , Ġtext Size ) Ġ{ ĠText (" Primary Ġtext ") Ġ} Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( trailing Position , Ġtrailing Size ) Ġ{ ĠSimple Image ( icon 2 4 x 2 4 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Density ( compose Test Rule . density ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Position . value !!. x ). isEqualTo ( expected Left Padding . toInt Px (). to Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Position . value !!. y ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( list Item Height . toInt Px () Ġ- Ġtext Size . value !!. height . round ()) Ġ/ Ġ 2 ). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġcompose Test Rule . display Metrics ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( trailing Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdm . width Pixels . px Ġ- Ġtrailing Size . value !!. width Ġ- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Right Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( trailing Position . value !!. y ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( list Item Height . toInt Px () Ġ- Ġtrailing Size . value !!. height . round ()) Ġ/ Ġ 2 ). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Item _ one Line _ position ing _ with Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Item Height Ġ= Ġ 5 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Left Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Text Left Padding Ġ= Ġ 3 2 . dp ĊĊĠĠĠĠĠĠĠ Ġval Ġtext Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġicon Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġicon Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġcompose Test Rule . set Material Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContainer ( alignment Ġ= ĠAlignment . Top Left ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ{ ĠSave Layout ( text Position , Ġtext Size ) Ġ{ ĠText (" Primary Ġtext ") Ġ} Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĠSave Layout ( icon Position , Ġicon Size ) Ġ{ ĠSimple Image ( icon 2 4 x 2 4 ) Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Density ( compose Test Rule . density ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( icon Position . value !!. x ). isEqualTo ( expected Left Padding . toInt Px (). to Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( icon Position . value !!. y ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( list Item Height . toInt Px () Ġ- Ġicon Size . value !!. height . round ()) Ġ/ Ġ 2 ). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Left Padding . toInt Px (). to Px () Ġ+ Ġicon Size . value !!. width Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Text Left Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Position . value !!. y ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( list Item Height . toInt Px () Ġ- Ġtext Size . value !!. height . round ()) Ġ/ Ġ 2 ). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Item _ two Line _ position ing _ no Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Left Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Right Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Text Baseline Ġ= Ġ 2 8 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Secondary Text Baseline Offset Ġ= Ġ 2 0 . dp ĊĊĠĠĠĠĠĠĠ Ġval Ġtext Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġcompose Test Rule . set Material Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContainer ( alignment Ġ= ĠAlignment . Top Left ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( text Position , Ġtext Size , Ġtext Baseline ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Primary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Baseline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Secondary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( trailing Position , Ġtrailing Size , Ġtrailing Baseline ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" meta ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Density ( compose Test Rule . density ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Position . value !!. x ). isEqualTo ( expected Left Padding . toInt Px (). to Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Baseline . value !! ). isEqualTo ( expected Text Baseline . toInt Px (). to Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( secondary Text Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Left Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( secondary Text Baseline . value !! ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Text Baseline . toInt Px (). to Px () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Secondary Text Baseline Offset . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġcompose Test Rule . display Metrics ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( trailing Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdm . width Pixels . px Ġ- Ġtrailing Size . value !!. width Ġ- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Right Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( trailing Baseline . value !! ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Text Baseline . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Item _ two Line _ position ing _ with Small Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Left Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Icon Top Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Content Left Padding Ġ= Ġ 3 2 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Text Baseline Ġ= Ġ 3 2 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Secondary Text Baseline Offset Ġ= Ġ 2 0 . dp ĊĊĠĠĠĠĠĠĠ Ġval Ġtext Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġicon Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġicon Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġcompose Test Rule . set Material Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContainer ( alignment Ġ= ĠAlignment . Top Left ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( text Position , Ġtext Size , Ġtext Baseline ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Primary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Baseline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Secondary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( icon Position , Ġicon Size ) Ġ{ ĠSimple Image ( icon 2 4 x 2 4 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Density ( compose Test Rule . density ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Left Padding . toInt Px (). to Px () Ġ+ Ġicon Size . value !!. width Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Content Left Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Baseline . value !! ). isEqualTo ( expected Text Baseline . toInt Px (). to Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( secondary Text Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Left Padding . toInt Px (). to Px () Ġ+ Ġicon Size . value !!. width Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Content Left Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( secondary Text Baseline . value !! ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Text Baseline . toInt Px (). to Px () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Secondary Text Baseline Offset . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( icon Position . value !!. x ). isEqualTo ( expected Left Padding . toInt Px (). to Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( icon Position . value !!. y ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Icon Top Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Item _ two Line _ position ing _ with Large Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Item Height Ġ= Ġ 7 2 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Left Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Icon Top Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Content Left Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Text Baseline Ġ= Ġ 3 2 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Secondary Text Baseline Offset Ġ= Ġ 2 0 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Right Padding Ġ= Ġ 1 6 . dp ĊĊĠĠĠĠĠĠĠ Ġval Ġtext Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġicon Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġicon Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġcompose Test Rule . set Material Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContainer ( alignment Ġ= ĠAlignment . Top Left ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( text Position , Ġtext Size , Ġtext Baseline ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Primary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Baseline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Secondary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( icon Position , Ġicon Size ) Ġ{ ĠSimple Image ( icon 4 0 x 4 0 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( trailing Position , Ġtrailing Size ) Ġ{ ĠSimple Image ( icon 2 4 x 2 4 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Density ( compose Test Rule . density ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Left Padding . toInt Px (). to Px () Ġ+ Ġicon Size . value !!. width Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Content Left Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Baseline . value !! ). isEqualTo ( expected Text Baseline . toInt Px (). to Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( secondary Text Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Left Padding . toInt Px (). to Px () Ġ+ Ġicon Size . value !!. width Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Content Left Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( secondary Text Baseline . value !! ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Text Baseline . toInt Px (). to Px () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Secondary Text Baseline Offset . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( icon Position . value !!. x ). isEqualTo ( expected Left Padding . toInt Px (). to Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( icon Position . value !!. y ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Icon Top Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġcompose Test Rule . display Metrics ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( trailing Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdm . width Pixels . px Ġ- Ġtrailing Size . value !!. width Ġ- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Right Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( trailing Position . value !!. y ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( list Item Height . toInt Px () Ġ- Ġtrailing Size . value !!. height . round ()) Ġ/ Ġ 2 ). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Item _ three Line _ position ing _ no Over line _ meta Text () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Left Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Icon Top Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Content Left Padding Ġ= Ġ 3 2 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Text Baseline Ġ= Ġ 2 8 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Secondary Text Baseline Offset Ġ= Ġ 2 0 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Right Padding Ġ= Ġ 1 6 . dp ĊĊĠĠĠĠĠĠĠ Ġval Ġtext Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġicon Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġicon Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġcompose Test Rule . set Material Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContainer ( alignment Ġ= ĠAlignment . Top Left ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( text Position , Ġtext Size , Ġtext Baseline ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Primary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Baseline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Secondary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Secondary Text Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( icon Position , Ġicon Size ) Ġ{ ĠSimple Image ( icon 2 4 x 2 4 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( trailing Position , Ġtrailing Size ) Ġ{ ĠSimple Image ( icon 2 4 x 2 4 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Density ( compose Test Rule . density ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Left Padding . toInt Px (). to Px () Ġ+ Ġicon Size . value !!. width Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Content Left Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Baseline . value !! ). isEqualTo ( expected Text Baseline . toInt Px (). to Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( secondary Text Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Left Padding . toInt Px (). to Px () Ġ+ Ġicon Size . value !!. width Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Content Left Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( secondary Text Baseline . value !! ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Text Baseline . toInt Px (). to Px () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Secondary Text Baseline Offset . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( icon Position . value !!. x ). isEqualTo ( expected Left Padding . toInt Px (). to Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( icon Position . value !!. y ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Icon Top Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġcompose Test Rule . display Metrics ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( trailing Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdm . width Pixels . px Ġ- Ġtrailing Size . value !!. width Ġ- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Right Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( trailing Position . value !!. y ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Icon Top Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlist Item _ three Line _ position ing _ over line _ trailing Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Left Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Icon Top Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Content Left Padding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Over line Baseline Ġ= Ġ 2 8 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Text Baseline Offset Ġ= Ġ 2 0 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Secondary Text Baseline Offset Ġ= Ġ 2 0 . dp ĊĠĠĠĠĠĠĠ Ġval Ġexpected Right Padding Ġ= Ġ 1 6 . dp ĊĊĠĠĠĠĠĠĠ Ġval Ġtext Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġtext Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġover line Text Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġover line Text Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġover line Text Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġval Ġsecondary Text Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġicon Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġicon Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Position Ġ= ĠRef < Px Position >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Size Ġ= ĠRef < Px Size >() ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Baseline Ġ= ĠRef < Px >() ĊĠĠĠĠĠĠĠ Ġcompose Test Rule . set Material Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContainer ( alignment Ġ= ĠAlignment . Top Left ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġover line Text Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġover line Text Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġover line Text Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġover line Text Baseline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" OVER LINE ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( text Position , Ġtext Size , Ġtext Baseline ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Primary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Text Baseline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Secondary Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( icon Position , Ġicon Size ) Ġ{ ĠSimple Image ( icon 4 0 x 4 0 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSave Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Baseline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" meta ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith Density ( compose Test Rule . density ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Left Padding . toInt Px (). to Px () Ġ+ Ġicon Size . value !!. width Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Content Left Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( text Baseline . value !! ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Over line Baseline . toInt Px (). to Px () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Text Baseline Offset . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( over line Text Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Left Padding . toInt Px (). to Px () Ġ+ Ġicon Size . value !!. width Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Content Left Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( over line Text Baseline . value !! ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Over line Baseline . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( secondary Text Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Left Padding . toInt Px (). to Px () Ġ+ Ġicon Size . value !!. width Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Content Left Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( secondary Text Baseline . value !! ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Over line Baseline . toInt Px (). to Px () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Text Baseline Offset . toInt Px (). to Px () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Secondary Text Baseline Offset . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( icon Position . value !!. x ). isEqualTo ( expected Left Padding . toInt Px (). to Px ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( icon Position . value !!. y ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Icon Top Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġcompose Test Rule . display Metrics ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( trailing Position . value !!. x ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdm . width Pixels . px Ġ- Ġtrailing Size . value !!. width Ġ- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Right Padding . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( trailing Baseline . value !! ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Over line Baseline . toInt Px (). to Px () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠD p . toInt Px () Ġ= Ġ( this . value Ġ* Ġcompose Test Rule . density . density ). round ToInt () ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun ĠSave Layout ( ĊĠĠĠĠĠĠĠ Ġcoords : ĠRef < Px Position >, ĊĠĠĠĠĠĠĠ Ġsize : ĠRef < Px Size >, ĊĠĠĠĠĠĠĠ Ġbaseline : ĠRef < Px > Ġ= ĠRef (), ĊĠĠĠĠĠĠĠ Ġchildren : Ġ@ Composable () Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠOn Child Position ed ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġcoordinates Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoords . value Ġ= Ġcoordinates . local To Global ( Px Position ( 0 . px , Ġ 0 . px )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbaseline . value Ġ= Ġcoordinates . provided Alignment Lines [ First Baseline ]?. to Px ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ+ Ġcoords . value !!. y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize . value Ġ= Ġcoordinates . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchildren ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ