diff --git a/marshal_3_smallint_test.go b/marshal_3_smallint_test.go index 723e15cfa..f9170cdfc 100644 --- a/marshal_3_smallint_test.go +++ b/marshal_3_smallint_test.go @@ -78,34 +78,95 @@ func TestMarshalSmallint(t *testing.T) { }.Run("zeros", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x7f"), - Values: mod.Values{int8(127), int16(127), int32(127), int64(127), int(127), "127", *big.NewInt(127)}.AddVariants(mod.All...), - }.Run("127", t, marshal, unmarshal) + Data: []byte("\x00\x01"), + Values: mod.Values{ + int8(1), int16(1), int32(1), int64(1), int(1), + uint8(1), uint16(1), uint32(1), uint64(1), uint(1), + "1", *big.NewInt(1), + }.AddVariants(mod.All...), + }.Run("1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\xff\xff"), + Values: mod.Values{ + int8(-1), int16(-1), int32(-1), int64(-1), int(-1), + "-1", *big.NewInt(-1), + }.AddVariants(mod.All...), + }.Run("-1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x00\x7f"), + Values: mod.Values{ + int8(127), int16(127), int32(127), int64(127), int(127), + uint16(127), uint32(127), uint64(127), uint(127), uint(127), + "127", *big.NewInt(127), + }.AddVariants(mod.All...), + }.Run("maxInt8", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\xff\x80"), + Values: mod.Values{ + int8(-128), int16(-128), int32(-128), int64(-128), int(-128), + "-128", *big.NewInt(-128), + }.AddVariants(mod.All...), + }.Run("minInt8", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x00\x80"), + Values: mod.Values{ + int16(128), int32(128), int64(128), int(128), + uint16(128), uint32(128), uint64(128), uint(128), uint(128), + "128", *big.NewInt(128)}.AddVariants(mod.All...), + }.Run("maxInt8+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\x80"), - Values: mod.Values{int8(-128), int16(-128), int32(-128), int64(-128), int(-128), "-128", *big.NewInt(-128)}.AddVariants(mod.All...), - }.Run("-128", t, marshal, unmarshal) + Data: []byte("\xff\x7f"), + Values: mod.Values{ + int16(-129), int32(-129), int64(-129), int(-129), + "-129", *big.NewInt(-129), + }.AddVariants(mod.All...), + }.Run("minInt8-1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x7f\xff"), - Values: mod.Values{int16(32767), int32(32767), int64(32767), int(32767), "32767", *big.NewInt(32767)}.AddVariants(mod.All...), - }.Run("32767", t, marshal, unmarshal) + Data: []byte("\x7f\xff"), + Values: mod.Values{ + int16(32767), int32(32767), int64(32767), int(32767), + uint16(32767), uint32(32767), uint64(32767), uint(32767), + "32767", *big.NewInt(32767)}.AddVariants(mod.All...), + }.Run("maxInt16", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x80\x00"), - Values: mod.Values{int16(-32768), int32(-32768), int64(-32768), int(-32768), "-32768", *big.NewInt(-32768)}.AddVariants(mod.All...), - }.Run("-32768", t, marshal, unmarshal) + Data: []byte("\x80\x00"), + Values: mod.Values{ + int16(-32768), int32(-32768), int64(-32768), int(-32768), + "-32768", *big.NewInt(-32768), + }.AddVariants(mod.All...), + }.Run("minInt16", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\xff"), - Values: mod.Values{uint8(255), uint16(255), uint32(255), uint64(255), uint(255)}.AddVariants(mod.All...), - }.Run("255", t, marshal, unmarshal) + Data: []byte("\x00\xff"), + Values: mod.Values{ + uint8(255), uint16(255), uint32(255), uint64(255), uint(255), + int16(255), int32(255), int64(255), int(255), + "255", *big.NewInt(255), + }.AddVariants(mod.All...), + }.Run("maxUint8", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff"), - Values: mod.Values{uint16(65535), uint32(65535), uint64(65535), uint(65535)}.AddVariants(mod.All...), - }.Run("65535", t, marshal, unmarshal) + Data: []byte("\x01\x00"), + Values: mod.Values{ + uint16(256), uint32(256), uint64(256), uint(256), + int16(256), int32(256), int64(256), int(256), + "256", *big.NewInt(256), + }.AddVariants(mod.All...), + }.Run("maxUint8+1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\xff\xff"), + Values: mod.Values{ + uint16(65535), uint32(65535), uint64(65535), uint(65535), + }.AddVariants(mod.All...), + }.Run("maxUint16", t, marshal, unmarshal) }) } } diff --git a/marshal_4_int_test.go b/marshal_4_int_test.go index 7d9b8d5ab..d0c7a29ec 100644 --- a/marshal_4_int_test.go +++ b/marshal_4_int_test.go @@ -79,28 +79,64 @@ func TestMarshalInt(t *testing.T) { }.Run("zeros", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x7f\xff\xff\xff"), + Data: []byte("\x00\x00\x00\x01"), Values: mod.Values{ - int32(2147483647), int64(2147483647), int(2147483647), - "2147483647", *big.NewInt(2147483647), + int8(1), int16(1), int32(1), int64(1), int(1), + uint8(1), uint16(1), uint32(1), uint64(1), uint(1), + "1", *big.NewInt(1), }.AddVariants(mod.All...), - }.Run("2147483647", t, marshal, unmarshal) + }.Run("+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x80\x00\x00\x00"), + Data: []byte("\xff\xff\xff\xff"), Values: mod.Values{ - int32(-2147483648), int64(-2147483648), int(-2147483648), - "-2147483648", *big.NewInt(-2147483648), + int16(-1), int32(-1), int64(-1), int(-1), + "-1", *big.NewInt(-1), + }.AddVariants(mod.All...), + }.Run("-1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x00\x00\x00\x7f"), + Values: mod.Values{ + int8(127), int16(127), int32(127), int64(127), int(127), + uint8(127), uint16(127), uint32(127), uint64(127), uint(127), + "127", *big.NewInt(127), + }.AddVariants(mod.All...), + }.Run("maxInt8", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\xff\xff\xff\x80"), + Values: mod.Values{ + int8(-128), int16(-128), int32(-128), int64(-128), int(-128), + "-128", *big.NewInt(-128), + }.AddVariants(mod.All...), + }.Run("minInt8", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x00\x00\x00\x80"), + Values: mod.Values{ + int16(128), int32(128), int64(128), int(128), + uint16(128), uint32(128), uint64(128), uint(128), + "128", *big.NewInt(128), + }.AddVariants(mod.All...), + }.Run("maxInt8+1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\xff\xff\xff\x7f"), + Values: mod.Values{ + int16(-129), int32(-129), int64(-129), int(-129), + "-129", *big.NewInt(-129), }.AddVariants(mod.All...), - }.Run("-2147483648", t, marshal, unmarshal) + }.Run("minInt8-1", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\x00\x00\x7f\xff"), Values: mod.Values{ int16(32767), int32(32767), int64(32767), int(32767), + uint16(32767), uint32(32767), uint64(32767), uint(32767), "32767", *big.NewInt(32767), }.AddVariants(mod.All...), - }.Run("32767", t, marshal, unmarshal) + }.Run("maxInt16", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\xff\xff\x80\x00"), @@ -108,44 +144,84 @@ func TestMarshalInt(t *testing.T) { int16(-32768), int32(-32768), int64(-32768), int(-32768), "-32768", *big.NewInt(-32768), }.AddVariants(mod.All...), - }.Run("-32768", t, marshal, unmarshal) + }.Run("minInt16", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x7f"), + Data: []byte("\x00\x00\x80\x00"), Values: mod.Values{ - int8(127), int16(127), int32(127), int64(127), int(127), - "127", *big.NewInt(127), + int32(32768), int64(32768), int(32768), + uint32(32768), uint64(32768), uint(32768), + "32768", *big.NewInt(32768), }.AddVariants(mod.All...), - }.Run("127", t, marshal, unmarshal) + }.Run("maxInt16+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\x80"), + Data: []byte("\xff\xff\x7f\xff"), Values: mod.Values{ - int8(-128), int16(-128), int32(-128), int64(-128), int(-128), - "-128", *big.NewInt(-128), + int32(-32769), int64(-32769), int(-32769), + "-32769", *big.NewInt(-32769), + }.AddVariants(mod.All...), + }.Run("minInt16-1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x7f\xff\xff\xff"), + Values: mod.Values{ + int32(2147483647), int64(2147483647), int(2147483647), + uint32(2147483647), uint64(2147483647), uint(2147483647), + "2147483647", *big.NewInt(2147483647), + }.AddVariants(mod.All...), + }.Run("maxInt32", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x80\x00\x00\x00"), + Values: mod.Values{ + int32(-2147483648), int64(-2147483648), int(-2147483648), + "-2147483648", *big.NewInt(-2147483648), }.AddVariants(mod.All...), - }.Run("-128", t, marshal, unmarshal) + }.Run("minInt32", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\x00\x00\x00\xff"), Values: mod.Values{ uint8(255), uint16(255), uint32(255), uint64(255), uint(255), + int16(255), int32(255), int64(255), int(255), + "255", *big.NewInt(255), + }.AddVariants(mod.All...), + }.Run("maxUint8", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x00\x00\x01\x00"), + Values: mod.Values{ + uint16(256), uint32(256), uint64(256), uint(256), + int16(256), int32(256), int64(256), int(256), + "256", *big.NewInt(256), }.AddVariants(mod.All...), - }.Run("255", t, marshal, unmarshal) + }.Run("maxUint8+1", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\x00\x00\xff\xff"), Values: mod.Values{ uint16(65535), uint32(65535), uint64(65535), uint(65535), + int32(65535), int64(65535), int(65535), + "65535", *big.NewInt(65535), + }.AddVariants(mod.All...), + }.Run("maxUint16", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x00\x01\x00\x00"), + Values: mod.Values{ + uint32(65536), uint64(65536), uint(65536), + int32(65536), int64(65536), int(65536), + "65536", *big.NewInt(65536), }.AddVariants(mod.All...), - }.Run("65535", t, marshal, unmarshal) + }.Run("maxUint16+1", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\xff\xff\xff\xff"), Values: mod.Values{ uint32(4294967295), uint64(4294967295), uint(4294967295), }.AddVariants(mod.All...), - }.Run("4294967295", t, marshal, unmarshal) + }.Run("maxUint32", t, marshal, unmarshal) }) } } diff --git a/marshal_5_bigint_test.go b/marshal_5_bigint_test.go index 452505b01..8878e3f62 100644 --- a/marshal_5_bigint_test.go +++ b/marshal_5_bigint_test.go @@ -78,72 +78,55 @@ func TestMarshalBigInt(t *testing.T) { }.Run("zeros", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x7f\xff\xff\xff\xff\xff\xff\xff"), - Values: mod.Values{ - int64(9223372036854775807), int(9223372036854775807), - uint64(9223372036854775807), uint(9223372036854775807), - "9223372036854775807", *big.NewInt(9223372036854775807), - }.AddVariants(mod.All...), - }.Run("max", t, marshal, unmarshal) - - serialization.PositiveSet{ - Data: []byte("\x80\x00\x00\x00\x00\x00\x00\x00"), - Values: mod.Values{ - int64(-9223372036854775808), int(-9223372036854775808), - "-9223372036854775808", *big.NewInt(-9223372036854775808), - }.AddVariants(mod.All...), - }.Run("min", t, marshal, unmarshal) - - serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x80\x00\x00\x00"), + Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x01"), Values: mod.Values{ - int64(2147483648), int(2147483648), - uint32(2147483648), uint64(2147483648), uint(2147483648), - "2147483648", *big.NewInt(2147483648), + int8(1), int16(1), int32(1), int64(1), int(1), + uint8(1), uint16(1), uint32(1), uint64(1), uint(1), + "1", *big.NewInt(1), }.AddVariants(mod.All...), - }.Run("maxInt32+1", t, marshal, unmarshal) + }.Run("+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\x7f\xff\xff\xff"), + Data: []byte("\xff\xff\xff\xff\xff\xff\xff\xff"), Values: mod.Values{ - int64(-2147483649), int(-2147483649), - "-2147483649", *big.NewInt(-2147483649), + int8(-1), int16(-1), int32(-1), int64(-1), int(-1), + "-1", *big.NewInt(-1), }.AddVariants(mod.All...), - }.Run("minInt32-1", t, marshal, unmarshal) + }.Run("-1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x7f\xff\xff\xff"), + Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x7f"), Values: mod.Values{ - int32(2147483647), int64(2147483647), int(2147483647), - uint32(2147483647), uint64(2147483647), uint(2147483647), - "2147483647", *big.NewInt(2147483647), + int8(127), int16(127), int32(127), int64(127), int(127), + uint8(127), uint16(127), uint32(127), uint64(127), uint(127), + "127", *big.NewInt(127), }.AddVariants(mod.All...), - }.Run("maxInt32", t, marshal, unmarshal) + }.Run("maxInt8", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\x80\x00\x00\x00"), + Data: []byte("\xff\xff\xff\xff\xff\xff\xff\x80"), Values: mod.Values{ - int32(-2147483648), int64(-2147483648), int(-2147483648), - "-2147483648", *big.NewInt(-2147483648), + int8(-128), int16(-128), int32(-128), int64(-128), int(-128), + "-128", *big.NewInt(-128), }.AddVariants(mod.All...), - }.Run("minInt32", t, marshal, unmarshal) + }.Run("minInt8", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x00\x00\x80\x00"), + Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x80"), Values: mod.Values{ - int32(32768), int64(32768), int(32768), - uint16(32768), uint32(32768), uint64(32768), uint(32768), - "32768", *big.NewInt(32768), + int16(128), int32(128), int64(128), int(128), + uint8(128), uint16(128), uint32(128), uint64(128), uint(128), + "128", *big.NewInt(128), }.AddVariants(mod.All...), - }.Run("maxInt16+1", t, marshal, unmarshal) + }.Run("maxInt8+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\xff\xff\x7f\xff"), + Data: []byte("\xff\xff\xff\xff\xff\xff\xff\x7f"), Values: mod.Values{ - int32(-32769), int64(-32769), int(-32769), - "-32769", *big.NewInt(-32769), + int16(-129), int32(-129), int64(-129), int(-129), + "-129", *big.NewInt(-129), }.AddVariants(mod.All...), - }.Run("minInt16-1", t, marshal, unmarshal) + }.Run("minInt8-1", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\x00\x00\x00\x00\x00\x00\x7f\xff"), @@ -163,60 +146,79 @@ func TestMarshalBigInt(t *testing.T) { }.Run("minInt16", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x80"), + Data: []byte("\x00\x00\x00\x00\x00\x00\x80\x00"), Values: mod.Values{ - int16(128), int32(128), int64(128), int(128), - uint8(128), uint16(128), uint32(128), uint64(128), uint(128), - "128", *big.NewInt(128), + int32(32768), int64(32768), int(32768), + uint16(32768), uint32(32768), uint64(32768), uint(32768), + "32768", *big.NewInt(32768), }.AddVariants(mod.All...), - }.Run("maxInt8+1", t, marshal, unmarshal) + }.Run("maxInt16+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\xff\xff\xff\x7f"), + Data: []byte("\xff\xff\xff\xff\xff\xff\x7f\xff"), Values: mod.Values{ - int16(-129), int32(-129), int64(-129), int(-129), - "-129", *big.NewInt(-129), + int32(-32769), int64(-32769), int(-32769), + "-32769", *big.NewInt(-32769), }.AddVariants(mod.All...), - }.Run("minInt8-1", t, marshal, unmarshal) + }.Run("minInt16-1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x7f"), + Data: []byte("\x00\x00\x00\x00\x7f\xff\xff\xff"), Values: mod.Values{ - int8(127), int16(127), int32(127), int64(127), int(127), - uint8(127), uint16(127), uint32(127), uint64(127), uint(127), - "127", *big.NewInt(127), + int32(2147483647), int64(2147483647), int(2147483647), + uint32(2147483647), uint64(2147483647), uint(2147483647), + "2147483647", *big.NewInt(2147483647), }.AddVariants(mod.All...), - }.Run("maxInt8", t, marshal, unmarshal) + }.Run("maxInt32", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x01"), + Data: []byte("\xff\xff\xff\xff\x80\x00\x00\x00"), Values: mod.Values{ - int8(1), int16(1), int32(1), int64(1), int(1), - uint8(1), uint16(1), uint32(1), uint64(1), uint(1), - "1", *big.NewInt(1), + int32(-2147483648), int64(-2147483648), int(-2147483648), + "-2147483648", *big.NewInt(-2147483648), }.AddVariants(mod.All...), - }.Run("1", t, marshal, unmarshal) + }.Run("minInt32", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\xff\xff\xff\x80"), + Data: []byte("\x00\x00\x00\x00\x80\x00\x00\x00"), Values: mod.Values{ - int8(-128), int16(-128), int32(-128), int64(-128), int(-128), - "-128", *big.NewInt(-128), + int64(2147483648), int(2147483648), + uint32(2147483648), uint64(2147483648), uint(2147483648), + "2147483648", *big.NewInt(2147483648), }.AddVariants(mod.All...), - }.Run("minInt8", t, marshal, unmarshal) + }.Run("maxInt32+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\xff\xff\xff\xff"), + Data: []byte("\xff\xff\xff\xff\x7f\xff\xff\xff"), Values: mod.Values{ - int8(-1), int16(-1), int32(-1), int64(-1), int(-1), - "-1", *big.NewInt(-1), + int64(-2147483649), int(-2147483649), + "-2147483649", *big.NewInt(-2147483649), }.AddVariants(mod.All...), - }.Run("-1", t, marshal, unmarshal) + }.Run("minInt32-1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x7f\xff\xff\xff\xff\xff\xff\xff"), + Values: mod.Values{ + int64(9223372036854775807), int(9223372036854775807), + uint64(9223372036854775807), uint(9223372036854775807), + "9223372036854775807", *big.NewInt(9223372036854775807), + }.AddVariants(mod.All...), + }.Run("maxInt64", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x80\x00\x00\x00\x00\x00\x00\x00"), + Values: mod.Values{ + int64(-9223372036854775808), int(-9223372036854775808), + "-9223372036854775808", *big.NewInt(-9223372036854775808), + }.AddVariants(mod.All...), + }.Run("minInt64", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\x00\x00\x00\x00\x00\x00\x00\xff"), Values: mod.Values{ uint8(255), uint16(255), uint32(255), uint64(255), uint(255), + int16(255), int32(255), int64(255), int(255), + "255", *big.NewInt(255), }.AddVariants(mod.All...), }.Run("maxUint8", t, marshal, unmarshal) @@ -224,6 +226,8 @@ func TestMarshalBigInt(t *testing.T) { Data: []byte("\x00\x00\x00\x00\x00\x00\x01\x00"), Values: mod.Values{ uint16(256), uint32(256), uint64(256), uint(256), + int16(256), int32(256), int64(256), int(256), + "256", *big.NewInt(256), }.AddVariants(mod.All...), }.Run("maxUint8+1", t, marshal, unmarshal) @@ -231,6 +235,8 @@ func TestMarshalBigInt(t *testing.T) { Data: []byte("\x00\x00\x00\x00\x00\x00\xff\xff"), Values: mod.Values{ uint16(65535), uint32(65535), uint64(65535), uint(65535), + int32(65535), int64(65535), int(65535), + "65535", *big.NewInt(65535), }.AddVariants(mod.All...), }.Run("maxUint16", t, marshal, unmarshal) @@ -238,6 +244,8 @@ func TestMarshalBigInt(t *testing.T) { Data: []byte("\x00\x00\x00\x00\x00\x01\x00\x00"), Values: mod.Values{ uint32(65536), uint64(65536), uint(65536), + int32(65536), int64(65536), int(65536), + "65536", *big.NewInt(65536), }.AddVariants(mod.All...), }.Run("maxUint16+1", t, marshal, unmarshal) @@ -245,6 +253,8 @@ func TestMarshalBigInt(t *testing.T) { Data: []byte("\x00\x00\x00\x00\xff\xff\xff\xff"), Values: mod.Values{ uint32(4294967295), uint64(4294967295), uint(4294967295), + int64(4294967295), int(4294967295), + "4294967295", *big.NewInt(4294967295), }.AddVariants(mod.All...), }.Run("maxUint32", t, marshal, unmarshal) @@ -252,6 +262,8 @@ func TestMarshalBigInt(t *testing.T) { Data: []byte("\x00\x00\x00\x01\x00\x00\x00\x00"), Values: mod.Values{ uint64(4294967296), uint(4294967296), + int64(4294967296), int(4294967296), + "4294967296", *big.NewInt(4294967296), }.AddVariants(mod.All...), }.Run("maxUint32+1", t, marshal, unmarshal) diff --git a/marshal_6_counter_test.go b/marshal_6_counter_test.go index 910583937..99942804f 100644 --- a/marshal_6_counter_test.go +++ b/marshal_6_counter_test.go @@ -78,72 +78,55 @@ func TestMarshalCounter(t *testing.T) { }.Run("zeros", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x7f\xff\xff\xff\xff\xff\xff\xff"), - Values: mod.Values{ - int64(9223372036854775807), int(9223372036854775807), - uint64(9223372036854775807), uint(9223372036854775807), - "9223372036854775807", *big.NewInt(9223372036854775807), - }.AddVariants(mod.All...), - }.Run("max", t, marshal, unmarshal) - - serialization.PositiveSet{ - Data: []byte("\x80\x00\x00\x00\x00\x00\x00\x00"), - Values: mod.Values{ - int64(-9223372036854775808), int(-9223372036854775808), - "-9223372036854775808", *big.NewInt(-9223372036854775808), - }.AddVariants(mod.All...), - }.Run("min", t, marshal, unmarshal) - - serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x80\x00\x00\x00"), + Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x01"), Values: mod.Values{ - int64(2147483648), int(2147483648), - uint32(2147483648), uint64(2147483648), uint(2147483648), - "2147483648", *big.NewInt(2147483648), + int8(1), int16(1), int32(1), int64(1), int(1), + uint8(1), uint16(1), uint32(1), uint64(1), uint(1), + "1", *big.NewInt(1), }.AddVariants(mod.All...), - }.Run("maxInt32+1", t, marshal, unmarshal) + }.Run("1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\x7f\xff\xff\xff"), + Data: []byte("\xff\xff\xff\xff\xff\xff\xff\xff"), Values: mod.Values{ - int64(-2147483649), int(-2147483649), - "-2147483649", *big.NewInt(-2147483649), + int8(-1), int16(-1), int32(-1), int64(-1), int(-1), + "-1", *big.NewInt(-1), }.AddVariants(mod.All...), - }.Run("minInt32-1", t, marshal, unmarshal) + }.Run("-1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x7f\xff\xff\xff"), + Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x7f"), Values: mod.Values{ - int32(2147483647), int64(2147483647), int(2147483647), - uint32(2147483647), uint64(2147483647), uint(2147483647), - "2147483647", *big.NewInt(2147483647), + int8(127), int16(127), int32(127), int64(127), int(127), + uint8(127), uint16(127), uint32(127), uint64(127), uint(127), + "127", *big.NewInt(127), }.AddVariants(mod.All...), - }.Run("maxInt32", t, marshal, unmarshal) + }.Run("maxInt8", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\x80\x00\x00\x00"), + Data: []byte("\xff\xff\xff\xff\xff\xff\xff\x80"), Values: mod.Values{ - int32(-2147483648), int64(-2147483648), int(-2147483648), - "-2147483648", *big.NewInt(-2147483648), + int8(-128), int16(-128), int32(-128), int64(-128), int(-128), + "-128", *big.NewInt(-128), }.AddVariants(mod.All...), - }.Run("minInt32", t, marshal, unmarshal) + }.Run("minInt8", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x00\x00\x80\x00"), + Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x80"), Values: mod.Values{ - int32(32768), int64(32768), int(32768), - uint16(32768), uint32(32768), uint64(32768), uint(32768), - "32768", *big.NewInt(32768), + int16(128), int32(128), int64(128), int(128), + uint8(128), uint16(128), uint32(128), uint64(128), uint(128), + "128", *big.NewInt(128), }.AddVariants(mod.All...), - }.Run("maxInt16+1", t, marshal, unmarshal) + }.Run("maxInt8+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\xff\xff\x7f\xff"), + Data: []byte("\xff\xff\xff\xff\xff\xff\xff\x7f"), Values: mod.Values{ - int32(-32769), int64(-32769), int(-32769), - "-32769", *big.NewInt(-32769), + int16(-129), int32(-129), int64(-129), int(-129), + "-129", *big.NewInt(-129), }.AddVariants(mod.All...), - }.Run("minInt16-1", t, marshal, unmarshal) + }.Run("minInt8-1", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\x00\x00\x00\x00\x00\x00\x7f\xff"), @@ -163,60 +146,79 @@ func TestMarshalCounter(t *testing.T) { }.Run("minInt16", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x80"), + Data: []byte("\x00\x00\x00\x00\x00\x00\x80\x00"), Values: mod.Values{ - int16(128), int32(128), int64(128), int(128), - uint8(128), uint16(128), uint32(128), uint64(128), uint(128), - "128", *big.NewInt(128), + int32(32768), int64(32768), int(32768), + uint16(32768), uint32(32768), uint64(32768), uint(32768), + "32768", *big.NewInt(32768), }.AddVariants(mod.All...), - }.Run("maxInt8+1", t, marshal, unmarshal) + }.Run("maxInt16+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\xff\xff\xff\x7f"), + Data: []byte("\xff\xff\xff\xff\xff\xff\x7f\xff"), Values: mod.Values{ - int16(-129), int32(-129), int64(-129), int(-129), - "-129", *big.NewInt(-129), + int32(-32769), int64(-32769), int(-32769), + "-32769", *big.NewInt(-32769), }.AddVariants(mod.All...), - }.Run("minInt8-1", t, marshal, unmarshal) + }.Run("minInt16-1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x7f"), + Data: []byte("\x00\x00\x00\x00\x7f\xff\xff\xff"), Values: mod.Values{ - int8(127), int16(127), int32(127), int64(127), int(127), - uint8(127), uint16(127), uint32(127), uint64(127), uint(127), - "127", *big.NewInt(127), + int32(2147483647), int64(2147483647), int(2147483647), + uint32(2147483647), uint64(2147483647), uint(2147483647), + "2147483647", *big.NewInt(2147483647), }.AddVariants(mod.All...), - }.Run("maxInt8", t, marshal, unmarshal) + }.Run("maxInt32", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\xff\xff\xff\x80"), + Data: []byte("\xff\xff\xff\xff\x80\x00\x00\x00"), Values: mod.Values{ - int8(-128), int16(-128), int32(-128), int64(-128), int(-128), - "-128", *big.NewInt(-128), + int32(-2147483648), int64(-2147483648), int(-2147483648), + "-2147483648", *big.NewInt(-2147483648), }.AddVariants(mod.All...), - }.Run("minInt8", t, marshal, unmarshal) + }.Run("minInt32", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\x00\x00\x00\x00\x00\x00\x01"), + Data: []byte("\x00\x00\x00\x00\x80\x00\x00\x00"), Values: mod.Values{ - int8(1), int16(1), int32(1), int64(1), int(1), - uint8(1), uint16(1), uint32(1), uint64(1), uint(1), - "1", *big.NewInt(1), + int64(2147483648), int(2147483648), + uint32(2147483648), uint64(2147483648), uint(2147483648), + "2147483648", *big.NewInt(2147483648), }.AddVariants(mod.All...), - }.Run("1", t, marshal, unmarshal) + }.Run("maxInt32+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\xff\xff\xff\xff\xff\xff\xff\xff"), + Data: []byte("\xff\xff\xff\xff\x7f\xff\xff\xff"), Values: mod.Values{ - int8(-1), int16(-1), int32(-1), int64(-1), int(-1), - "-1", *big.NewInt(-1), + int64(-2147483649), int(-2147483649), + "-2147483649", *big.NewInt(-2147483649), }.AddVariants(mod.All...), - }.Run("-1", t, marshal, unmarshal) + }.Run("minInt32-1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x7f\xff\xff\xff\xff\xff\xff\xff"), + Values: mod.Values{ + int64(9223372036854775807), int(9223372036854775807), + uint64(9223372036854775807), uint(9223372036854775807), + "9223372036854775807", *big.NewInt(9223372036854775807), + }.AddVariants(mod.All...), + }.Run("maxInt64", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x80\x00\x00\x00\x00\x00\x00\x00"), + Values: mod.Values{ + int64(-9223372036854775808), int(-9223372036854775808), + "-9223372036854775808", *big.NewInt(-9223372036854775808), + }.AddVariants(mod.All...), + }.Run("minInt64", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\x00\x00\x00\x00\x00\x00\x00\xff"), Values: mod.Values{ uint8(255), uint16(255), uint32(255), uint64(255), uint(255), + int16(255), int32(255), int64(255), int(255), + "255", *big.NewInt(255), }.AddVariants(mod.All...), }.Run("maxUint8", t, marshal, unmarshal) @@ -224,6 +226,8 @@ func TestMarshalCounter(t *testing.T) { Data: []byte("\x00\x00\x00\x00\x00\x00\x01\x00"), Values: mod.Values{ uint16(256), uint32(256), uint64(256), uint(256), + int16(256), int32(256), int64(256), int(256), + "256", *big.NewInt(256), }.AddVariants(mod.All...), }.Run("maxUint8+1", t, marshal, unmarshal) @@ -231,6 +235,8 @@ func TestMarshalCounter(t *testing.T) { Data: []byte("\x00\x00\x00\x00\x00\x00\xff\xff"), Values: mod.Values{ uint16(65535), uint32(65535), uint64(65535), uint(65535), + int32(65535), int64(65535), int(65535), + "65535", *big.NewInt(65535), }.AddVariants(mod.All...), }.Run("maxUint16", t, marshal, unmarshal) @@ -238,6 +244,8 @@ func TestMarshalCounter(t *testing.T) { Data: []byte("\x00\x00\x00\x00\x00\x01\x00\x00"), Values: mod.Values{ uint32(65536), uint64(65536), uint(65536), + int32(65536), int64(65536), int(65536), + "65536", *big.NewInt(65536), }.AddVariants(mod.All...), }.Run("maxUint16+1", t, marshal, unmarshal) @@ -245,6 +253,8 @@ func TestMarshalCounter(t *testing.T) { Data: []byte("\x00\x00\x00\x00\xff\xff\xff\xff"), Values: mod.Values{ uint32(4294967295), uint64(4294967295), uint(4294967295), + int64(4294967295), int(4294967295), + "4294967295", *big.NewInt(4294967295), }.AddVariants(mod.All...), }.Run("maxUint32", t, marshal, unmarshal) @@ -252,6 +262,8 @@ func TestMarshalCounter(t *testing.T) { Data: []byte("\x00\x00\x00\x01\x00\x00\x00\x00"), Values: mod.Values{ uint64(4294967296), uint(4294967296), + int64(4294967296), int(4294967296), + "4294967296", *big.NewInt(4294967296), }.AddVariants(mod.All...), }.Run("maxUint32+1", t, marshal, unmarshal) @@ -260,7 +272,7 @@ func TestMarshalCounter(t *testing.T) { Values: mod.Values{ uint64(18446744073709551615), uint(18446744073709551615), }.AddVariants(mod.All...), - }.Run("max_uint", t, marshal, unmarshal) + }.Run("maxUint64", t, marshal, unmarshal) }) } } diff --git a/marshal_7_varint_test.go b/marshal_7_varint_test.go index 06093dce6..45519279d 100644 --- a/marshal_7_varint_test.go +++ b/marshal_7_varint_test.go @@ -73,54 +73,78 @@ func TestMarshalVarInt(t *testing.T) { }.Run("zeros", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x7f\xff\xff\xff\xff\xff\xff\xff"), + Data: []byte("\x01"), Values: mod.Values{ - int64(9223372036854775807), int(9223372036854775807), - "9223372036854775807", *big.NewInt(9223372036854775807), + int8(1), int16(1), int32(1), int64(1), int(1), + uint8(1), uint16(1), uint32(1), uint64(1), uint(1), + "1", *big.NewInt(1), }.AddVariants(mod.All...), BrokenMarshalTypes: brokenCustomStrings, BrokenUnmarshalTypes: brokenCustomStrings, - }.Run("maxInt64", t, marshal, unmarshal) + }.Run("+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x80\x00\x00\x00\x00\x00\x00\x00"), + Data: []byte("\xff"), Values: mod.Values{ - int64(-9223372036854775808), int(-9223372036854775808), - "-9223372036854775808", *big.NewInt(-9223372036854775808), + int8(-1), int16(-1), int32(-1), int64(-1), int(-1), + "-1", *big.NewInt(-1), }.AddVariants(mod.All...), BrokenMarshalTypes: brokenCustomStrings, BrokenUnmarshalTypes: brokenCustomStrings, - }.Run("minInt64", t, marshal, unmarshal) + }.Run("-1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x7f\xff\xff\xff"), + Data: []byte("\x7f"), Values: mod.Values{ - int32(2147483647), int64(2147483647), int(2147483647), - "2147483647", *big.NewInt(2147483647), + int8(127), int16(127), int32(127), int64(127), int(127), + uint8(127), uint16(127), uint32(127), uint64(127), uint(127), + "127", *big.NewInt(127), }.AddVariants(mod.All...), BrokenMarshalTypes: brokenCustomStrings, BrokenUnmarshalTypes: brokenCustomStrings, - }.Run("2147483647", t, marshal, unmarshal) + }.Run("maxInt8", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x80\x00\x00\x00"), + Data: []byte("\x80"), Values: mod.Values{ - int32(-2147483648), int64(-2147483648), int(-2147483648), - "-2147483648", *big.NewInt(-2147483648), + int8(-128), int16(-128), int32(-128), int64(-128), int(-128), + "-128", *big.NewInt(-128), + }.AddVariants(mod.All...), + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("minInt8", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x00\x80"), + Values: mod.Values{ + int16(128), int32(128), int64(128), int(128), + uint8(128), uint16(128), uint32(128), uint64(128), uint(128), + "128", *big.NewInt(128), }.AddVariants(mod.All...), BrokenMarshalTypes: brokenCustomStrings, BrokenUnmarshalTypes: brokenCustomStrings, - }.Run("-2147483648", t, marshal, unmarshal) + }.Run("maxInt8+1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\xff\x7f"), + Values: mod.Values{ + int16(-129), int32(-129), int64(-129), int(-129), + "-129", *big.NewInt(-129), + }.AddVariants(mod.All...), + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("minInt8-1", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\x7f\xff"), Values: mod.Values{ int16(32767), int32(32767), int64(32767), int(32767), + uint16(32767), uint32(32767), uint64(32767), uint(32767), "32767", *big.NewInt(32767), }.AddVariants(mod.All...), BrokenMarshalTypes: brokenCustomStrings, BrokenUnmarshalTypes: brokenCustomStrings, - }.Run("32767", t, marshal, unmarshal) + }.Run("maxInt16", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\x80\x00"), @@ -130,57 +154,91 @@ func TestMarshalVarInt(t *testing.T) { }.AddVariants(mod.All...), BrokenMarshalTypes: brokenCustomStrings, BrokenUnmarshalTypes: brokenCustomStrings, - }.Run("-32768", t, marshal, unmarshal) + }.Run("minInt16", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x7f"), + Data: []byte("\x00\x80\x00"), Values: mod.Values{ - int8(127), int16(127), int32(127), int64(127), int(127), - "127", *big.NewInt(127), + int32(32768), int64(32768), int(32768), + uint16(32768), uint32(32768), uint64(32768), uint(32768), + "32768", *big.NewInt(32768), }.AddVariants(mod.All...), BrokenMarshalTypes: brokenCustomStrings, BrokenUnmarshalTypes: brokenCustomStrings, - }.Run("127", t, marshal, unmarshal) + }.Run("maxInt16+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x80"), + Data: []byte("\xff\x7f\xff"), Values: mod.Values{ - int8(-128), int16(-128), int32(-128), int64(-128), int(-128), - "-128", *big.NewInt(-128), + int32(-32769), int64(-32769), int(-32769), + "-32769", *big.NewInt(-32769), }.AddVariants(mod.All...), BrokenMarshalTypes: brokenCustomStrings, BrokenUnmarshalTypes: brokenCustomStrings, - }.Run("-128", t, marshal, unmarshal) + }.Run("minInt16-1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\xff"), + Data: []byte("\x7f\xff\xff\xff"), Values: mod.Values{ - uint8(255), uint16(255), uint32(255), uint64(255), uint(255), + int32(2147483647), int64(2147483647), int(2147483647), + uint32(2147483647), uint64(2147483647), uint(2147483647), + "2147483647", *big.NewInt(2147483647), }.AddVariants(mod.All...), - }.Run("255", t, marshal, unmarshal) + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("maxInt32", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\xff\xff"), + Data: []byte("\x80\x00\x00\x00"), Values: mod.Values{ - uint16(65535), uint32(65535), uint64(65535), uint(65535), + int32(-2147483648), int64(-2147483648), int(-2147483648), + "-2147483648", *big.NewInt(-2147483648), }.AddVariants(mod.All...), - }.Run("65535", t, marshal, unmarshal) + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("minInt32", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\xff\xff\xff\xff"), + Data: []byte("\x00\x80\x00\x00\x00"), Values: mod.Values{ - uint32(4294967295), uint64(4294967295), uint(4294967295), + int64(2147483648), int(2147483648), + uint32(2147483648), uint64(2147483648), uint(2147483648), + "2147483648", *big.NewInt(2147483648), }.AddVariants(mod.All...), - }.Run("4294967295", t, marshal, unmarshal) + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("maxInt32+1", t, marshal, unmarshal) serialization.PositiveSet{ - Data: []byte("\x00\xff\xff\xff\xff\xff\xff\xff\xff"), + Data: []byte("\xff\x7f\xff\xff\xff"), Values: mod.Values{ - uint64(18446744073709551615), uint(18446744073709551615), + int64(-2147483649), int(-2147483649), + "-2147483649", *big.NewInt(-2147483649), }.AddVariants(mod.All...), - BrokenMarshalTypes: brokenUints, - BrokenUnmarshalTypes: brokenUints, - }.Run("max_uint", t, marshal, unmarshal) + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("minInt32-1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x7f\xff\xff\xff\xff\xff\xff\xff"), + Values: mod.Values{ + int64(9223372036854775807), int(9223372036854775807), + uint64(9223372036854775807), uint(9223372036854775807), + "9223372036854775807", *big.NewInt(9223372036854775807), + }.AddVariants(mod.All...), + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("maxInt64", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x80\x00\x00\x00\x00\x00\x00\x00"), + Values: mod.Values{ + int64(-9223372036854775808), int(-9223372036854775808), + "-9223372036854775808", *big.NewInt(-9223372036854775808), + }.AddVariants(mod.All...), + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("minInt64", t, marshal, unmarshal) serialization.PositiveSet{ Data: []byte("\x00\x80\x00\x00\x00\x00\x00\x00\x00"), @@ -199,4 +257,92 @@ func TestMarshalVarInt(t *testing.T) { BrokenMarshalTypes: brokenBigStrings, BrokenUnmarshalTypes: brokenBigStrings, }.Run("minInt64-1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x00\xff"), + Values: mod.Values{ + uint8(255), uint16(255), uint32(255), uint64(255), uint(255), + int16(255), int32(255), int64(255), int(255), + "255", *big.NewInt(255), + }.AddVariants(mod.All...), + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("maxUint8", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x01\x00"), + Values: mod.Values{ + uint16(256), uint32(256), uint64(256), uint(256), + int16(256), int32(256), int64(256), int(256), + "256", *big.NewInt(256), + }.AddVariants(mod.All...), + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("maxUint8+1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x00\xff\xff"), + Values: mod.Values{ + uint16(65535), uint32(65535), uint64(65535), uint(65535), + int32(65535), int64(65535), int(65535), + "65535", *big.NewInt(65535), + }.AddVariants(mod.All...), + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("maxUint16", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x01\x00\x00"), + Values: mod.Values{ + uint32(65536), uint64(65536), uint(65536), + int32(65536), int64(65536), int(65536), + "65536", *big.NewInt(65536), + }.AddVariants(mod.All...), + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("maxUint16+1", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x00\xff\xff\xff\xff"), + Values: mod.Values{ + uint32(4294967295), uint64(4294967295), uint(4294967295), + int64(4294967295), int(4294967295), + "4294967295", *big.NewInt(4294967295), + }.AddVariants(mod.All...), + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("maxUint32", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x01\x00\x00\x00\x00"), + Values: mod.Values{ + uint64(4294967296), uint(4294967296), + int64(4294967296), int(4294967296), + "4294967296", *big.NewInt(4294967296), + }.AddVariants(mod.All...), + BrokenMarshalTypes: brokenCustomStrings, + BrokenUnmarshalTypes: brokenCustomStrings, + }.Run("maxUint32+1", t, marshal, unmarshal) + + bigMaxUint64 := new(big.Int) + bigMaxUint64.SetString("18446744073709551615", 10) + + serialization.PositiveSet{ + Data: []byte("\x00\xff\xff\xff\xff\xff\xff\xff\xff"), + Values: mod.Values{ + uint64(18446744073709551615), uint(18446744073709551615), + "18446744073709551615", *bigMaxUint64, + }.AddVariants(mod.All...), + BrokenMarshalTypes: append(brokenUints, brokenBigStrings...), + BrokenUnmarshalTypes: append(brokenUints, brokenBigStrings...), + }.Run("maxUint64", t, marshal, unmarshal) + + serialization.PositiveSet{ + Data: []byte("\x01\x00\x00\x00\x00\x00\x00\x00\x00"), + Values: mod.Values{ + "18446744073709551616", *big.NewInt(0).Add(bigMaxUint64, big.NewInt(1)), + }.AddVariants(mod.All...), + BrokenMarshalTypes: append(brokenUints, brokenBigStrings...), + BrokenUnmarshalTypes: append(brokenUints, brokenBigStrings...), + }.Run("maxUint64+1", t, marshal, unmarshal) }