(t *testing.T)
| 84 | } |
| 85 | |
| 86 | func TestDecimalWireEncoding(t *testing.T) { |
| 87 | f := New(WithXlang(true), WithCompatible(false)) |
| 88 | data, err := Serialize(f, NewDecimal(big.NewInt(0), 2)) |
| 89 | require.NoError(t, err) |
| 90 | |
| 91 | buf := NewByteBuffer(data) |
| 92 | require.Equal(t, byte(XLangFlag), buf.ReadByte(nil)) |
| 93 | require.Equal(t, int8(NotNullValueFlag), buf.ReadInt8(nil)) |
| 94 | require.Equal(t, uint8(DECIMAL), buf.ReadUint8(nil)) |
| 95 | require.Equal(t, int32(2), buf.ReadVarint32(nil)) |
| 96 | require.Equal(t, uint64(0), buf.ReadVarUint64(nil)) |
| 97 | |
| 98 | data, err = Serialize(f, mustDecimal("9223372036854775808", 0)) |
| 99 | require.NoError(t, err) |
| 100 | buf = NewByteBuffer(data) |
| 101 | require.Equal(t, byte(XLangFlag), buf.ReadByte(nil)) |
| 102 | require.Equal(t, int8(NotNullValueFlag), buf.ReadInt8(nil)) |
| 103 | require.Equal(t, uint8(DECIMAL), buf.ReadUint8(nil)) |
| 104 | require.Equal(t, int32(0), buf.ReadVarint32(nil)) |
| 105 | require.Equal(t, uint64(1), buf.ReadVarUint64(nil)&1) |
| 106 | } |
| 107 | |
| 108 | func TestDecimalRejectsNonCanonicalBigPayload(t *testing.T) { |
| 109 | f := New(WithXlang(true), WithCompatible(false)) |
nothing calls this directly
no test coverage detected