/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . ĠJetBrains Ġs . r . o . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġjet brains . datal ore . base . string Format Ċ Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails With Ċ Ċ class ĠString Format Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` check Ġexpected Ġnumber Ġof Ġarguments `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , ĠString Format (" text "). args Number ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , ĠString Format ("{ . 1 f } "). args Number ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , ĠString Format ("{ . 1 f } Ġtest "). args Number ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , ĠString Format ("{ . 1 f } Ġ{} "). args Number ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , ĠString Format ("{ . 1 f } Ġ{. 2 f } Ġ{. 3 f } "). args Number ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` numeric Ġformat `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Pattern Ġ= Ġ". 2 f " ĊĠĠĠĠĠĠĠ Ġval Ġvalue To Format Ġ= Ġ 4 ĊĠĠĠĠĠĠĠ Ġval Ġformatted String Ġ= ĠString Format ( format Pattern ). format ( value To Format ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 4 . 0 0 ", Ġformatted String ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` numeric Ġformat Ġin Ġthe Ġstring Ġpattern `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Pattern Ġ= Ġ"{ . 2 f }" ĊĠĠĠĠĠĠĠ Ġval Ġvalue To Format Ġ= Ġ 4 ĊĠĠĠĠĠĠĠ Ġval Ġformatted String Ġ= ĠString Format ( format Pattern ). format ( value To Format ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 4 . 0 0 ", Ġformatted String ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` string Ġpattern Ġwith Ġmultiple Ġparameters `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Pattern Ġ= Ġ"{ . 1 f } Ġx Ġ{. 2 f }" ĊĠĠĠĠĠĠĠ Ġval Ġvalues To Format Ġ= ĠlistOf ( 1 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġformatted String Ġ= ĠString Format ( format Pattern ). format ( values To Format ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 . 0 Ġx Ġ 2 . 0 0 ", Ġformatted String ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` string Ġpattern Ġwith Ġbr aces `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Pattern Ġ= Ġ"{ . 1 f } Ġ{{ text }}" ĊĠĠĠĠĠĠĠ Ġval Ġvalue To Format Ġ= Ġ 4 ĊĠĠĠĠĠĠĠ Ġval Ġformatted String Ġ= ĠString Format ( format Pattern ). format ( value To Format ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 4 . 0 Ġ{ text }", Ġformatted String ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` value Ġinside Ġbr aces `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Pattern Ġ= Ġ"{{ {. 1 f }} }" ĊĠĠĠĠĠĠĠ Ġval Ġvalue To Format Ġ= Ġ 4 ĊĠĠĠĠĠĠĠ Ġval Ġformatted String Ġ= ĠString Format ( format Pattern ). format ( value To Format ) ĊĠĠĠĠĠĠĠ ĠassertEquals ("{ 4 . 0 }", Ġformatted String ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` use Ġoriginal Ġvalue Ġin Ġthe Ġstring Ġpattern `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Pattern Ġ= Ġ" original Ġvalue Ġ= Ġ{} " ĊĠĠĠĠĠĠĠ Ġval Ġvalue To Format Ġ= Ġ 4 . 2 ĊĠĠĠĠĠĠĠ Ġval Ġformatted String Ġ= ĠString Format ( format Pattern ). format ( value To Format ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" original Ġvalue Ġ= Ġ 4 . 2 ", Ġformatted String ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` static Ġtext Ġin Ġformat `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Pattern Ġ= Ġ" static Ġtext " ĊĠĠĠĠĠĠĠ Ġval Ġformatted String Ġ= ĠString Format ( format Pattern ). format ( emptyList ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" static Ġtext ", Ġformatted String ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` numeric Ġformat Ġfor Ġthe Ġstring Ġvalue Ġwill Ġbe Ġignored `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Pattern Ġ= Ġ"{ . 1 f } Ġx Ġ{. 2 f }" ĊĠĠĠĠĠĠĠ Ġval Ġvalues To Format Ġ= ĠlistOf (" A ", Ġ" B ") ĊĠĠĠĠĠĠĠ Ġval Ġformatted String Ġ= ĠString Format ( format Pattern ). format ( values To Format ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" A Ġx ĠB ", Ġformatted String ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` different Ġnumber Ġof Ġparameters Ġin Ġthe Ġpattern Ġand Ġnumber Ġof Ġvalues Ġto Ġformat `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Pattern Ġ= Ġ"{ . 1 f } Ġx Ġ{. 2 f } Ġx Ġ{. 3 f }" ĊĠĠĠĠĠĠĠ Ġval Ġvalues To Format Ġ= ĠlistOf ( 1 , Ġ 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġassert Fails With ( IllegalStateException :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Format ( format Pattern ). format ( values To Format ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals (" Can 't Ġformat Ġvalues Ġ[ 1 , Ġ 2 ] Ġwith Ġpattern Ġ\" {. 1 f } Ġx Ġ{. 2 f } Ġx Ġ{. 3 f }\" ). ĠWrong Ġnumber Ġof Ġarguments : Ġexpected Ġ 3 Ġinstead Ġof Ġ 2 ", Ġexception . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` try Ġto Ġformat Ġnon - numeric Ġand Ġnon - string Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Pattern Ġ= Ġ"{ . 1 f }" ĊĠĠĠĠĠĠĠ Ġval Ġvalue To Format Ġ= Ġmap Of ( 1 Ġto Ġ 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġassert Fails With ( IllegalStateException :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString Format ( format Pattern ). format ( value To Format ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Failed Ġto Ġformat Ġvalue Ġwith Ġtype ĠSingleton Map . ĠSupported Ġtypes Ġare ĠNumber Ġand ĠString .", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . message ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }