(t *testing.T)
| 65 | } |
| 66 | |
| 67 | func 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) |
nothing calls this directly
no test coverage detected