public Boolean Equals(ICountProperty countProperty)
        {
            CountWithMinAndMax countWithMinAndMax = countProperty as CountWithMinAndMax;

            if (countWithMinAndMax == null)
            {
                return(false);
            }
            return((this.min == countWithMinAndMax.min) && (this.max == countWithMinAndMax.max));
        }
        public void CountWithMinAndMaxParserTest()
        {
            CountWithMinAndMax countWithMinAndMaxA = new CountWithMinAndMax(1, 2);
            CountWithMinAndMax countWithMinAndMaxB = new CountWithMinAndMax(4, 9938);

            TestUtil.TestPropertyParser("1-2", countWithMinAndMaxA);
            TestUtil.TestPropertyParser("\t\t  1-2 \n\n \t", countWithMinAndMaxA);

            TestUtil.TestPropertyParser("4-9938", countWithMinAndMaxB);
            TestUtil.TestPropertyParser("\t\t  4-9938 \n\n \t", countWithMinAndMaxB);


            //
            // Test that it disallows certain min/max pairs
            //
            try
            {
                CountWithMinAndMax countWithMinAndMax = new CountWithMinAndMax(2, 1);
                Assert.Fail();
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(String.Format("Caught expected exception {0}", e));
            }
            try
            {
                CountWithMinAndMax countWithMinAndMax = new CountWithMinAndMax(999, 999);
                Assert.Fail();
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(String.Format("Caught expected exception {0}", e));
            }

            //
            // Test some larger values
            //
            for (UInt32 i = 1; i < 1000000; i += 95416)
            {
                for (UInt32 j = i + 1; j < 1000000; j += 95416)
                {
                    CountWithMinAndMax countWithMinAndMax = (CountWithMinAndMax)CountProperty.Parse(String.Format("{0}-{1}", i, j));
                    Assert.AreEqual(i, countWithMinAndMax.min);
                    Assert.AreEqual(j, countWithMinAndMax.max);
                }
            }
        }