public void TestCategoryAsciiUnion() { ParserCharSet upper = ParserCharSet.FromUnicodeCategory("Lu"); ParserCharSet digit = new ParserCharSet('0', '1', '2'); ParserCharSet upperLetterOrDigit = upper + digit; Assert.IsTrue(upperLetterOrDigit.Contains('A'), "'A' must be in set"); Assert.IsTrue(upperLetterOrDigit.Contains('Z'), "'Z' must be in set"); Assert.IsTrue(upperLetterOrDigit.Contains('\u0410'), "'\u0410' must be in set"); // Cyrillic A Assert.IsTrue(upperLetterOrDigit.Contains('1'), "'1' must be in set"); Assert.IsFalse(upperLetterOrDigit.Contains('5'), "'5' must not be in set"); Assert.IsFalse(upperLetterOrDigit.Contains('c'), "'c' must not be in set"); Assert.IsFalse(upperLetterOrDigit.Contains('\u044F'), "'\u043F' must not be in set"); // Cyrillic ya }
public void TestNegation() { ParserCharSet ws = new ParserCharSet(' ', '\r', '\n', '\t'); ParserCharSet notWS = ParserCharSet.AnyChar - ws; Assert.IsFalse(notWS.Contains(' '), "' ' must not be in set"); Assert.IsFalse(notWS.Contains('\t'), "'\\t' must not be in set"); Assert.IsFalse(notWS.Contains('\n'), "'\\n' must not be in set"); Assert.IsFalse(notWS.Contains('\r'), "'\\r' must not be in set"); Assert.IsTrue(notWS.Contains('a'), "'a' must be in set"); }
public void TestRangeSubtraction() { ParserCharSet upperBasicRussian = ParserCharSet.FromRange('\u0410', '\u042F'); // set of russian upper case vowels A E I O U YERU E YU YA ParserCharSet upperRussianVowels = new ParserCharSet('\u0410', '\u0415', '\u0418', '\u041E', '\u0423', '\u042B', '\u042D', '\u042E', '\u042F'); ParserCharSet upperRussianConsonats = upperBasicRussian - upperRussianVowels; Assert.IsFalse(upperRussianConsonats.Contains('\u0410'), "'\u0410' must not be in set"); // Cyrillic Capital Letter A Assert.IsTrue(upperRussianConsonats.Contains('\u0411'), "'\u0411' must be in set"); // Cyrillic Capital Letter BE Assert.IsTrue(upperRussianConsonats.Contains('\u041A'), "'\u041A' must be in set"); // Cyrillic Capital Letter KA Assert.IsFalse(upperRussianConsonats.Contains('\u042F'), "'\u042F' must not be in set"); // Cyrillic Capital Letter YA Assert.IsFalse(upperRussianConsonats.Contains('\u041E'), "'\u041E' must not be in set"); // Cyrillic Capital Letter O Assert.IsFalse(upperRussianConsonats.Contains('\u0430'), "'\u0430' must not be in set"); // Cyrillic Small Letter a Assert.IsFalse(upperRussianConsonats.Contains('\u044E'), "'\u044e' must not be in set"); // Cyrillic Small Letter yu Assert.IsFalse(upperRussianConsonats.Contains('A'), "'A' must not be in set"); Assert.IsFalse(upperRussianConsonats.Contains('z'), "'z' must not be in set"); }
public void TestContains() { ParserCharSet ws = new ParserCharSet(' ', '\r', '\n', '\t'); Assert.IsTrue(ws.Contains(' '), "' ' must be in set"); Assert.IsTrue(ws.Contains('\t'), "'\\t' must be in set"); Assert.IsTrue(ws.Contains('\n'), "'\\n' must be in set"); Assert.IsTrue(ws.Contains('\r'), "'\\r' must be in set"); Assert.IsFalse(ws.Contains('a'), "'a' must not be in set"); }