File: cluster_commands_on_geo_test.rb

package info (click to toggle)
ruby-redis 4.2.5-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,168 kB
  • sloc: ruby: 12,820; makefile: 107; sh: 24
file content (74 lines) | stat: -rw-r--r-- 2,399 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
63
64
65
66
67
68
69
70
71
72
73
74
# frozen_string_literal: true

require_relative 'helper'

# ruby -w -Itest test/cluster_commands_on_geo_test.rb
# @see https://redis.io/commands#geo
class TestClusterCommandsOnGeo < Minitest::Test
  include Helper::Cluster

  MIN_REDIS_VERSION = '3.2.0'

  def add_sicily
    redis.geoadd('Sicily',
                 13.361389, 38.115556, 'Palermo',
                 15.087269, 37.502669, 'Catania')
  end

  def test_geoadd
    target_version(MIN_REDIS_VERSION) do
      assert_equal 2, add_sicily
    end
  end

  def test_geohash
    target_version(MIN_REDIS_VERSION) do
      add_sicily
      assert_equal %w[sqc8b49rny0 sqdtr74hyu0], redis.geohash('Sicily', %w[Palermo Catania])
    end
  end

  def test_geopos
    target_version(MIN_REDIS_VERSION) do
      add_sicily
      expected = [%w[13.36138933897018433 38.11555639549629859],
                  %w[15.08726745843887329 37.50266842333162032],
                  nil]
      assert_equal expected, redis.geopos('Sicily', %w[Palermo Catania NonExisting])
    end
  end

  def test_geodist
    target_version(MIN_REDIS_VERSION) do
      add_sicily
      assert_equal '166274.1516', redis.geodist('Sicily', 'Palermo', 'Catania')
      assert_equal '166.2742', redis.geodist('Sicily', 'Palermo', 'Catania', 'km')
      assert_equal '103.3182', redis.geodist('Sicily', 'Palermo', 'Catania', 'mi')
    end
  end

  def test_georadius
    target_version(MIN_REDIS_VERSION) do
      add_sicily

      expected = [%w[Palermo 190.4424], %w[Catania 56.4413]]
      assert_equal expected, redis.georadius('Sicily', 15, 37, 200, 'km', 'WITHDIST')

      expected = [['Palermo', %w[13.36138933897018433 38.11555639549629859]],
                  ['Catania', %w[15.08726745843887329 37.50266842333162032]]]
      assert_equal expected, redis.georadius('Sicily', 15, 37, 200, 'km', 'WITHCOORD')

      expected = [['Palermo', '190.4424', %w[13.36138933897018433 38.11555639549629859]],
                  ['Catania', '56.4413', %w[15.08726745843887329 37.50266842333162032]]]
      assert_equal expected, redis.georadius('Sicily', 15, 37, 200, 'km', 'WITHDIST', 'WITHCOORD')
    end
  end

  def test_georadiusbymember
    target_version(MIN_REDIS_VERSION) do
      redis.geoadd('Sicily', 13.583333, 37.316667, 'Agrigento')
      add_sicily
      assert_equal %w[Agrigento Palermo], redis.georadiusbymember('Sicily', 'Agrigento', 100, 'km')
    end
  end
end