mirror of https://github.com/grafana/loki
chore(dataobj): support computation of min/max values in pages and columns (#16015)
parent
c99771efb8
commit
5ccc6790cb
@ -0,0 +1,78 @@ |
||||
package dataset_test |
||||
|
||||
import ( |
||||
"testing" |
||||
|
||||
"github.com/stretchr/testify/require" |
||||
|
||||
"github.com/grafana/loki/v3/pkg/dataobj/internal/dataset" |
||||
"github.com/grafana/loki/v3/pkg/dataobj/internal/metadata/datasetmd" |
||||
) |
||||
|
||||
func TestValue_MarshalBinary(t *testing.T) { |
||||
t.Run("Null", func(t *testing.T) { |
||||
var expect dataset.Value |
||||
require.True(t, expect.IsNil()) |
||||
|
||||
b, err := expect.MarshalBinary() |
||||
require.NoError(t, err) |
||||
|
||||
var actual dataset.Value |
||||
require.NoError(t, actual.UnmarshalBinary(b)) |
||||
require.True(t, actual.IsNil()) |
||||
}) |
||||
|
||||
t.Run("Int64Value", func(t *testing.T) { |
||||
expect := dataset.Int64Value(-1234) |
||||
require.Equal(t, datasetmd.VALUE_TYPE_INT64, expect.Type()) |
||||
|
||||
b, err := expect.MarshalBinary() |
||||
require.NoError(t, err) |
||||
|
||||
var actual dataset.Value |
||||
require.NoError(t, actual.UnmarshalBinary(b)) |
||||
require.Equal(t, datasetmd.VALUE_TYPE_INT64, actual.Type()) |
||||
require.Equal(t, expect.Int64(), actual.Int64()) |
||||
}) |
||||
|
||||
t.Run("Uint64Value", func(t *testing.T) { |
||||
expect := dataset.Uint64Value(1234) |
||||
require.Equal(t, datasetmd.VALUE_TYPE_UINT64, expect.Type()) |
||||
|
||||
b, err := expect.MarshalBinary() |
||||
require.NoError(t, err) |
||||
|
||||
var actual dataset.Value |
||||
require.NoError(t, actual.UnmarshalBinary(b)) |
||||
require.Equal(t, datasetmd.VALUE_TYPE_UINT64, actual.Type()) |
||||
require.Equal(t, expect.Uint64(), actual.Uint64()) |
||||
}) |
||||
|
||||
t.Run("StringValue", func(t *testing.T) { |
||||
t.Run("Empty", func(t *testing.T) { |
||||
expect := dataset.StringValue("") |
||||
require.Equal(t, datasetmd.VALUE_TYPE_STRING, expect.Type()) |
||||
|
||||
b, err := expect.MarshalBinary() |
||||
require.NoError(t, err) |
||||
|
||||
var actual dataset.Value |
||||
require.NoError(t, actual.UnmarshalBinary(b)) |
||||
require.Equal(t, datasetmd.VALUE_TYPE_STRING, actual.Type()) |
||||
require.Equal(t, expect.String(), actual.String()) |
||||
}) |
||||
|
||||
t.Run("Non-empty", func(t *testing.T) { |
||||
expect := dataset.StringValue("hello, world!") |
||||
require.Equal(t, datasetmd.VALUE_TYPE_STRING, expect.Type()) |
||||
|
||||
b, err := expect.MarshalBinary() |
||||
require.NoError(t, err) |
||||
|
||||
var actual dataset.Value |
||||
require.NoError(t, actual.UnmarshalBinary(b)) |
||||
require.Equal(t, datasetmd.VALUE_TYPE_STRING, actual.Type()) |
||||
require.Equal(t, expect.String(), actual.String()) |
||||
}) |
||||
}) |
||||
} |
Loading…
Reference in new issue