示例#1
0
        public void Test002()
        {
            var bs = new BitList();

            foreach (var _ in bs.ToByteArray())
            {
                Assert.Fail();
            }
            foreach (var _ in Collection.Seq(32))
            {
                bs.Add(true);
            }
            for (var i = 0; i < 32; i++)
            {
                Assert.AreEqual(true, bs.Check(i));
            }
            Assert.AreEqual(0b11111111_11111111_11111111_11111111u, BitConverter.ToUInt32(bs.ToByteArray(), 0));

            bs[10] = false;
            Assert.AreEqual(0b11111111_11111111_11111011_11111111u, BitConverter.ToUInt32(bs.ToByteArray(), 0));
            bs[20] = false;
            Assert.AreEqual(0b11111111_11101111_11111011_11111111u, BitConverter.ToUInt32(bs.ToByteArray(), 0));
            bs[30] = false;
            Assert.AreEqual(0b10111111_11101111_11111011_11111111u, BitConverter.ToUInt32(bs.ToByteArray(), 0));
            bs[31] = false;
            Assert.AreEqual(0b00111111_11101111_11111011_11111111u, BitConverter.ToUInt32(bs.ToByteArray(), 0));
            bs.Set(0, false);
            Assert.AreEqual(0b00111111_11101111_11111011_11111110u, BitConverter.ToUInt32(bs.ToByteArray(), 0));

            bs[10] = true;
            Assert.AreEqual(0b00111111_11101111_11111111_11111110u, BitConverter.ToUInt32(bs.ToByteArray(), 0));
            bs[20] = true;
            Assert.AreEqual(0b00111111_11111111_11111111_11111110u, BitConverter.ToUInt32(bs.ToByteArray(), 0));
            bs[30] = true;
            Assert.AreEqual(0b01111111_11111111_11111111_11111110u, BitConverter.ToUInt32(bs.ToByteArray(), 0));
            bs[31] = true;
            Assert.AreEqual(0b11111111_11111111_11111111_11111110u, BitConverter.ToUInt32(bs.ToByteArray(), 0));
            bs.Set(0, true);
            Assert.AreEqual(0b11111111_11111111_11111111_11111111u, BitConverter.ToUInt32(bs.ToByteArray(), 0));
        }