示例#1
0
    public void CanReadBits()
    {
        byte[] bytes = new byte[32];
        new Random(1337).NextBytes(bytes);
        using var bro = new BitReader_Old(bytes);
        using var br  = new BitReader(bytes);

        var oldBits = bro.ReadBits(17);
        var newBits = br.ReadBits(17);

        for (int i = 0; i < oldBits.Length; i++)
        {
            Console.Write(Convert.ToString(oldBits[i], 2).PadLeft(8, '0'));
            Console.Write(' ');
        }
        Console.WriteLine();

        for (int i = 0; i < newBits.Length; i++)
        {
            Console.Write(Convert.ToString(newBits[i], 2).PadLeft(8, '0'));
            Console.Write(' ');
        }
        Console.WriteLine();

        CollectionAssert.AreEqual(oldBits, newBits);
        Assert.AreEqual(bro.Position, br.Position);
    }
示例#2
0
    public void CanReadByte()
    {
        byte[] bytes = new byte[] { 137 };
        using var bro = new BitReader_Old(bytes);
        using var br  = new BitReader(bytes);

        Assert.AreEqual(bro.ReadByte(), br.ReadByte());
        Assert.AreEqual(bro.Position, br.Position);
    }
示例#3
0
    public void CanReadString()
    {
        byte[] bytes = Encoding.ASCII.GetBytes("test");
        using var bro = new BitReader_Old(bytes);
        using var br  = new BitReader(bytes);

        Assert.AreEqual(bro.ReadString(4), br.ReadString(4));
        Assert.AreEqual(bro.Position, br.Position);
    }
示例#4
0
    public void CanReadUInt16()
    {
        byte[] bytes = new byte[sizeof(ushort)];
        WriteUInt16LittleEndian(bytes, 7401);
        using var bro = new BitReader_Old(bytes);
        using var br  = new BitReader(bytes);

        Assert.AreEqual(bro.ReadUInt16(), br.ReadUInt16());
        Assert.AreEqual(bro.Position, br.Position);
    }
示例#5
0
    public void CanReadUInt32()
    {
        byte[] bytes = new byte[sizeof(uint)];
        WriteUInt32LittleEndian(bytes, 1370048);
        using var bro = new BitReader_Old(bytes);
        using var br  = new BitReader(bytes);

        Assert.AreEqual(bro.ReadUInt32(), br.ReadUInt32());
        Assert.AreEqual(bro.Position, br.Position);
    }
示例#6
0
    public void CanReadBytes()
    {
        byte[] bytes = new byte[97];
        new Random(1337).NextBytes(bytes);
        using var bro = new BitReader_Old(bytes);
        using var br  = new BitReader(bytes);

        bro.SeekBits(5);
        br.SeekBits(5);

        var oldBits = bro.ReadBytes(95);
        var newBits = br.ReadBytes(95);

        CollectionAssert.AreEqual(oldBits, newBits);
        Assert.AreEqual(bro.Position, br.Position);
    }