コード例 #1
0
        public void Length(Int32 expectedBitLength, Byte bitOffset, Int32 bytesCount)
        {
            Span <Byte> bytes   = stackalloc Byte[bytesCount];
            var         bitSpan = new BitSpan(bytes, bitOffset);

            Assert.Equal(expectedBitLength, bitSpan.Length);
        }
コード例 #2
0
 public void LengthThrows(Byte bitOffset, Int32 bytesCount)
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => {
         Span <Byte> bytes = stackalloc Byte[bytesCount];
         var bitSpan       = new BitSpan(bytes, bitOffset);
         var length        = bitSpan.Length;
     });
 }
コード例 #3
0
        public void ToString_(Byte bitOffset)
        {
            Span <Byte> bytes    = stackalloc Byte[] { 0b0000_0001, 0b0000_0000, 0b0000_0000, 0b0100_0000 };
            var         integer  = MemoryMarshal.Read <UInt32>(bytes);
            var         expected = Convert.ToString(integer, 2).PadRight(32, '0').Substring(bitOffset);
            var         bitSpan  = new BitSpan(bytes, bitOffset);
            var         actual   = bitSpan.ToString();

            Assert.Equal(expected, actual);
        }
コード例 #4
0
        public void IsEmpty()
        {
            var bitSpan = BitSpan.Empty;

            Assert.True(bitSpan.IsEmpty);

            bitSpan = new BitSpan();
            Assert.True(bitSpan.IsEmpty);

            bitSpan = default;
            Assert.True(bitSpan.IsEmpty);

            Assert.Throws <ArgumentException>(() => {
                Span <Byte> bytes = stackalloc Byte[1];
                var bitSpan2      = new BitSpan(bytes, 0);
            });
        }