static public void Test() { RangeCollection aRangeCollection = RangeCollection.GetInstance(); aRangeCollection.Add(0); SpecialFunctions.CheckCondition("0-0" == aRangeCollection.ToString()); aRangeCollection.Add(1); SpecialFunctions.CheckCondition("0-1" == aRangeCollection.ToString()); aRangeCollection.Add(4); SpecialFunctions.CheckCondition("0-1,4-4" == aRangeCollection.ToString()); aRangeCollection.Add(5); SpecialFunctions.CheckCondition("0-1,4-5" == aRangeCollection.ToString()); aRangeCollection.Add(7); SpecialFunctions.CheckCondition("0-1,4-5,7-7" == aRangeCollection.ToString()); aRangeCollection.Add(2); SpecialFunctions.CheckCondition("0-2,4-5,7-7" == aRangeCollection.ToString()); aRangeCollection.Add(3); SpecialFunctions.CheckCondition("0-5,7-7" == aRangeCollection.ToString()); aRangeCollection.Add(6); SpecialFunctions.CheckCondition("0-7" == aRangeCollection.ToString()); aRangeCollection.Add(-10); SpecialFunctions.CheckCondition("-10--10,0-7" == aRangeCollection.ToString()); aRangeCollection.Add(-5); SpecialFunctions.CheckCondition("-10--10,-5--5,0-7" == aRangeCollection.ToString()); aRangeCollection = RangeCollection.Parse("1-5,7-12,13-14"); Console.WriteLine(aRangeCollection); Console.WriteLine(aRangeCollection.Contains(3)); Console.WriteLine(aRangeCollection.Contains(12)); Console.WriteLine(aRangeCollection.Contains(13)); Console.WriteLine(aRangeCollection.Contains(6)); aRangeCollection = RangeCollection.Parse("-10--5,-1-14"); Console.WriteLine(aRangeCollection); Console.WriteLine(aRangeCollection.Contains(-12)); Console.WriteLine(aRangeCollection.Contains(-10)); Console.WriteLine(aRangeCollection.Contains(-7)); Console.WriteLine(aRangeCollection.Contains(-5)); Console.WriteLine(aRangeCollection.Contains(-4)); Console.WriteLine(aRangeCollection.Contains(0)); Console.WriteLine(aRangeCollection.Contains(1)); Console.WriteLine(aRangeCollection.Contains(-2)); Console.WriteLine("Count: " + aRangeCollection.Count()); Console.WriteLine("Count -5 to 2: " + aRangeCollection.Count(-5, 2)); RangeCollectionCollection rcc = RangeCollectionCollection.GetInstance(aRangeCollection); Console.WriteLine(rcc); Console.WriteLine(rcc.GetContainingRangeCollection(-12)); Console.WriteLine(rcc.GetContainingRangeCollection(-10)); Console.WriteLine(rcc.GetContainingRangeCollection(-5)); Console.WriteLine(rcc.GetContainingRangeCollection(3)); Console.WriteLine(rcc.GetContainingRangeCollection(15)); }
/// <summary> /// A Collection of RangeCollections is constructed from a single RangeCollection by spliting it into /// it's contiguous ranges. /// </summary> public static RangeCollectionCollection GetInstance(RangeCollection rangeCollection) { RangeCollectionCollection rcc = new RangeCollectionCollection(); rcc._rangeCollections = new List <RangeCollection>(); foreach (string range in rangeCollection.ToString().Split(',')) { rcc._rangeCollections.Add(RangeCollection.Parse(range)); } return(rcc); }
static public void Test() { RangeCollection aRangeCollection = RangeCollection.GetInstance(); aRangeCollection.Add(0); SpecialFunctions.CheckCondition("0" == aRangeCollection.ToString()); aRangeCollection.Add(1); SpecialFunctions.CheckCondition("0-1" == aRangeCollection.ToString()); aRangeCollection.Add(4); SpecialFunctions.CheckCondition("0-1,4" == aRangeCollection.ToString()); aRangeCollection.Add(5); SpecialFunctions.CheckCondition("0-1,4-5" == aRangeCollection.ToString()); aRangeCollection.Add(7); SpecialFunctions.CheckCondition("0-1,4-5,7" == aRangeCollection.ToString()); aRangeCollection.Add(2); SpecialFunctions.CheckCondition("0-2,4-5,7" == aRangeCollection.ToString()); aRangeCollection.Add(3); SpecialFunctions.CheckCondition("0-5,7" == aRangeCollection.ToString()); aRangeCollection.Add(6); SpecialFunctions.CheckCondition("0-7" == aRangeCollection.ToString()); aRangeCollection.Add(-10); SpecialFunctions.CheckCondition("-10,0-7" == aRangeCollection.ToString()); aRangeCollection.Add(-5); SpecialFunctions.CheckCondition("-10,-5,0-7" == aRangeCollection.ToString()); string range = "-10--5,-3,-2-1,1-5,7-12,13-15,14-16,20-25,22-23"; aRangeCollection = RangeCollection.Parse(range); Console.WriteLine(range); Console.WriteLine(aRangeCollection); //Console.WriteLine(aRangeCollection.Contains(3)); //Console.WriteLine(aRangeCollection.Contains(12)); //Console.WriteLine(aRangeCollection.Contains(13)); //Console.WriteLine(aRangeCollection.Contains(6)); range = "1-5,0,4-10,-10--5,-12--3,15-20,12-21,-13"; aRangeCollection = RangeCollection.Parse(range); Console.WriteLine(range); Console.WriteLine(aRangeCollection); //Console.WriteLine(aRangeCollection.Contains(-12)); //Console.WriteLine(aRangeCollection.Contains(-10)); //Console.WriteLine(aRangeCollection.Contains(-7)); //Console.WriteLine(aRangeCollection.Contains(-5)); //Console.WriteLine(aRangeCollection.Contains(-4)); //Console.WriteLine(aRangeCollection.Contains(0)); //Console.WriteLine(aRangeCollection.Contains(1)); //Console.WriteLine(aRangeCollection.Contains(-2)); Console.WriteLine("Count: " + aRangeCollection.Count()); Console.WriteLine("Count -5 to 2: " + aRangeCollection.Count(-5, 2)); RangeCollectionCollection rcc = RangeCollectionCollection.GetInstance(aRangeCollection); Console.WriteLine(rcc); Console.WriteLine(rcc.GetContainingRangeCollection(-12)); Console.WriteLine(rcc.GetContainingRangeCollection(-10)); Console.WriteLine(rcc.GetContainingRangeCollection(-5)); Console.WriteLine(rcc.GetContainingRangeCollection(3)); Console.WriteLine(rcc.GetContainingRangeCollection(15)); }