File: hyper_log_log.rb

package info (click to toggle)
ruby-redis 5.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,160 kB
  • sloc: ruby: 11,445; makefile: 117; sh: 24
file content (62 lines) | stat: -rw-r--r-- 1,607 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# frozen_string_literal: true

module Lint
  module HyperLogLog
    def test_pfadd
      assert_equal true, r.pfadd("foo", "s1")
      assert_equal true, r.pfadd("foo", "s2")
      assert_equal false, r.pfadd("foo", "s1")

      assert_equal 2, r.pfcount("foo")
    end

    def test_variadic_pfadd
      assert_equal true, r.pfadd("foo", ["s1", "s2"])
      assert_equal true, r.pfadd("foo", ["s1", "s2", "s3"])

      assert_equal 3, r.pfcount("foo")
    end

    def test_pfcount
      assert_equal 0, r.pfcount("foo")

      assert_equal true, r.pfadd("foo", "s1")

      assert_equal 1, r.pfcount("foo")
    end

    def test_variadic_pfcount
      assert_equal 0, r.pfcount(["{1}foo", "{1}bar"])

      assert_equal true, r.pfadd("{1}foo", "s1")
      assert_equal true, r.pfadd("{1}bar", "s1")
      assert_equal true, r.pfadd("{1}bar", "s2")

      assert_equal 2, r.pfcount("{1}foo", "{1}bar")
    end

    def test_variadic_pfcount_expanded
      assert_equal 0, r.pfcount("{1}foo", "{1}bar")

      assert_equal true, r.pfadd("{1}foo", "s1")
      assert_equal true, r.pfadd("{1}bar", "s1")
      assert_equal true, r.pfadd("{1}bar", "s2")

      assert_equal 2, r.pfcount("{1}foo", "{1}bar")
    end

    def test_pfmerge
      r.pfadd 'foo', 's1'
      r.pfadd 'bar', 's2'

      assert_equal true, r.pfmerge('res', 'foo', 'bar')
      assert_equal 2, r.pfcount('res')
    end

    def test_variadic_pfmerge_expanded
      redis.pfadd('{1}foo', %w[foo bar zap a])
      redis.pfadd('{1}bar', %w[a b c foo])
      assert_equal true, redis.pfmerge('{1}baz', '{1}foo', '{1}bar')
    end
  end
end