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

Function TestSet_SDiff

internal/data/set_test.go:64–113  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

62}
63
64func TestSet_SDiff(t *testing.T) {
65 set := NewSet()
66
67 key1 := "set1"
68 key2 := "set2"
69 key3 := "set3"
70 key4 := "set4"
71
72 expectRecords := testutils.GenerateRecords(10)
73
74 values := make([][]byte, 10)
75 for i := range expectRecords {
76 values[i] = expectRecords[i].Value
77 }
78
79 require.NoError(t, set.SAdd(key1, values[:5], expectRecords[:5]))
80 require.NoError(t, set.SAdd(key2, values[2:6], expectRecords[2:6]))
81 require.NoError(t, set.SAdd(key3, values[2:7], expectRecords[2:7]))
82 require.NoError(t, set.SAdd(key4, values[7:], expectRecords[7:]))
83
84 type args struct {
85 key1 string
86 key2 string
87 }
88
89 tests := []struct {
90 name string
91 args args
92 set *Set
93 want []*core.Record
94 wantErr bool
95 }{
96 {"normal set diff1", args{key1, key2}, set, expectRecords[:2], false},
97 {"normal set diff2", args{key1, key4}, set, expectRecords[:5], false},
98 {"normal set diff3", args{key3, key2}, set, expectRecords[6:7], false},
99 {"first fake set", args{"fake_key1", key2}, set, nil, true},
100 {"second fake set", args{key1, "fake_key2"}, set, nil, true},
101 {"two fake set", args{"fake_key1", "fake_key2"}, set, nil, true},
102 }
103
104 for _, tt := range tests {
105 t.Run(tt.name, func(t *testing.T) {
106 got, err := tt.set.SDiff(tt.args.key1, tt.args.key2)
107 if (err != nil) != tt.wantErr {
108 require.Errorf(t, err, "Get() error = %v, wantErr %v", tt.wantErr)
109 }
110 require.ElementsMatchf(t, tt.want, got, "Get() got = %v, want %v", got, tt.want)
111 })
112 }
113}
114
115func TestSet_SCard(t *testing.T) {
116 set := NewSet()

Callers

nothing calls this directly

Calls 5

SAddMethod · 0.95
GenerateRecordsFunction · 0.92
NewSetFunction · 0.85
RunMethod · 0.80
SDiffMethod · 0.80

Tested by

no test coverage detected