import Ġorg . junit . Test Ċ import Ġorg . junit . Assert Ċ Ċ class ĠTest Smart Cast s Ġ{ ĊĠĠĠ Ġ@ Test ( timeout Ġ= Ġ 1 0 0 0 ) ĊĠĠĠ Ġfun Ġtest Num () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ("' eval ' Ġon ĠNum ( 2 ) Ġworks Ġincorrectly \ n ", Ġ 2 , Ġeval ( Num ( 2 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( timeout Ġ= Ġ 1 0 0 0 ) ĊĠĠĠ Ġfun Ġtest Sum () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ("' eval ' Ġon ĠSum ( Num ( 2 ), ĠNum ( 1 )) Ġworks Ġincorrectly \ n ", Ġ 3 , Ġeval ( Sum ( Num ( 2 ), ĠNum ( 1 )))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( timeout Ġ= Ġ 1 0 0 0 ) ĊĠĠĠ Ġfun Ġtest Recursion () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ("' eval ' Ġon ĠSum ( Sum ( Num ( 1 ), ĠNum ( 2 )), ĠNum ( 3 )) Ġworks Ġincorrectly \ n ", Ġ 6 , Ġeval ( Sum ( Sum ( Num ( 1 ), ĠNum ( 2 )), ĠNum ( 3 )))) ĊĠĠĠ Ġ} Ċ }