From 5dfbb1137405a3e0c5bfe8ac31e02a940668d1d6 Mon Sep 17 00:00:00 2001 From: "Mr. Z" Date: Thu, 3 Jul 2025 21:51:40 -0400 Subject: [PATCH] test(txmap): add delete coverage for SplitSwissMapUint64 --- split_swiss_map_uint64_delete_test.go | 44 +++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 split_swiss_map_uint64_delete_test.go diff --git a/split_swiss_map_uint64_delete_test.go b/split_swiss_map_uint64_delete_test.go new file mode 100644 index 0000000..eb05beb --- /dev/null +++ b/split_swiss_map_uint64_delete_test.go @@ -0,0 +1,44 @@ +package txmap + +import ( + "testing" + + "github.com/bsv-blockchain/go-bt/v2/chainhash" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestSplitSwissMapUint64_Delete(t *testing.T) { + t.Run("bucket does not exist", func(t *testing.T) { + m := NewSplitSwissMapUint64(10) + h := chainhash.Hash{0x00, 0x01} + bucket := Bytes2Uint16Buckets(h, m.nrOfBuckets) + delete(m.m, bucket) + + err := m.Delete(h) + require.Error(t, err) + assert.ErrorIs(t, err, ErrBucketDoesNotExist) + }) + + t.Run("hash does not exist", func(t *testing.T) { + m := NewSplitSwissMapUint64(10) + h := chainhash.Hash{0x02, 0x01} + + err := m.Delete(h) + require.Error(t, err) + assert.ErrorIs(t, err, ErrHashDoesNotExist) + }) + + t.Run("success", func(t *testing.T) { + m := NewSplitSwissMapUint64(10) + h := chainhash.Hash{0x03, 0x01} + + require.NoError(t, m.Put(h, 1)) + assert.Equal(t, 1, m.Length()) + + err := m.Delete(h) + require.NoError(t, err) + assert.False(t, m.Exists(h)) + assert.Equal(t, 0, m.Length()) + }) +}