public void SparseArrayEnumerator3(int length)
        {
            Assert.AreNotEqual(default(int), 1);

            // Completely filled array
            ISparseArray <int> array = this.CreateInstance(length);

            Assert.AreEqual(length, array.Length);
            int[] actualArray = new int[length];
            for (int i = 0; i < array.Length; i++)
            {
                // Should have default value
                Assert.AreEqual(default(int), array[i]);

                // Set all entries
                array[i]       = 1;
                actualArray[i] = 1;
                Assert.AreEqual(1, array[i]);
            }

            IEnumerator <int> sparsEnumerator  = array.GetEnumerator();
            IEnumerator       actualEnumerator = actualArray.GetEnumerator();

            int index = -1;

            while (actualEnumerator.MoveNext())
            {
                index++;
                Assert.IsTrue(sparsEnumerator.MoveNext(), "Unable to move next at index " + index);
                Assert.AreEqual(actualEnumerator.Current, sparsEnumerator.Current, "Incorrect value at index " + index);
            }
            Assert.AreEqual(length - 1, index);
        }
        public void SparseArrayEnumerator2(int length)
        {
            Assert.AreNotEqual(default(int), 1);

            // Completely sparse array i.e. no actual data
            ISparseArray <int> array = this.CreateInstance(length);

            Assert.AreEqual(length, array.Length);

            for (int i = 0; i < array.Length; i++)
            {
                // Should have default value
                Assert.AreEqual(default(int), array[i]);
            }

            IEnumerator <int> enumerator = array.GetEnumerator();

            int index = -1;

            while (enumerator.MoveNext())
            {
                index++;
                Assert.AreEqual(default(int), enumerator.Current, "Incorrect value at index " + index);
            }
            Assert.AreEqual(length - 1, index);
        }
 /// <summary>
 /// Creates new storage
 /// </summary>
 /// <param name="bits">Sparse array to use as storage</param>
 public SparseArrayStorage(ISparseArray <bool> bits)
 {
     if (bits.Length <= 0)
     {
         throw new ArgumentException("Sparse array must have length > 0", "bits");
     }
     this._bits = bits;
 }
 /// <summary>
 /// Creates new storage
 /// </summary>
 /// <param name="parameters">Parameters</param>
 public SparseArrayStorage(IBloomFilterParameters parameters)
 {
     if (parameters == null)
     {
         throw new ArgumentNullException("parameters");
     }
     if (parameters.NumberOfBits <= 0)
     {
         throw new ArgumentException("Number of bits must be > 0", "parameters");
     }
     this._bits = new BlockSparseArray <bool>(parameters.NumberOfBits);
 }
        public void SparseArrayGetSet1(int length)
        {
            ISparseArray <int> array = this.CreateInstance(length);

            Assert.AreEqual(length, array.Length);
            for (int i = 0, j = 1; i < array.Length; i++, j *= 2)
            {
                // Should have default value
                Assert.AreEqual(default(int), array[i]);

                // Set only powers of 2
                if (i != j)
                {
                    continue;
                }
                array[i] = 1;
                Assert.AreEqual(1, array[i]);
            }
        }
 public void SparseArrayEmpty3()
 {
     ISparseArray <int> array = this.CreateInstance(0);
     int i = array[-1];
 }
        public void SparseArrayEmpty1()
        {
            ISparseArray <int> array = this.CreateInstance(0);

            Assert.AreEqual(0, array.Length);
        }
 public void SparseArrayGetSet3(int length)
 {
     ISparseArray <int> array = this.CreateInstance(length);
     int i = array[length];
 }