public static void PowerSetTest()
        {
            PowerSet <int> ps1 = new PowerSet <int>();
            PowerSet <int> ps2 = new PowerSet <int>();


            ps1.Put(1);
            ps1.Put(3);
            ps1.Put(5);

            ps2.Put(2);
            ps2.Put(3);
            ps2.Put(4);


            var ps3 = ps1.Difference(ps2);

            //Console.WriteLine(ps3);
            foreach (var item in ps3.items.Keys)
            {
                Console.WriteLine(item);
            }

            //Console.WriteLine($"Size: {ps3.Size()}");
        }
        public void Difference()
        {
            // Difference with PowerSet2 contains 2 similar items (expected 3 different items)
            testPowerSet = testPowerSet1.Difference(testPowerSet2);
            Assert.AreEqual(3, testPowerSet.capacity);
            Assert.AreEqual(true, testPowerSet.Get(8));
            Assert.AreEqual(true, testPowerSet.Get(10));
            Assert.AreEqual(true, testPowerSet.Get(12));
            Assert.AreEqual(false, testPowerSet.Get(16));

            testPowerSet = testPowerSet2.Difference(testPowerSet1);
            Assert.AreEqual(3, testPowerSet.capacity);
            Assert.AreEqual(true, testPowerSet.Get(162));
            Assert.AreEqual(true, testPowerSet.Get(0));
            Assert.AreEqual(true, testPowerSet.Get(5));
            Assert.AreEqual(false, testPowerSet.Get(12));

            // Difference with empty set (A / 0 = A)
            Assert.AreEqual(5, testPowerSet1.Difference(testPowerSet0).capacity);

            // Difference with empty set (0 / A = 0)
            Assert.AreEqual(0, testPowerSet0.Difference(testPowerSet1).capacity);
        }