public void Maximum_32_bit_integer_input()
    {
        var integers = new[] { 0xFFFFFFFFu };
        var expected = new[] { 0x8Fu, 0xFFu, 0xFFu, 0xFFu, 0x7Fu };

        Assert.Equal(expected, VariableLengthQuantity.Encode(integers));
    }
    public void Smallest_quintuple_byte()
    {
        var integers = new[] { 0x10000000u };
        var expected = new[] { 0x81u, 0x80u, 0x80u, 0x80u, 0x0u };

        Assert.Equal(expected, VariableLengthQuantity.Encode(integers));
    }
    public void Arbitrary_quintuple_byte()
    {
        var integers = new[] { 0xFF000000u };
        var expected = new[] { 0x8Fu, 0xF8u, 0x80u, 0x80u, 0x0u };

        Assert.Equal(expected, VariableLengthQuantity.Encode(integers));
    }
    public void Largest_quadruple_byte()
    {
        var integers = new[] { 0xFFFFFFFu };
        var expected = new[] { 0xFFu, 0xFFu, 0xFFu, 0x7Fu };

        Assert.Equal(expected, VariableLengthQuantity.Encode(integers));
    }
Пример #5
0
 public void From_bytes()
 {
     Assert.That(VariableLengthQuantity.FromBytes(new[] { 0x7fu }), Is.EqualTo(new[] { 0x7fu }));
     Assert.That(VariableLengthQuantity.FromBytes(new[] { 0xc0u, 0x00u }), Is.EqualTo(new[] { 0x2000u }));
     Assert.That(VariableLengthQuantity.FromBytes(new[] { 0xffu, 0xffu, 0x7fu }), Is.EqualTo(new[] { 0x1fffffu }));
     Assert.That(VariableLengthQuantity.FromBytes(new[] { 0x81u, 0x80u, 0x80u, 0x00u }), Is.EqualTo(new[] { 0x200000u }));
     Assert.That(VariableLengthQuantity.FromBytes(new[] { 0x8fu, 0xffu, 0xffu, 0xffu, 0x7fu }), Is.EqualTo(new[] { 0xffffffffu }));
 }
Пример #6
0
 public void Overflow()
 {
     Assert.That(() => VariableLengthQuantity.FromBytes(new[] { 0xffu, 0xffu, 0xffu, 0xffu, 0x7fu }), Throws.Exception);
 }
Пример #7
0
 public void Incomplete_byte_sequence()
 {
     Assert.That(() => VariableLengthQuantity.FromBytes(new[] { 0xffu }), Throws.Exception);
 }
Пример #8
0
 public void From_bytes_multiple_values()
 {
     Assert.That(VariableLengthQuantity.FromBytes(new[] { 0xc0u, 0x00u, 0xc8u, 0xe8u, 0x56u, 0xffu, 0xffu, 0xffu, 0x7fu, 0x00u, 0xffu, 0x7fu, 0x81u, 0x80u, 0x00u }),
                 Is.EqualTo(new[] { 0x2000u, 0x123456u, 0x0fffffffu, 0x00u, 0x3fffu, 0x4000u }));
 }
Пример #9
0
 public void To_single_byte()
 {
     Assert.That(VariableLengthQuantity.ToBytes(new[] { 0x00u }), Is.EqualTo(new[] { 0x00u }));
     Assert.That(VariableLengthQuantity.ToBytes(new[] { 0x40u }), Is.EqualTo(new[] { 0x40u }));
     Assert.That(VariableLengthQuantity.ToBytes(new[] { 0x7fu }), Is.EqualTo(new[] { 0x7fu }));
 }
Пример #10
0
 public void To_quintuple_byte()
 {
     Assert.That(VariableLengthQuantity.ToBytes(new[] { 0x10000000u }), Is.EqualTo(new[] { 0x81u, 0x80u, 0x80u, 0x80u, 0x00u }));
     Assert.That(VariableLengthQuantity.ToBytes(new[] { 0xff000000u }), Is.EqualTo(new[] { 0x8fu, 0xf8u, 0x80u, 0x80u, 0x00u }));
     Assert.That(VariableLengthQuantity.ToBytes(new[] { 0xffffffffu }), Is.EqualTo(new[] { 0x8fu, 0xffu, 0xffu, 0xffu, 0x7fu }));
 }
Пример #11
0
 public void Overflow()
 {
     Assert.Throws <InvalidOperationException>(() => VariableLengthQuantity.FromBytes(new[] { 0xffu, 0xffu, 0xffu, 0xffu, 0x7fu }));
 }
Пример #12
0
 public void Incomplete_byte_sequence()
 {
     Assert.Throws <InvalidOperationException>(() => VariableLengthQuantity.FromBytes(new[] { 0xffu }));
 }
Пример #13
0
 public void To_bytes_multiple_values()
 {
     Assert.Equal(new[] { 0x40u, 0x7fu }, VariableLengthQuantity.ToBytes(new[] { 0x40u, 0x7fu }));
     Assert.Equal(new[] { 0x81u, 0x80u, 0x00u, 0xc8u, 0xe8u, 0x56u }, VariableLengthQuantity.ToBytes(new[] { 0x4000u, 0x123456u }));
     Assert.Equal(new[] { 0xc0u, 0x00u, 0xc8u, 0xe8u, 0x56u, 0xffu, 0xffu, 0xffu, 0x7fu, 0x00u, 0xffu, 0x7fu, 0x81u, 0x80u, 0x00u }, VariableLengthQuantity.ToBytes(new[] { 0x2000u, 0x123456u, 0x0fffffffu, 0x00u, 0x3fffu, 0x4000u }));
 }
Пример #14
0
 public void To_triple_byte()
 {
     Assert.Equal(new[] { 0x81u, 0x80u, 0x00u }, VariableLengthQuantity.ToBytes(new[] { 0x4000u }));
     Assert.Equal(new[] { 0xc0u, 0x80u, 0x00u }, VariableLengthQuantity.ToBytes(new[] { 0x100000u }));
     Assert.Equal(new[] { 0xffu, 0xffu, 0x7fu }, VariableLengthQuantity.ToBytes(new[] { 0x1fffffu }));
 }
Пример #15
0
    public void Chained_execution_is_identity()
    {
        var test = new[] { 0xf2u, 0xf6u, 0x96u, 0x9cu, 0x3bu, 0x39u, 0x2eu, 0x30u, 0xb3u, 0x24u };

        Assert.That(VariableLengthQuantity.FromBytes(VariableLengthQuantity.ToBytes(test)), Is.EquivalentTo(test));
    }
Пример #16
0
    public void Incomplete_sequence_causes_error_even_if_value_is_zero()
    {
        var integers = new[] { 0x80u };

        Assert.Throws <InvalidOperationException>(() => VariableLengthQuantity.Decode(integers));
    }
Пример #17
0
 public void To_quadruple_byte()
 {
     Assert.That(VariableLengthQuantity.ToBytes(new[] { 0x200000u }), Is.EqualTo(new[] { 0x81u, 0x80u, 0x80u, 0x00u }));
     Assert.That(VariableLengthQuantity.ToBytes(new[] { 0x08000000u }), Is.EqualTo(new[] { 0xc0u, 0x80u, 0x80u, 0x00u }));
     Assert.That(VariableLengthQuantity.ToBytes(new[] { 0x0fffffffu }), Is.EqualTo(new[] { 0xffu, 0xffu, 0xffu, 0x7fu }));
 }