@@ -0,0 +1,2700 @@
+import static org.junit.Assert.*;%0A%0Aimport java.util.List;%0Aimport java.util.Map;%0A%0Aimport org.junit.Before;%0Aimport org.junit.Test;%0A%0Apublic class InterpreterTest %7B%0A%0A    String text;%0A    Lexer lexer = new Lexer();%0A    Parser parser = new Parser();%0A    Interpreter interpreter = new Interpreter();%0A    Map%3CString, Interpreter.Variable%3E actual;%0A%0A    List%3CToken%3E block;%0A%0A    @Before%0A    public void setUp() throws Exception %7B%0A        text = %22%22;%0A    %7D%0A%0A    @Test%0A    public void testBody_empty() throws Exception %7B%0A        text = %22%22;%0A        actual = run();%0A        assertEquals(0, actual.size());%0A    %7D%0A%0A    @Test%0A    public void testBody_1() throws Exception %7B%0A        text = %22a%22;%0A        actual = run();%0A        assertEquals(1, actual.size());%0A        assertEquals(0, (int) actual.get(%22a%22).value);%0A    %7D%0A%0A    @Test%0A    public void testBody_2() throws Exception %7B%0A        text = %22a = 1%22;%0A        actual = run();%0A        assertEquals(1, actual.size());%0A        assertEquals(1, (int) actual.get(%22a%22).value);%0A    %7D%0A%0A    @Test%0A    public void testBody_3() throws Exception %7B%0A        text = %22a = b = 1%22;%0A        actual = run();%0A        assertEquals(2, actual.size());%0A        assertEquals(1, (int) actual.get(%22a%22).value);%0A        assertEquals(1, (int) actual.get(%22b%22).value);%0A    %7D%0A%0A    @Test%0A    public void testBody_4() throws Exception %7B%0A        text = %22println(1)%22;%0A        actual = run();%0A        assertEquals(0, actual.size());%0A    %7D%0A%0A    @Test%0A    public void testBody_5() throws Exception %7B%0A        try %7B%0A            text = %22a = println(1)%22;%0A            actual = run();%0A            fail();%0A        %7D catch (Exception e) %7B%0A        %7D%0A    %7D%0A%0A    @Test%0A    public void testBody_6() throws Exception %7B%0A        try %7B%0A            text = %221 = 1%22;%0A            actual = run();%0A            fail();%0A        %7D catch (Exception e) %7B%0A        %7D%0A    %7D%0A%0A    @Test%0A    public void testBody_7() throws Exception %7B%0A        try %7B%0A            text = %22println = 1%22;%0A            actual = run();%0A            fail();%0A        %7D catch (Exception e) %7B%0A        %7D%0A    %7D%0A%0A    @Test%0A    public void testBody_8() throws Exception %7B%0A        text = %22println(a = 1 + 2 * 3)%22;%0A        actual = run();%0A        assertEquals(1, actual.size());%0A        assertEquals(7, (int) actual.get(%22a%22).value);%0A    %7D%0A%0A    @Test%0A    public void testBody_9() throws Exception %7B%0A        try %7B%0A            text = %22(a + 1) = 1%22;%0A            actual = run();%0A            fail();%0A        %7D catch (Exception e) %7B%0A        %7D%0A    %7D%0A%0A    private Map%3CString, Interpreter.Variable%3E run() throws Exception %7B%0A        List%3CToken%3E tokens = lexer.init(text).tokenize();%0A        List%3CToken%3E blk = parser.init(tokens).block();%0A        return interpreter.init(blk).run();%0A    %7D%0A%0A%7D%0A

Add tests for Interpreter