+ it "should be able to do set union and store the results in a key (SUNIONSTORE)" do
+ @r.sadd "set", 'key1'
+ @r.sadd "set", 'key2'
+ @r.sadd "set2", 'key2'
+ @r.sadd "set2", 'key3'
+ @r.sunionstore('newone', 'set', 'set2').should == 3
+ @r.smembers('newone').sort.should == ['key1','key2','key3'].sort
+ end
+ #
+ it "should be able to do set difference (SDIFF)" do
+ @r.sadd "set", 'a'
+ @r.sadd "set", 'b'
+ @r.sadd "set2", 'b'
+ @r.sadd "set2", 'c'
+ @r.sdiff('set', 'set2').should == ['a']
+ end
+ #
+ it "should be able to do set difference and store the results in a key (SDIFFSTORE)" do
+ @r.sadd "set", 'a'
+ @r.sadd "set", 'b'
+ @r.sadd "set2", 'b'
+ @r.sadd "set2", 'c'
+ @r.sdiffstore('newone', 'set', 'set2')
+ @r.smembers('newone').should == ['a']
+ end
+ #
+ it "should be able move elements from one set to another (SMOVE)" do
+ @r.sadd 'set1', 'a'
+ @r.sadd 'set1', 'b'
+ @r.sadd 'set2', 'x'
+ @r.smove('set1', 'set2', 'a').should be_true
+ @r.sismember('set2', 'a').should be_true
+ @r.delete('set1')
+ end
+ #