MCPcopy Create free account
hub / github.com/dbProjectRED/redimo.go / TestSetOperations

Function TestSetOperations

sets_test.go:67–126  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

65}
66
67func TestSetOperations(t *testing.T) {
68 c := newClient(t)
69
70 _, err := c.SADD("s1", "m1", "m2", "m3")
71 assert.NoError(t, err)
72
73 _, err = c.SADD("s2", "m3", "m4", "m5")
74 assert.NoError(t, err)
75
76 _, err = c.SADD("s3", "m5", "m6", "m7")
77 assert.NoError(t, err)
78
79 union, err := c.SUNION("s1", "s2", "s3")
80 assert.NoError(t, err)
81 assert.ElementsMatch(t, []string{"m1", "m2", "m3", "m4", "m5", "m6", "m7"}, union)
82
83 unionCount, err := c.SUNIONSTORE("union", "s1", "s2", "s3")
84 assert.NoError(t, err)
85 assert.Equal(t, int64(7), unionCount)
86
87 unionMembers, err := c.SMEMBERS("union")
88 assert.NoError(t, err)
89 assert.ElementsMatch(t, []string{"m1", "m2", "m3", "m4", "m5", "m6", "m7"}, unionMembers)
90
91 intersection, err := c.SINTER("s1", "s2")
92 assert.NoError(t, err)
93 assert.ElementsMatch(t, []string{"m3"}, intersection)
94
95 intersection, err = c.SINTER("s1", "s3")
96 assert.NoError(t, err)
97 assert.ElementsMatch(t, []string{}, intersection)
98
99 intersectionCount, err := c.SINTERSTORE("inter", "s1", "s2")
100 assert.NoError(t, err)
101 assert.Equal(t, int64(1), intersectionCount)
102
103 intersectionMembers, err := c.SMEMBERS("inter")
104 assert.NoError(t, err)
105 assert.ElementsMatch(t, []string{"m3"}, intersectionMembers)
106
107 diff, err := c.SDIFF("s1", "s2", "s3")
108 assert.NoError(t, err)
109 assert.ElementsMatch(t, []string{"m1", "m2"}, diff)
110
111 diff, err = c.SDIFF("s1", "s3")
112 assert.NoError(t, err)
113 assert.ElementsMatch(t, []string{"m1", "m2", "m3"}, diff)
114
115 diffCount, err := c.SDIFFSTORE("diff", "s1", "s2", "s3")
116 assert.NoError(t, err)
117 assert.Equal(t, int64(2), diffCount)
118
119 diffMembers, err := c.SMEMBERS("diff")
120 assert.NoError(t, err)
121 assert.ElementsMatch(t, []string{"m1", "m2"}, diffMembers)
122
123 union, err = c.SUNION()
124 assert.NoError(t, err)

Callers

nothing calls this directly

Calls 9

newClientFunction · 0.85
SADDMethod · 0.80
SUNIONMethod · 0.80
SUNIONSTOREMethod · 0.80
SMEMBERSMethod · 0.80
SINTERMethod · 0.80
SINTERSTOREMethod · 0.80
SDIFFMethod · 0.80
SDIFFSTOREMethod · 0.80

Tested by

no test coverage detected