Skip to content
Snippets Groups Projects
Commit b6ef89b7 authored by Hans Moog's avatar Hans Moog
Browse files

Feat: fixed last issues in PrefixTrie

parent 1266bcf8
Branches
No related tags found
No related merge requests found
......@@ -2,7 +2,6 @@ package datastructure
import (
"bytes"
"fmt"
"sync"
)
......@@ -38,7 +37,6 @@ func (prefixTrie *PrefixTrie) Get(byteSequenceOrPrefix []byte) (result [][]byte)
if existingNode, exists := currentNode.children[byteSequenceOrPrefix[currentLevel]]; exists {
currentNode = existingNode
} else {
// error tried to inflate non-existing entry
return
}
}
......@@ -46,9 +44,20 @@ func (prefixTrie *PrefixTrie) Get(byteSequenceOrPrefix []byte) (result [][]byte)
if currentNode.value != nil {
result = append(result, currentNode.value)
} else {
// traverse child elements
if false {
fmt.Println("WAS")
elementStack := make([]*PrefixTrie, 1)
elementStack[0] = currentNode
for len(elementStack) != 0 {
currentNode = elementStack[0]
elementStack = elementStack[1:]
if currentNode.value != nil {
result = append(result, currentNode.value)
} else {
for _, child := range currentNode.children {
elementStack = append(elementStack, child)
}
}
}
}
......
......@@ -65,12 +65,6 @@ func TestPrefixTrie_Insert(t *testing.T) {
}
}
assert.True(t, txFound)
assert.Equal(t, true, trie.Delete(tx1Hash))
assert.Equal(t, false, trie.Delete(tx1Hash))
assert.Equal(t, true, trie.Delete(tx2Hash))
assert.Equal(t, 1, trie.GetSize())
}
func TestPrefixTrie_Get(t *testing.T) {
......@@ -82,6 +76,8 @@ func TestPrefixTrie_Get(t *testing.T) {
trie.Insert(tx1Hash)
trie.Insert(tx2Hash)
assert.Equal(t, 2, len(trie.Get([]byte{})))
prefix := trie.GetPrefix(tx1Hash)
resultsByPrefix := trie.Get(prefix)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment