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); }
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; }); }
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); }
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); }); }