package de.fuberlin.bii.dfaprovider;
import java.io.File;
import org.junit.Assert;
import org.junit.Test;
import de.fuberlin.bii.bufferedreader.*;
import de.fuberlin.bii.regextodfaconverter.MinimalDfa;
import de.fuberlin.bii.tokenmatcher.StatePayload;
import de.fuberlin.bii.tokenmatcher.Token;
import de.fuberlin.bii.tokenmatcher.Tokenizer;
import de.fuberlin.bii.utils.Notification;
/**
* Test-Klasse für die DirectMinimalDfaBuilder-Klasse.
*
* @author Daniel Rotar
*
*/
public class DirectMinimalDfaBuilderTest {
/**
* Test of buildMinimalDfa method, of class IndirectMinimalDfaBuilder.
*/
@SuppressWarnings("static-method")
@Test
public void testBuildMinimalDfa() throws Exception {
Notification.enableDebugPrinting();
File rdFile = new File("tests/resources/de/fuberlin/bii/def/dfaprovider/test.rd");
String sourceFilename = "tests/resources/de/fuberlin/bii/source/dfaprovider/test.fun";
MinimalDfa<Character, StatePayload> mDfa = null;
MinimalDfaBuilder builder = new DirectMinimalDfaBuilder();
mDfa = builder.buildMinimalDfa(rdFile);
LexemeReader lexemeReader = new BufferedLexemeReader(sourceFilename);
Tokenizer tokenizer = new Tokenizer(lexemeReader, mDfa);
Token currentToken;
String tokenString;
String[] tokensToFind = {"<KEYWORD, IF>", "<ID, myvar9>", "<BRACKET, {>", "<KEYWORD, RETURN>", "<ID, myvar9>", "<BRACKET, }>"};
int i = 0;
while ( !Token.isEofToken( currentToken = tokenizer.getNextToken())) {
tokenString = "<" + currentToken.getType() + ", " + currentToken.getAttribute().toString() + ">";
Assert.assertEquals(tokensToFind[i], tokenString);
System.out.println(tokenString);
i++;
}
Assert.assertEquals(i, tokensToFind.length);
}
}