public CharSet Union(CharSet charRange) { var c = new CharSet(); foreach (var range in ranges) { c.AddRange(range.From, range.To); } foreach (var range in charRange.ranges) { c.AddRange(range.From, range.To); } return(c); }
private static CharSet CharRange(char start, char end, bool ignorecase) { CharSet range = new CharSet(); if (ignorecase) { range.AddRange(char.ToLower(start), char.ToLower(end)); range.AddRange(char.ToUpper(start), char.ToUpper(end)); } else { range.AddRange(start, end); } return(range); }
private static CharSet CharRange(char start, char end) { var charRange = new CharSet(); charRange.AddRange(start, end); return(charRange); }
public void TestExceptLeftClip() { var r = new CharSet(); r.AddRange('a', 'f'); var r2 = new CharSet(); r2.AddRange('c', 'f'); r = r.Except(r2); Assert.IsTrue(r.ContainsChar('b')); Assert.IsFalse(r.ContainsChar('c')); }
public CharSet Except(CharSet except) { var cs = new CharSet(); foreach (var range in ranges) { foreach (var clippedRange in ClipRange(range, except.ranges)) { cs.AddRange(clippedRange.From, clippedRange.To); } } return(cs); }
public void TestDistinguishRangesWithSingleChar() { var r1 = new CharSet(); r1.AddRange('a', 'k'); var r2 = new CharSet(); r2.Add('a'); r2.Add('k'); r1.DistinguishRanges(r2); r2.DistinguishRanges(r1); r1.DistinguishRanges(r2); r2.DistinguishRanges(r1); Assert.IsFalse(r1.DistinguishRanges(r2)); Assert.IsFalse(r2.DistinguishRanges(r1)); }
public void TestDistinguishRanges() { var r1 = new CharSet(); r1.AddRange('a', 'k'); var r2 = new CharSet(); r2.AddRange('g', 'z'); r1.DistinguishRanges(r2); r2.DistinguishRanges(r1); Assert.AreEqual(2, r1.Ranges.Count()); Assert.AreEqual(2, r2.Ranges.Count()); r1.DistinguishRanges(r2); r2.DistinguishRanges(r1); Assert.AreEqual(2, r1.Ranges.Count()); Assert.AreEqual(2, r2.Ranges.Count()); }
private static CharSet CharRange(char start, char end) { var charRange = new CharSet(); charRange.AddRange(start, end); return charRange; }
public CharSet Union(CharSet charRange) { var c = new CharSet(); foreach (var range in ranges) { c.AddRange(range.From, range.To); } foreach (var range in charRange.ranges) { c.AddRange(range.From, range.To); } return c; }
public CharSet Except(CharSet except) { var cs = new CharSet(); foreach (var range in ranges) { foreach (var clippedRange in ClipRange(range, except.ranges)) { cs.AddRange(clippedRange.From, clippedRange.To); } } return cs; }