Esempio n. 1
0
        public void LazinatorBitArrayResizes()
        {
            LazinatorBitArray b = new LazinatorBitArray(100);

            b.Length = 200;
            b[105]   = true;
        }
Esempio n. 2
0
        public void LazinatorBitArrayWorks()
        {
            LazinatorBitArray reservedArray = new LazinatorBitArray(100);

            reservedArray.Length.Should().Be(100);

            bool[] values1 = new bool[]
            { true, false, true, false, true, false, true, false, true };
            bool[] values2 = new bool[]
            { true, true, true, true, true, false, false, false, false };
            LazinatorBitArray bits1 = new LazinatorBitArray(values1);
            LazinatorBitArray bits2 = new LazinatorBitArray(values2);

            bits1 = bits1.CloneLazinatorTyped();
            bits2 = bits2.CloneLazinatorTyped();
            bits1.Count.Should().Be(9);
            bits2.Count.Should().Be(9);
            var not = new LazinatorBitArray(bits1).Not();

            for (int i = 0; i < values1.Length; i++)
            {
                not[i].Should().Be(!values1[i]);
            }
            var cleared = new LazinatorBitArray(bits1);

            cleared.SetAll(false);
            for (int i = 0; i < values1.Length; i++)
            {
                cleared[i].Should().Be(false);
            }
            cleared.SetAll(true);
            for (int i = 0; i < values1.Length; i++)
            {
                cleared[i].Should().Be(true);
            }
            var and = new LazinatorBitArray(bits1).And(bits2);

            for (int i = 0; i < values1.Length; i++)
            {
                and[i].Should().Be(values1[i] & values2[i]);
            }
            var or = new LazinatorBitArray(bits1).Or(bits2);

            for (int i = 0; i < values1.Length; i++)
            {
                or[i].Should().Be(values1[i] | values2[i]);
            }
            var xor = new LazinatorBitArray(bits1).Xor(bits2);

            for (int i = 0; i < values1.Length; i++)
            {
                xor[i].Should().Be(values1[i] ^ values2[i]);
            }
        }