示例#1
0
        public void AddRangeTest_BitsArray()
        {
            var     initialCount = 5;
            var     rangeCount   = 10;
            BitList target       = new BitList(initialCount, true);
            var     bitsArray    = new ulong[] { 0 };

            target.AddRange(bitsArray, rangeCount);
            var totalCount = initialCount + rangeCount;

            Assert.AreEqual(totalCount, target.Count);
            var i = 0;

            for (; i < initialCount; ++i)
            {
                var bit = target[i];
                Assert.AreNotEqual(0, bit);
            }

            for (; i < totalCount; ++i)
            {
                var bit = target[i];
                Assert.AreEqual(0, bit);
            }
        }
示例#2
0
        public void ShouldAddRangeBits()
        {
            var bits = new BitList(this.hexData);

            bits.AddRange(new List <bool>()
            {
                true, true, false
            });

            Assert.That(bits.Count, Is.EqualTo(19));
        }
示例#3
0
        /// <summary>
        ///     Create a truth table of a given length
        ///     e.g. if length == 2 the output would be as following
        ///     | a | b |
        ///     | 0 | 0 |
        ///     | 0 | 1 |
        ///     | 1 | 0 |
        ///     | 1 | 1 |
        /// </summary>
        /// <param name="length"></param>
        /// <returns></returns>
        private IEnumerable <BitList> GenerateCombinations(int length)
        {
            var output = new List <BitList>();
            var numberOfCombinations = (int)Math.Pow(2, length);

            for (var bitList = new BitList(); bitList < numberOfCombinations; bitList++)
            {
                if (bitList.Count != length)
                {
                    var paddingNeeded = length - bitList.Count;
                    bitList.AddRange(paddingNeeded.BitListOfLength());
                }

                output.Add(bitList);
            }

            return(output);
        }
示例#4
0
        public void AddRangeTest_BitList()
        {
            var     initialCount = 5;
            var     rangeCount   = 10;
            BitList target       = new BitList(initialCount, true);
            BitList range        = new BitList(rangeCount, false);
            var     totalCount   = initialCount + rangeCount;

            target.AddRange(range);
            Assert.AreEqual(totalCount, target.Count);
            var i = 0;

            for (; i < initialCount; ++i)
            {
                var bit = target[i];
                Assert.AreNotEqual(0, bit);
            }

            for (; i < totalCount; ++i)
            {
                var bit = target[i];
                Assert.AreEqual(0, bit);
            }
        }