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));
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        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));
        }