/* Ċ Ġ* Ġ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 . text Ċ Ċ import Ġandroidx . ui . core . sp Ċ import Ġandroidx . ui . graphics . Color Ċ import Ġandroidx . ui . text . style . Text Align Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠAnnot ated String Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnormalized Paragraph Styles () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ" Hello ĠWorld " ĊĠĠĠĠĠĠĠ Ġval Ġparagraph Style Ġ= ĠParagraph Style ( textAlign Ġ= ĠText Align . Center ) ĊĠĠĠĠĠĠĠ Ġval Ġparagraph Styles Ġ= ĠlistOf ( Annotated String . Item ( paragraph Style , Ġ 0 , Ġ 5 )) ĊĠĠĠĠĠĠĠ Ġval Ġannotated String Ġ= ĠAnnot ated String ( text Ġ= Ġtext , Ġparagraph Styles Ġ= Ġparagraph Styles ) ĊĠĠĠĠĠĠĠ Ġval Ġdefault Paragraph Style Ġ= ĠParagraph Style ( line Height Ġ= Ġ 2 0 . sp ) ĊĊĠĠĠĠĠĠĠ Ġval Ġparagraphs Ġ= Ġannotated String . normalized Paragraph Styles ( default Paragraph Style ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s . size ). isEqualTo ( 2 ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. style ). isEqualTo ( default Paragraph Style . merge ( paragraph Style )) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. start ). isEqualTo ( 0 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. end ). isEqualTo ( 5 ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 1 ]. style ). isEqualTo ( default Paragraph Style ) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 1 ]. start ). isEqualTo ( 5 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 1 ]. end ). isEqualTo ( text . length ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnormalized Paragraph Styles _ only _ string () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ" Hello ĠWorld " ĊĠĠĠĠĠĠĠ Ġval Ġannotated String Ġ= ĠAnnot ated String ( text Ġ= Ġtext ) ĊĠĠĠĠĠĠĠ Ġval Ġdefault Paragraph Style Ġ= ĠParagraph Style ( line Height Ġ= Ġ 2 0 . sp ) ĊĊĠĠĠĠĠĠĠ Ġval Ġparagraphs Ġ= Ġannotated String . normalized Paragraph Styles ( default Paragraph Style ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s . size ). isEqualTo ( 1 ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. style ). isEqualTo ( default Paragraph Style ) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. start ). isEqualTo ( 0 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. end ). isEqualTo ( text . length ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnormalized Paragraph Styles _ empty _ string () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġannotated String Ġ= ĠAnnot ated String ( text Ġ= Ġtext ) ĊĠĠĠĠĠĠĠ Ġval Ġdefault Paragraph Style Ġ= ĠParagraph Style ( line Height Ġ= Ġ 2 0 . sp ) ĊĊĠĠĠĠĠĠĠ Ġval Ġparagraphs Ġ= Ġannotated String . normalized Paragraph Styles ( default Paragraph Style ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s . size ). isEqualTo ( 1 ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. style ). isEqualTo ( default Paragraph Style ) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. start ). isEqualTo ( 0 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. end ). isEqualTo ( text . length ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnormalized Paragraph Styles _ with _ new Line () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ" Hello \ n World " ĊĠĠĠĠĠĠĠ Ġval Ġannotated String Ġ= ĠAnnot ated String ( text Ġ= Ġtext ) ĊĠĠĠĠĠĠĠ Ġval Ġdefault Paragraph Style Ġ= ĠParagraph Style ( line Height Ġ= Ġ 2 0 . sp ) ĊĊĠĠĠĠĠĠĠ Ġval Ġparagraphs Ġ= Ġannotated String . normalized Paragraph Styles ( default Paragraph Style ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s . size ). isEqualTo ( 1 ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. style ). isEqualTo ( default Paragraph Style ) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. start ). isEqualTo ( 0 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. end ). isEqualTo ( text . length ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnormalized Paragraph Styles _ with _ only _ line Feed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ"\ n " ĊĠĠĠĠĠĠĠ Ġval Ġannotated String Ġ= ĠAnnot ated String ( text Ġ= Ġtext ) ĊĠĠĠĠĠĠĠ Ġval Ġdefault Paragraph Style Ġ= ĠParagraph Style ( line Height Ġ= Ġ 2 0 . sp ) ĊĊĠĠĠĠĠĠĠ Ġval Ġparagraphs Ġ= Ġannotated String . normalized Paragraph Styles ( default Paragraph Style ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s . size ). isEqualTo ( 1 ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. style ). isEqualTo ( default Paragraph Style ) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. start ). isEqualTo ( 0 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( paragraph s [ 0 ]. end ). isEqualTo ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġlength _ returns _ text _ length () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ" abc " ĊĠĠĠĠĠĠĠ Ġval Ġannotated String Ġ= ĠAnnot ated String ( text ) ĊĠĠĠĠĠĠĠ ĠassertThat ( annotated String . length ). isEqualTo ( text . length ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtoString _ returns _ text () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ" abc " ĊĠĠĠĠĠĠĠ Ġval Ġannotated String Ġ= ĠAnnot ated String ( text ) ĊĠĠĠĠĠĠĠ ĠassertThat ( annotated String . toString ()). isEqualTo ( text ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġplus _ operator _ creates _ a _ new _ annotated _ string () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext 1 Ġ= Ġ" Hello " ĊĠĠĠĠĠĠĠ Ġval Ġtext Styles 1 Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnnot ated String . Item ( TextStyle ( color Ġ= ĠColor . Red ), Ġ 0 , Ġ 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnnot ated String . Item ( TextStyle ( color Ġ= ĠColor . Blue ), Ġ 2 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġparagraph Styles 1 Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnnot ated String . Item ( Paragraph Style ( line Height Ġ= Ġ 2 0 . sp ), Ġ 0 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnnot ated String . Item ( Paragraph Style ( line Height Ġ= Ġ 3 0 . sp ), Ġ 1 , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġannotated String 1 Ġ= ĠAnnot ated String ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Styles Ġ= Ġtext Styles 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparagraph Styles Ġ= Ġparagraph Styles 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtext 2 Ġ= Ġ" World " ĊĠĠĠĠĠĠĠ Ġval Ġtext Style Ġ= ĠTextStyle ( color Ġ= ĠColor . C yan ) ĊĠĠĠĠĠĠĠ Ġval Ġparagraph Style Ġ= ĠParagraph Style ( line Height Ġ= Ġ 1 0 . sp ) ĊĠĠĠĠĠĠĠ Ġval Ġannotated String 2 Ġ= ĠAnnot ated String ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Styles Ġ= ĠlistOf ( Annotated String . Item ( text Style , Ġ 0 , Ġtext 2 . length )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparagraph Styles Ġ= ĠlistOf ( Annotated String . Item ( paragraph Style , Ġ 0 , Ġtext 2 . length )) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġplus Result Ġ= Ġannotated String 1 Ġ+ Ġannotated String 2 ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Text Styles Ġ= Ġtext Styles 1 Ġ+ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnnot ated String . Item ( text Style , Ġtext 1 . length , Ġtext 1 . length Ġ+ Ġtext 2 . length ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Paragraph Styles Ġ= Ġparagraph Styles 1 Ġ+ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnnot ated String . Item ( paragraph Style , Ġtext 1 . length , Ġtext 1 . length Ġ+ Ġtext 2 . length ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThat ( plus Result . text ). isEqualTo ("$ text 1 $ text 2 ") ĊĠĠĠĠĠĠĠ ĠassertThat ( plus Result . text Styles ). isEqualTo ( expected Text Styles ) ĊĠĠĠĠĠĠĠ ĠassertThat ( plus Result . paragraph Styles ). isEqualTo ( expected Paragraph Styles ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġstring _ plus _ annotated _ string _ returns _ string () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstring Ġ= Ġ" Hello " ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ" World " ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstring Ġ+ ĠAnnot ated String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Styles Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnot ated String . Item ( TextStyle ( color Ġ= ĠColor . Red ), Ġ 0 , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparagraph Styles Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnot ated String . Item ( Paragraph Style ( line Height Ġ= Ġ 2 0 . sp ), Ġ 0 , Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ). isEqualTo ("$ string $ text ") ĊĠĠĠ Ġ} Ċ }