package org.nwapw.abacus.tests;

import org.nwapw.abacus.lexing.Lexer;
import org.nwapw.abacus.tree.TokenType;

public class LexerTests {

    Lexer<TokenType> lexer = new Lexer<TokenType>(){{

    }};
    
}

@@ -26,16 +26,64 @@
 tests;%0A%0A
+import org.junit.Assert;%0Aimport org.junit.Test;%0A
 import o
@@ -140,118 +140,834 @@
 cus.
-tree.TokenType;%0A%0Apublic class LexerTests %7B%0A%0A    Lexer%3CTokenType%3E lexer = new Lexer%3CTokenType%3E()%7B%7B%0A%0A    %7D%7D;%0A    
+lexing.pattern.Match;%0A%0Aimport java.util.List;%0A%0Apublic class LexerTests %7B%0A%0A    @Test%0A    public void testBasicSuccess()%7B%0A        Lexer%3CInteger%3E lexer = new Lexer%3C%3E();%0A        lexer.register(%22abc%22, 0);%0A        lexer.register(%22def%22, 1);%0A        List%3CMatch%3CInteger%3E%3E matchedIntegers = lexer.lexAll(%22abcdefabc%22, 0, Integer::compare);%0A        Assert.assertEquals(matchedIntegers.get(0).getType(), Integer.valueOf(0));%0A        Assert.assertEquals(matchedIntegers.get(1).getType(), Integer.valueOf(1));%0A        Assert.assertEquals(matchedIntegers.get(2).getType(), Integer.valueOf(0));%0A    %7D%0A%0A    @Test%0A    public void testBasicFailure()%7B%0A        Lexer%3CInteger%3E lexer = new Lexer%3C%3E();%0A        lexer.register(%22abc%22, 0);%0A        lexer.register(%22def%22, 1);%0A        Assert.assertNull(lexer.lexAll(%22abcdefabcz%22, 0, Integer::compare));%0A    %7D%0A
 %0A%7D%0A

Write basic tests for string matching.