MCPcopy Create free account
hub / github.com/nutsdb/nutsdb / TestDB_MergeForZSet

Function TestDB_MergeForZSet

merge_test.go:456–544  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

454}
455
456func TestDB_MergeForZSet(t *testing.T) {
457 runForMergeModes(t, func(t *testing.T, mode mergeTestMode) {
458 bucket := "bucket"
459 key := testutils.GetTestBytes(0)
460 n := 1000
461 opts := DefaultOptions
462 opts.SegmentSize = KB
463 opts.EnableMergeV2 = mode.enableMergeV2
464 opts.Dir = fmt.Sprintf("/tmp/test-zset-merge-%s/", mode.name)
465
466 for _, idxMode := range []EntryIdxMode{HintKeyValAndRAMIdxMode, HintKeyAndRAMIdxMode} {
467 removeDir(opts.Dir)
468 opts.EntryIdxMode = idxMode
469 db, err := Open(opts)
470 if exist := db.bucketMgr.ExistBucket(DataStructureSortedSet, bucket); !exist {
471 txCreateBucket(t, db, DataStructureSortedSet, bucket, nil)
472 }
473 require.NoError(t, err)
474
475 err = db.Merge()
476 require.Equal(t, ErrDontNeedMerge, err)
477
478 for i := 0; i < n; i++ {
479 score, _ := strconv2.IntToFloat64(i)
480 txZAdd(t, db, bucket, key, testutils.GetTestBytes(i), score, nil, nil)
481 }
482
483 for i := 0; i < n; i++ {
484 score, _ := strconv2.IntToFloat64(i)
485 txZScore(t, db, bucket, key, testutils.GetTestBytes(i), score, nil)
486 }
487
488 for i := 0; i < n/2; i++ {
489 txZRem(t, db, bucket, key, testutils.GetTestBytes(i), nil)
490 }
491
492 for i := 0; i < n/2; i++ {
493 score, _ := strconv2.IntToFloat64(i)
494 txZScore(t, db, bucket, key, testutils.GetTestBytes(i), score, ErrSortedSetMemberNotExist)
495 }
496
497 for i := n / 2; i < n; i++ {
498 score, _ := strconv2.IntToFloat64(i)
499 txZScore(t, db, bucket, key, testutils.GetTestBytes(i), score, nil)
500 }
501
502 dbCnt, err := db.getRecordCount()
503 require.NoError(t, err)
504 require.Equal(t, int64(n/2), dbCnt)
505
506 require.NoError(t, db.Merge())
507
508 dbCnt, err = db.getRecordCount()
509 require.NoError(t, err)
510 require.Equal(t, int64(n/2), dbCnt)
511
512 for i := 0; i < n/2; i++ {
513 score, _ := strconv2.IntToFloat64(i)

Callers

nothing calls this directly

Calls 12

GetTestBytesFunction · 0.92
runForMergeModesFunction · 0.85
removeDirFunction · 0.85
OpenFunction · 0.85
txCreateBucketFunction · 0.85
txZAddFunction · 0.85
txZScoreFunction · 0.85
txZRemFunction · 0.85
MergeMethod · 0.80
getRecordCountMethod · 0.80
CloseMethod · 0.65
ExistBucketMethod · 0.45

Tested by

no test coverage detected