예제 #1
0
 private void NegativeRemove(long number)
 {
     if (this._negativeFlags == null)
     {
         this._negativeFlags = new SparseLargeBitArray32(this._size, this._blockSize);
     }
     if (this._negativeFlags[number])
     {
         this._count = this._count - 1L;
     }
     this._negativeFlags[number] = false;
 }
예제 #2
0
 private void NegativeAdd(long number)
 {
     if (this._negativeFlags == null)
     {
         this._negativeFlags = new SparseLargeBitArray32(this._size, this._blockSize);
     }
     if (!this._negativeFlags[number])
     {
         this._count = this._count + 1L;
     }
     this._negativeFlags[number] = true;
 }
예제 #3
0
파일: OsmIdIndex.cs 프로젝트: OsmSharp/core
        /// <summary>
        /// Adds an id.
        /// </summary>
        private void PositiveAdd(long number)
        {
            if (_positiveFlags == null)
            {
                _positiveFlags = new SparseLargeBitArray32(_size, _blockSize);
            }

            if (!_positiveFlags[number])
            { // there is a new positive flag.
                _count++;
            }
            _positiveFlags[number] = true;
        }
예제 #4
0
파일: OsmIdIndex.cs 프로젝트: OsmSharp/core
        /// <summary>
        /// Removes an id.
        /// </summary>
        private void NegativeRemove(long number)
        {
            if (_negativeFlags == null)
            {
                _negativeFlags = new SparseLargeBitArray32(_size, _blockSize);
            }

            if (_negativeFlags[number])
            { // there is one less negative flag.
                _count--;
            }
            _negativeFlags[number] = false;
        }
예제 #5
0
파일: OsmIdIndex.cs 프로젝트: OsmSharp/core
        /// <summary>
        /// Adds an id.
        /// </summary>
        private void NegativeAdd(long number)
        {
            if (_negativeFlags == null)
            {
                _negativeFlags = new SparseLargeBitArray32(_size, _blockSize);
            }

            if (!_negativeFlags[number])
            { // there is one more negative flag.
                _count++;
            }
            _negativeFlags[number] = true;
        }
예제 #6
0
        public void TestSparseLargeBitArray32()
        {
            var size           = 32 * 10000;
            var referenceArray = new bool[size];
            var array          = new SparseLargeBitArray32(size, 256);

            // test size.
            Assert.AreEqual(referenceArray.Length, array.Length);

            // add random data.
            for (int idx = 0; idx < 10000; idx++)
            {
                referenceArray[idx] = true;
                array[idx]          = true;
                Assert.IsTrue(array[idx]);
            }

            // compare both.
            for (int idx = 0; idx < referenceArray.Length; idx++)
            {
                Assert.AreEqual(referenceArray[idx], array[idx]);
            }

            // remove random data.
            for (int idx = 0; idx < 10000; idx++)
            {
                referenceArray[idx] = false;
                array[idx]          = false;
            }

            // compare both.
            for (int idx = 0; idx < referenceArray.Length; idx++)
            {
                Assert.AreEqual(referenceArray[idx], array[idx]);
            }
        }
예제 #7
0
파일: OsmIdIndex.cs 프로젝트: OsmSharp/core
 /// <summary>
 /// Clears this index.
 /// </summary>
 public void Clear()
 {
     _negativeFlags = null;
     _positiveFlags = null;
 }
예제 #8
0
        /// <summary>
        /// Removes an id.
        /// </summary>
        /// <param name="number"></param>
        private void PositiveRemove(long number)
        {
            if (_positiveFlags == null)
            {
                _positiveFlags = new SparseLargeBitArray32(_size, _blockSize);
            }

            if (_positiveFlags[number])
            { // there is one less positive flag.
                _count--;
            }
            _positiveFlags[number] = false;
        }
예제 #9
0
        /// <summary>
        /// Adds an id.
        /// </summary>
        /// <param name="number"></param>
        private void PositiveAdd(long number)
        {
            if(_positiveFlags == null)
            {
                _positiveFlags = new SparseLargeBitArray32(_size, _blockSize);
            }

            if(!_positiveFlags[number])
            { // there is a new positive flag.
                _count++;
            }
            _positiveFlags[number] = true;
        }
예제 #10
0
        /// <summary>
        /// Adds an id.
        /// </summary>
        /// <param name="number"></param>
        private void NegativeAdd(long number)
        {
            if (_negativeFlags == null)
            {
                _negativeFlags = new SparseLargeBitArray32(_size, _blockSize);
            }

            if (!_negativeFlags[number])
            { // there is one more negative flag.
                _count++;
            }
            _negativeFlags[number] = true;
        }
예제 #11
0
 /// <summary>
 /// Clears this index.
 /// </summary>
 public void Clear()
 {
     _negativeFlags = null;
     _positiveFlags = null;
 }
예제 #12
0
 public void Clear()
 {
     this._negativeFlags = (SparseLargeBitArray32)null;
     this._positiveFlags = (SparseLargeBitArray32)null;
 }