public void TestPointSet()
        {
            ItemSet pSet = new ItemSet();
            uint expected = 0;
            for (int i = 0; i < 16; i++)
            {
                expected += (uint)Math.Pow(2.0, i);
                pSet.Add(i);
                Assert.True(expected == pSet.GetIndices());
            }

            pSet.RemoveAt(3);
            expected -= 8;
            Assert.AreEqual(15, pSet.CountBits(), "Array size 1");
            Assert.True(expected == pSet.GetIndices());

            MyList<MyPoint> set1 = new MyList<MyPoint>();
            set1.Add(new MyPoint(0, 0));
            set1.Add(new MyPoint(1, 1));
            set1.Add(new MyPoint(2, 2));
            set1.Add(new MyPoint(5, 0));
            set1.Add(new MyPoint(6, 1));
            set1.Add(new MyPoint(7, 2));
            set1.Add(new MyPoint(8, 5));

            pSet.Reset();

            pSet.Add(0);
            pSet.Add(3);
            pSet.Add(4);
            pSet.Add(6);

            Assert.AreEqual(4, pSet.CountBits(), "Array size 2");

            pSet.GetItem(set1, 0);
            pSet.GetItem(set1, 1);
            pSet.GetItem(set1, 2);
            pSet.GetItem(set1, 3);

            Assert.True(set1[0] == pSet.GetItem(set1, 0), "Check 0");
            Assert.True(set1[3] == pSet.GetItem(set1, 1), "Check 1");
            Assert.True(set1[4] == pSet.GetItem(set1, 2), "Check 2");
            Assert.True(set1[6] == pSet.GetItem(set1, 3), "Check 3");
        }