package Ġhm . b ink ley . cli Ċ Ċ import Ġio . kot est . assertions . with Cl ue Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġpic oc li . CommandLine . Help . Ansi . ON Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . lang . System . line Separator Ċ Ċ internal Ġclass ĠAn si Render Stream Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġout Ġ= ĠByteArrayOutputStream () ĊĠĠĠ Ġprivate Ġval Ġansi Ġ= ĠAn si Render Stream ( out Ġ= Ġout , Ġansi Ġ= ĠON ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġrender Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ Ġansi . println ( null Ġas ĠString ?) ĊĊĠĠĠĠĠĠĠ Ġassert Ansi (" null ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġrender Ġplain Ġtext `() Ġ{ ĊĠĠĠĠĠĠĠ Ġansi . println (" stuff ") ĊĊĠĠĠĠĠĠĠ Ġassert Ansi (" stuff ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġrender Ġwith ĠASCII Ġattribute Ġescape Ġcodes `() Ġ{ ĊĠĠĠĠĠĠĠ Ġansi . println ("@ | bold Ġ% s |@ ", Ġ" stuff ") ĊĊĠĠĠĠĠĠĠ Ġassert Ansi ("${ ascii ( 1 )} % s ${ ascii ( 2 1 , Ġ 0 )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. format (" stuff ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert Ansi ( expected : ĠString ) Ġ= Ġwith Cl ue (" Wrong Ġoutput ") Ġ{ ĊĠĠĠĠĠĠĠ Ġout . toString () ĠshouldBe Ġ"% s ${ line Separator ()} ". format ( expected ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġconst Ġval ĠESC Ġ= Ġ"\ u 0 0 1 B " Ċ Ċ private Ġfun Ġascii ( var arg Ġcodes : ĠInt ) Ġ= ĊĠĠĠ Ġcodes . join ToString ("") Ġ{ ĊĠĠĠĠĠĠĠ Ġ"${ ESC }[ ${ it } m " ĊĠĠĠ Ġ} Ċ