github.com/weaviate/weaviate@v1.24.6/entities/filters/filters_serialization_test.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package filters 13 14 import ( 15 "encoding/json" 16 "testing" 17 18 "github.com/stretchr/testify/assert" 19 "github.com/stretchr/testify/require" 20 "github.com/weaviate/weaviate/entities/models" 21 "github.com/weaviate/weaviate/entities/schema" 22 ) 23 24 func TestSerializeValue(t *testing.T) { 25 t.Run("with a float value", func(t *testing.T) { 26 before := Value{ 27 Value: float64(3), 28 Type: schema.DataTypeNumber, 29 } 30 31 bytes, err := json.Marshal(before) 32 require.Nil(t, err) 33 34 var after Value 35 err = json.Unmarshal(bytes, &after) 36 require.Nil(t, err) 37 38 assert.Equal(t, before, after) 39 }) 40 41 t.Run("with an int value", func(t *testing.T) { 42 before := Value{ 43 Value: int(3), 44 Type: schema.DataTypeInt, 45 } 46 47 bytes, err := json.Marshal(before) 48 require.Nil(t, err) 49 50 var after Value 51 err = json.Unmarshal(bytes, &after) 52 require.Nil(t, err) 53 54 assert.Equal(t, before, after) 55 }) 56 57 t.Run("with a geo value", func(t *testing.T) { 58 before := Value{ 59 Value: GeoRange{ 60 GeoCoordinates: &models.GeoCoordinates{ 61 Latitude: ptFloat32(51.51), 62 Longitude: ptFloat32(-0.09), 63 }, 64 Distance: 2000, 65 }, 66 Type: schema.DataTypeGeoCoordinates, 67 } 68 69 bytes, err := json.Marshal(before) 70 require.Nil(t, err) 71 72 var after Value 73 err = json.Unmarshal(bytes, &after) 74 require.Nil(t, err) 75 76 assert.Equal(t, before, after) 77 }) 78 } 79 80 func ptFloat32(v float32) *float32 { 81 return &v 82 }