MCPcopy Create free account
hub / github.com/apache/fory / TestDecimalWireEncoding

Function TestDecimalWireEncoding

go/fory/decimal_test.go:86–106  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

84}
85
86func 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
108func TestDecimalRejectsNonCanonicalBigPayload(t *testing.T) {
109 f := New(WithXlang(true), WithCompatible(false))

Callers

nothing calls this directly

Calls 15

ReadByteMethod · 0.95
ReadInt8Method · 0.95
ReadUint8Method · 0.95
ReadVarint32Method · 0.95
ReadVarUint64Method · 0.95
WithXlangFunction · 0.85
WithCompatibleFunction · 0.85
NewDecimalFunction · 0.85
NewByteBufferFunction · 0.85
NewFunction · 0.70
SerializeFunction · 0.70
mustDecimalFunction · 0.70

Tested by

no test coverage detected