From bedbb04b47fb09813dcc7998da43cf76bfdad9c5 Mon Sep 17 00:00:00 2001 From: Benjamin Sheth Date: Thu, 5 Feb 2026 13:31:41 -0600 Subject: [PATCH] fix --- graph/properties_test.go | 8 ++++---- util/size/size.go | 2 +- util/size/size_test.go | 13 ++++++++++--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/graph/properties_test.go b/graph/properties_test.go index 1aa9513..c8c6c9c 100644 --- a/graph/properties_test.go +++ b/graph/properties_test.go @@ -27,11 +27,11 @@ func TestNewProperties(t *testing.T) { properties.Set("test", "test") properties.Set("value", "test") - require.Equal(t, 440, int(properties.SizeOf())) + require.Equal(t, 146, int(properties.SizeOf())) properties.Delete("value") - require.Equal(t, 296, int(properties.SizeOf())) + require.Equal(t, 105, int(properties.SizeOf())) require.False(t, properties.Exists("not found")) require.Equal(t, 1, properties.Len()) @@ -56,14 +56,14 @@ func TestSizeOfProperties(t *testing.T) { // Set an initial value to force allocation properties.Set("initial", 0) - require.Equal(t, 256, int(properties.SizeOf())) + require.Equal(t, 78, int(properties.SizeOf())) // Further allocation past 8 forces a new bucket to be allocated for the backing maps in the properties struct for iter := 0; iter < 8; iter++ { properties.Set("test"+strconv.Itoa(iter), iter) } - require.Equal(t, 1600, int(properties.SizeOf())) + require.Equal(t, 478, int(properties.SizeOf())) } diff --git a/util/size/size.go b/util/size/size.go index d73bbf1..925b5f0 100644 --- a/util/size/size.go +++ b/util/size/size.go @@ -22,7 +22,7 @@ func Of[T any](templatedValue T) Size { switch typedValue := any(templatedValue).(type) { case string: // Strings must have their inner allocation counted - totalSize *= Size(len(typedValue)) + totalSize += Size(len(typedValue)) } return totalSize diff --git a/util/size/size_test.go b/util/size/size_test.go index 5a501dc..f331721 100644 --- a/util/size/size_test.go +++ b/util/size/size_test.go @@ -23,7 +23,10 @@ func TestOfAny(t *testing.T) { require.Equal(t, size.Size(0x08), size.OfAny(complex64(1))) require.Equal(t, size.Size(0x10), size.OfAny(complex128(2))) - require.Equal(t, size.Size(0x40), size.OfAny("test")) + // string header: 16 + // string bytes: 4 + // total: 20 == 0x14 + require.Equal(t, size.Size(0x14), size.OfAny("test")) require.Equal(t, size.Size(0x08), size.OfAny(uint(0))) require.Equal(t, size.Size(0x01), size.OfAny(uint8(1))) require.Equal(t, size.Size(0x02), size.OfAny(uint16(2))) @@ -57,10 +60,14 @@ func TestOfAny(t *testing.T) { require.Equal(t, size.Size(0x30), size.OfAny([]complex64{1, 2, 3})) require.Equal(t, size.Size(0x48), size.OfAny([]complex128{1, 2, 3})) - require.Equal(t, size.Size(0x108), size.OfAny([]string{"a", "baa", "long string"})) + // string headers: 16 * 3 + // string bytes: 1 + 3 + 11 + // slice header: 24 + // grand total: 87 == 0x57 + require.Equal(t, size.Size(0x57), size.OfAny([]string{"a", "baa", "long string"})) require.Equal(t, size.Size(0x1b), size.OfAny([]bool{true, false, true})) - require.Equal(t, size.Size(0x44), size.OfAny([]any{"aa", 123, false})) + require.Equal(t, size.Size(0x36), size.OfAny([]any{"aa", 123, false})) } func TestOfValueSlice(t *testing.T) {