package Ġorg . open rnd r . svg Ċ Ċ import Ġorg . open rnd r . color .* Ċ import Ġorg . open rnd r . math .* Ċ import Ġorg . open rnd r . shape .* Ċ import Ġkotlin . test .* Ċ Ċ class ĠTest SVG Writer Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcomposition Can Be Serialized ToS vg () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcd Ġ= ĠComp osition Drawer () ĊĠĠĠĠĠĠĠ Ġcd . group ( id Ġ= Ġ" Layer _ 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcircle Ġ= Ġcd . circle ( Vector 2 ( 1 0 0 . 0 , Ġ 1 0 0 . 0 ), Ġ 4 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcircle ?. attributes ?. set (" open rnd r : test ", Ġ" 5 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcomp Ġ= Ġcd . composition ĊĠĠĠĠĠĠĠ Ġassert Is < String >( write SVG ( comp )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcomposition With Transforms () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcomp Ġ= Ġdraw Composition Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransform Mode Ġ= ĠTransform Mode . KEEP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Ġ= ĠColor RGB a . RED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslate ( Vector 2 ( 5 0 . 0 , Ġ 5 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcircle ( Vector 2 ( 1 0 0 . 0 , Ġ 1 0 0 . 0 ), Ġ 5 0 . 0 )?. id Ġ= Ġ" circle " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsvg String Ġ= Ġcomp . to SVG () ĊĊĠĠĠĠĠĠĠ ĠassertTrue (" can Ġserialize Ġcolors ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġsh orthand Ġhex Ġcolor Ġis Ġjust Ġas Ġvalid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsvg String . contains (" fill =\" # ff 0 0 0 0 \" ") Ġ|| Ġsvg String . contains (" fill =\" # f 0 0 \" ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġloaded Ġ= Ġload SVG ( svg String ) ĊĠĠĠĠĠĠĠ Ġval Ġshape Ġ= Ġloaded . find Shape (" circle ") ĊĊĠĠĠĠĠĠĠ ĠassertTrue (" calcul ates Ġcorrect Ġeffective Fill ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshape ?. effective Fill Ġ== ĠColor RGB a ( 1 . 0 , Ġ 0 . 0 , Ġ 0 . 0 , Ġ 1 . 0 , ĠLine arity . SR GB ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue (" calcul ates Ġcorrect Ġeffective Transform ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshape ?. effective Transform ?. get ( 3 ) Ġ== ĠVector 4 ( 5 0 . 0 , Ġ 5 0 . 0 , Ġ 0 . 0 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }