public MFTestResults RegExpTest_1_Split_Test_0() { bool testResult = false; string[] expectedResults; string[] acutalResults; Regex regex; try { expectedResults = new string[] { "xyzzy", "yyz", "123" }; regex = new Regex("[ab]+"); acutalResults = regex.Split("xyzzyababbayyzabbbab123"); TestTestsHelper.AssertEquals(ref expectedResults, ref acutalResults, out testResult); expectedResults = new string[] { "xxxx", "xxxx", "yyyy", "zzz" }; regex = new Regex("a*b");//match any amount of 'a' and 1 'b' acutalResults = regex.Split("xxxxaabxxxxbyyyyaaabzzz"); TestTestsHelper.AssertEquals(ref expectedResults, ref acutalResults, out testResult); // Grep Tests return(RegExpTest_2_Grep_Test_0(ref acutalResults)); } catch (Exception ex) { Log.Exception("Unexpected Exception", ex); testResult = false; } return(testResult ? MFTestResults.Pass : MFTestResults.Fail); }
/// <summary> /// This test is entangled with RegExpTest_1_Split_Test_0 /// Should the Split Logic Break the Grep Logic will break also. /// </summary> /// <param name="arg">The input to match against using grep</param> /// <returns></returns> internal MFTestResults RegExpTest_2_Grep_Test_0(ref string[] arg) { bool testResult = false; string[] expectedResults; string[] acutalResults; Regex regex; try { regex = new Regex("x+"); expectedResults = new String[] { "xxxx", "xxxx" }; acutalResults = regex.GetMatches(arg); int al = acutalResults.Length; int el = expectedResults.Length; for (int i = 0; i < el; i++) { Log.Comment("Actual[" + i + "] = " + acutalResults[i]); testResult = TestTestsHelper.AssertEquals(ref TestTestsHelper.GrepFailString, ref expectedResults[i], ref acutalResults[i]); } testResult = TestTestsHelper.AssertEquals(ref TestTestsHelper.WrongNumberGrep, ref el, ref el); } catch (Exception ex) { Log.Exception("Unexpected Exception", ex); testResult = false; } return(testResult ? MFTestResults.Pass : MFTestResults.Fail); }
public MFTestResults RegExpTest_3_Substring_Test_0() { bool testResult = false; String expected, actual; Regex regex; string message; try { Log.Comment("Test subst()"); regex = new Regex("a*b"); expected = "-foo-garply-wacky-"; actual = regex.Replace("aaaabfooaaabgarplyaaabwackyb", "-"); message = "Wrong result of substitution in\"a*b\""; testResult = TestTestsHelper.AssertEquals(ref message, ref expected, ref actual); Log.Comment("Test subst() with backreferences"); regex = new Regex("http://[.\\w?/~_@&=%]+"); expected = "visit us: 1234<a href=\"http://www.apache.org\">http://www.apache.org</a>!"; actual = regex.Replace("visit us: http://www.apache.org!", "1234<a href=\"$0\">$0</a>"); message = "Wrong subst() result"; testResult = TestTestsHelper.AssertEquals(ref message, ref expected, ref actual); Log.Comment("Test subst() with backreferences without leading characters before first backreference"); regex = new Regex("(.*?)=(.*)"); expected = "variable_test_value12"; actual = regex.Replace("variable=value", "$1_test_$212"); message = "Wrong subst() result"; testResult = TestTestsHelper.AssertEquals(ref message, ref expected, ref actual); Log.Comment("Test subst() with NO backreferences"); regex = new Regex("^a$"); expected = "b"; actual = regex.Replace("a", "b"); message = "Wrong subst() result"; testResult = TestTestsHelper.AssertEquals(ref message, ref expected, ref actual); Log.Comment(" Test subst() with NO backreferences"); regex = new Regex("^a$", RegexOptions.Multiline); expected = "\r\nb\r\n"; actual = regex.Replace("\r\na\r\n", "b"); testResult = TestTestsHelper.AssertEquals(ref message, ref expected, ref actual); Log.Comment(" Test for Bug #36106 "); regex = new Regex("fo(o)"); actual = regex.Replace("foo", "$1"); expected = "o"; testResult = TestTestsHelper.AssertEquals(ref message, ref expected, ref actual); Log.Comment(" Test for Bug #36405 "); regex = new Regex("^(.*?)(x)?$"); actual = regex.Replace("abc", "$1-$2"); expected = "abc-"; testResult = TestTestsHelper.AssertEquals(ref message, ref expected, ref actual); regex = new Regex("^(.*?)(x)?$"); actual = regex.Replace("abcx", "$1-$2"); expected = "abc-x"; testResult = TestTestsHelper.AssertEquals(ref message, ref expected, ref actual); regex = new Regex("([a-b]+?)([c-d]+)"); actual = regex.Replace("zzabcdzz", "$1-$2"); expected = "zzab-cdzz"; testResult = TestTestsHelper.AssertEquals(ref message, ref expected, ref actual); } catch (Exception ex) { Log.Exception("Unexpected Exception", ex); testResult = false; } return(testResult ? MFTestResults.Pass : MFTestResults.Fail); }