import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.File; import java.io.FileNotFoundException; import org.junit.Test; /** * This tests the token recognizing functions. Run as a JUnit test. Uses test * document, "TestFile.txt". * * @author Eric Fruchter * */ public class Homework1Test { @Test public void test() throws FileNotFoundException { testTokenAnalysis(); testFullDocumentTokenize(); } private void testTokenAnalysis() { String t = ""; String header = ""; // VAR header = "VAR ID FAILURE: "; t = ""; assertFalse(header + t, TokenScanner.isVAR(t)); t = "aA"; assertTrue(header + t, TokenScanner.isVAR(t)); t = "a-A-10"; assertTrue(header + t, TokenScanner.isVAR(t)); t = "a1--M"; assertTrue(header + t, TokenScanner.isVAR(t)); t = "3a"; assertFalse(header + t, TokenScanner.isVAR(t)); t = "-21"; assertFalse(header + t, TokenScanner.isVAR(t)); t = "k11-"; assertTrue(header + t, TokenScanner.isVAR(t)); t = "0"; assertFalse(header + t, TokenScanner.isVAR(t)); // INT header = "INT ID FAILURE: "; t = ""; assertFalse(header + t, TokenScanner.isINT(t)); t = "01"; assertTrue(header + t, TokenScanner.isINT(t)); t = "0"; assertFalse(header + t, TokenScanner.isINT(t)); t = "018721876578625482765"; assertTrue(header + t, TokenScanner.isINT(t)); t = "0hfkjhfwjkhgkwjhegr9870897"; assertFalse(header + t, TokenScanner.isINT(t)); // FLOAT header = "FLOAT ID FAILURE: "; t = ""; assertFalse(header + t, TokenScanner.isFLOAT(t)); t = "21."; assertTrue(header + t, TokenScanner.isFLOAT(t)); t = "1."; assertTrue(header + t, TokenScanner.isFLOAT(t)); t = ".6"; assertFalse(header + t, TokenScanner.isFLOAT(t)); t = "4"; assertFalse(header + t, TokenScanner.isFLOAT(t)); t = "090990800.18721876578625482765"; assertTrue(header + t, TokenScanner.isFLOAT(t)); t = "3.hfkjhfwjkhgkwjhegr9870897"; assertFalse(header + t, TokenScanner.isFLOAT(t)); // Types header = "TYPE ID FAILURE: "; t = "090990800.18721876578625482765"; assertTrue(header + t, TokenScanner.getType(t) == TokenType.FLOAT); t = "a090990800.18721876578625482765"; assertTrue(header + t, TokenScanner.getType(t) == TokenType.INVALID); t = "18721876578625482765"; assertTrue(header + t, TokenScanner.getType(t) == TokenType.INT); assertFalse(header + t, TokenScanner.getType(t) == TokenType.INVALID); assertFalse(header + t, TokenScanner.getType(t) == TokenType.VAR); assertFalse(header + t, TokenScanner.getType(t) == TokenType.FLOAT); t = "a18721876578625482765"; assertTrue(header + t, TokenScanner.getType(t) == TokenType.VAR); t = "Aabb-098098duiahinunkdbJhgJHGJHBKJHGkjh76987byYVI"; assertTrue(header + t, TokenScanner.getType(t) == TokenType.VAR); } private void testFullDocumentTokenize() throws FileNotFoundException { TokenScanner scanner = new TokenScanner(new File("TestFile.txt")); scanner.tokenizeAll(); /* * Demanded Diagnostics */ System.out.println("\nMost Frequent VARS:"); for (Token v : scanner.getMostFrequentVARS()) { System.out.println(v + ": " + v.frequency); } System.out.print("\n# of VARS: " + scanner.getTotalVARS()); System.out.print("\n# of INTS: " + scanner.getTotalINTS()); System.out.print("\n# of FLOATS: " + scanner.getTotalFLOATS() + "\n"); System.out.print("\nMin INT: " + scanner.getMinINT()); System.out.print("\nMax INT: " + scanner.getMaxINT()); System.out.print("\nMin FLOAT: " + scanner.getMinFLOAT()); System.out.print("\nMax FLOAT: " + scanner.getMaxFLOAT()); System.out.println("\n# of times VAR is followed by INT or FLOAT: " + scanner.getVARFollowOccurrences()); System.out.println("\nQuotes found:"); for (String quote : scanner.getQuotes()) { System.out.println("\"" + quote + "\""); } } }