From 0b91ba744aeda5719c74341cbc21a564ac5d6f1a Mon Sep 17 00:00:00 2001 From: Tim Beatham Date: Fri, 22 Dec 2023 23:56:25 +0000 Subject: [PATCH] 61-improve-unit-test-coverage - Provided unit tests for g_map and 2p_map --- pkg/crdt/g_map.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/crdt/g_map.go b/pkg/crdt/g_map.go index 791c8e9..67f1587 100644 --- a/pkg/crdt/g_map.go +++ b/pkg/crdt/g_map.go @@ -1,4 +1,4 @@ -// crdt is a golang implementation of a crdt +// crdt provides go implementations for crdts package crdt import ( @@ -65,10 +65,19 @@ func (g *GMap[K, D]) get(key uint64) Bucket[D] { } func (g *GMap[K, D]) Get(key K) D { + if !g.Contains(key) { + var def D + return def + } + return g.get(g.clock.hashFunc(key)).Contents } func (g *GMap[K, D]) Mark(key K) { + if !g.Contains(key) { + return + } + g.lock.Lock() bucket := g.contents[g.clock.hashFunc(key)] bucket.Gravestone = true @@ -89,7 +98,6 @@ func (g *GMap[K, D]) IsMarked(key K) bool { } g.lock.RUnlock() - return marked }