package redis.clients.jedis.tests.commands; import org.junit.Test; import redis.clients.util.SafeEncoder; public class HyperLogLogCommandsTest extends JedisCommandTestBase { @Test public void pfadd() { long status = jedis.pfadd("foo", "a"); assertEquals(1, status); status = jedis.pfadd("foo", "a"); assertEquals(0, status); } @Test public void pfaddBinary() { byte[] bFoo = SafeEncoder.encode("foo"); byte[] bBar = SafeEncoder.encode("bar"); byte[] bBar2 = SafeEncoder.encode("bar2"); long status = jedis.pfadd(bFoo, bBar, bBar2); assertEquals(1, status); status = jedis.pfadd(bFoo, bBar, bBar2); assertEquals(0, status); } @Test public void pfcount() { long status = jedis.pfadd("hll", "foo", "bar", "zap"); assertEquals(1, status); status = jedis.pfadd("hll", "zap", "zap", "zap"); assertEquals(0, status); status = jedis.pfadd("hll", "foo", "bar"); assertEquals(0, status); status = jedis.pfcount("hll"); assertEquals(3, status); } @Test public void pfcounts() { long status = jedis.pfadd("hll_1", "foo", "bar", "zap"); assertEquals(1, status); status = jedis.pfadd("hll_2", "foo", "bar", "zap"); assertEquals(1, status); status = jedis.pfadd("hll_3", "foo", "bar", "baz"); assertEquals(1, status); status = jedis.pfcount("hll_1"); assertEquals(3, status); status = jedis.pfcount("hll_2"); assertEquals(3, status); status = jedis.pfcount("hll_3"); assertEquals(3, status); status = jedis.pfcount("hll_1", "hll_2"); assertEquals(3, status); status = jedis.pfcount("hll_1", "hll_2", "hll_3"); assertEquals(4, status); } @Test public void pfcountBinary() { byte[] bHll = SafeEncoder.encode("hll"); byte[] bFoo = SafeEncoder.encode("foo"); byte[] bBar = SafeEncoder.encode("bar"); byte[] bZap = SafeEncoder.encode("zap"); long status = jedis.pfadd(bHll, bFoo, bBar, bZap); assertEquals(1, status); status = jedis.pfadd(bHll, bZap, bZap, bZap); assertEquals(0, status); status = jedis.pfadd(bHll, bFoo, bBar); assertEquals(0, status); status = jedis.pfcount(bHll); assertEquals(3, status); } @Test public void pfmerge() { long status = jedis.pfadd("hll1", "foo", "bar", "zap", "a"); assertEquals(1, status); status = jedis.pfadd("hll2", "a", "b", "c", "foo"); assertEquals(1, status); String mergeStatus = jedis.pfmerge("hll3", "hll1", "hll2"); assertEquals("OK", mergeStatus); status = jedis.pfcount("hll3"); assertEquals(6, status); } @Test public void pfmergeBinary() { byte[] bHll1 = SafeEncoder.encode("hll1"); byte[] bHll2 = SafeEncoder.encode("hll2"); byte[] bHll3 = SafeEncoder.encode("hll3"); byte[] bFoo = SafeEncoder.encode("foo"); byte[] bBar = SafeEncoder.encode("bar"); byte[] bZap = SafeEncoder.encode("zap"); byte[] bA = SafeEncoder.encode("a"); byte[] bB = SafeEncoder.encode("b"); byte[] bC = SafeEncoder.encode("c"); long status = jedis.pfadd(bHll1, bFoo, bBar, bZap, bA); assertEquals(1, status); status = jedis.pfadd(bHll2, bA, bB, bC, bFoo); assertEquals(1, status); String mergeStatus = jedis.pfmerge(bHll3, bHll1, bHll2); assertEquals("OK", mergeStatus); status = jedis.pfcount("hll3"); assertEquals(6, status); } }