package Ġdemo Ċ Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . Assert . assertArrayEquals Ċ import Ġorg . junit . Assert . assertEquals Ċ Ċ class Ġ_ 0 0 _ Types Test () Ġ{ ĊĠĠĠ Ġ@ Test Ġfun Ġ_ 0 0 _ test IntArray Of () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi 1 2 3 : ĠInt Array Ġ= Ġint ArrayOf ( 1 , 2 , 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( i 1 2 3 [ 1 ], Ġ 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġi 1 2 3 _ a : ĠArray < Int > Ġ= ĠarrayOf ( 1 , 2 , 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( i 1 2 3 _ a [ 1 ], Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġ_ 0 1 _ test Array Lambda Constructor () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠArray ( 5 , Ġ{ Ġi Ġ-> Ġ( i * i ). toString () Ġ}) Ġ// ĠArray < String > ĊĠĠĠĠĠĠĠ ĠassertEquals ( f [ 0 ], Ġ" 0 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( f [ 1 ], Ġ" 1 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( f [ 2 ], Ġ" 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġ_ 0 2 _ string Template Computation () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 + 2 = 3 ", Ġ" 1 + 2 =${ 1 + 2 }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġ_ 0 3 _ string Template Vars And Methods () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġ" foo " ĊĠĠĠĠĠĠĠ ĠassertEquals ("\ $ a = 1 Ġ\$ b =' foo ' Ġ( 3 )", Ġ"\ $ a =${ a } Ġ\$ b =' ${ b }' Ġ(${ b . length }) ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġ_ 0 4 _ strings Margin () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext 1 Ġ= Ġ""" ĊĠĠĠĠĠĠĠ Ġ| for Ġ( c Ġin Ġ" foo ") ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġprint ( c ) ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġval Ġtext 2 Ġ= Ġ""" ĊĠĠĠĠĠĠĠ Ġ> for Ġ( c Ġin Ġ" foo ") ĊĠĠĠĠĠĠĠ Ġ> ĠĠĠ Ġprint ( c ) ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin ("> ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( text 1 , Ġtext 2 ) ĊĠĠĠ Ġ} Ċ }