public void RegexWildcard_Core() { // Arrange var testString = "ate Ape are"; var fullWildcard = new Wildcard("* are*"); var partialWildcard = new Wildcard("a?e", RegexOptions.IgnoreCase, false, false); var expected_full_IsMatch = true; var expected_full_NumMatches = 1; var expected_part_IsMatch = true; var expected_part_NumMatches = 3; var expected_part_2ndMatch = "Ape"; Console.WriteLine(fullWildcard.ToString()); Console.WriteLine(partialWildcard.ToString()); // Act var fullMatches = fullWildcard.Matches(testString); var actual_full_IsMatch = fullWildcard.IsMatch(testString); var actual_full_NumMatches = fullMatches.Count; var partialMatches = partialWildcard.Matches(testString); var actual_part_IsMatch = partialWildcard.IsMatch(testString); var actual_part_NumMatches = partialMatches.Count; var actual_part_2ndMatch = partialMatches[1].ToString(); // Assert Assert.AreEqual(expected_full_IsMatch, actual_full_IsMatch); Assert.AreEqual(expected_full_NumMatches, actual_full_NumMatches); Assert.AreEqual(expected_part_IsMatch, actual_part_IsMatch); Assert.AreEqual(expected_part_NumMatches, actual_part_NumMatches); Assert.AreEqual(expected_part_2ndMatch, actual_part_2ndMatch); }