MCPcopy Create free account
hub / github.com/IceFireDB/IceFireDB / TestIterator

Function TestIterator

driver/hybriddb/iterator_test.go:11–89  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

9)
10
11func TestIterator(t *testing.T) {
12 tempDir := t.TempDir()
13 cfg := &config.Config{
14 LevelDB: config.LevelDBConfig{
15 CacheSize: 64 * 1024 * 1024,
16 BlockSize: 4 * 1024,
17 WriteBufferSize: 4 * 1024 * 1024,
18 MaxOpenFiles: 1000,
19 Compression: true,
20 },
21 }
22
23 db, err := Store{}.Open(tempDir, cfg)
24 require.NoError(t, err)
25 defer db.Close()
26
27 // Insert test data
28 testData := []struct {
29 key string
30 value string
31 }{
32 {"a", "1"},
33 {"b", "2"},
34 {"c", "3"},
35 {"d", "4"},
36 }
37
38 for _, item := range testData {
39 err = db.Put([]byte(item.key), []byte(item.value))
40 require.NoError(t, err)
41 }
42
43 // Test forward iteration
44 iter := db.NewIterator()
45 defer iter.Close()
46
47 // Test First
48 iter.First()
49 assert.True(t, iter.Valid())
50 assert.Equal(t, "a", string(iter.Key()))
51 assert.Equal(t, "1", string(iter.Value()))
52
53 // Test Next
54 iter.Next()
55 assert.True(t, iter.Valid())
56 assert.Equal(t, "b", string(iter.Key()))
57 assert.Equal(t, "2", string(iter.Value()))
58
59 // Test Last
60 iter.Last()
61 assert.True(t, iter.Valid())
62 assert.Equal(t, "d", string(iter.Key()))
63 assert.Equal(t, "4", string(iter.Value()))
64
65 // Test Prev
66 iter.Prev()
67 assert.True(t, iter.Valid())
68 assert.Equal(t, "c", string(iter.Key()))

Callers

nothing calls this directly

Calls 14

CloseMethod · 0.95
FirstMethod · 0.95
ValidMethod · 0.95
KeyMethod · 0.95
ValueMethod · 0.95
NextMethod · 0.95
LastMethod · 0.95
PrevMethod · 0.95
SeekMethod · 0.95
CloseMethod · 0.65
EqualMethod · 0.65
OpenMethod · 0.45

Tested by

no test coverage detected