public void Test(TestCase testCase) { const int attempts = 1000; var builder = new RegularLanguageBuilder(testCase.Root); var dfa = builder.BuildLanguage(); var recognizer = new LanguageRecognizer <RegularLanguageState>(dfa); for (int i = 0; i < attempts; i++) { string word = testCase.InLanguage(); Assert.IsTrue(recognizer.Accepts(word), "Word {0} is NOT in language, but should be", word); } for (int i = 0; i < attempts; i++) { string word = testCase.Mangler(testCase.InLanguage()); Assert.IsFalse(recognizer.Accepts(word), "Word {0} is in language, but should NOT be", word); } }
public bool Test(string regex, string word) { var parser = new RegularExpressionASTBuilder(regex); var exprTree = parser.BuildExpressionTree(); var regLanBuilder = new RegularLanguageBuilder(exprTree); var lang = regLanBuilder.BuildLanguage(); var recognizer = new LanguageRecognizer <RegularLanguageState>(lang); return(recognizer.Accepts(word)); }