/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠK aid an ĠG ust ave Ċ Ġ* Ċ Ġ* Ġ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 Ġnode . test Ċ Ċ import Ġnode . vm . VM Ċ import Ġkotlin . js . json Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠVM Tests Ġ{ ĊĠĠĠ Ġ@ Test Ġfun Ġtest Run VM () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= ĠVM . run In This Context < Int >(" 4 Ġ+ Ġ 1 ; ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 Ġ+ Ġ 1 , Ġoutput ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġtest Run In VM WithContext () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsandbox Ġ= Ġjson (" a " Ġto Ġ" Hello ", Ġ" b " Ġto Ġ" World ") ĊĠĠĠĠĠĠĠ ĠVM . create Context ( sandbox ) Ġ// Ġcontext ify Ġthe Ġsandbox ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= ĠVM . run In Context < String >(" `\ ${ a }, Ġ\ ${ b }! `; ", Ġsandbox ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Hello , ĠWorld !", Ġoutput ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Ġfun Ġtest Run V MS cript () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= ĠVM . Script < Int >(" "" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfunction Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ= Ġa Ġ+ Ġ 1 ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġa ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun () ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġsandbox Ġ= Ġjson (" a " Ġto Ġ 0 ) ĊĠĠĠĠĠĠĠ ĠVM . create Context ( sandbox ) ĊĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 1 .. 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscript . run In Context ( sandbox ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( i , Ġsandbox [" a "]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }