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
|
# frozen_string_literal: true
require_relative "helper"
class TestBitpos < Minitest::Test
include Helper::Client
def test_bitpos_empty_zero
target_version "2.9.11" do
r.del "foo"
assert_equal(0, r.bitpos("foo", 0))
end
end
def test_bitpos_empty_one
target_version "2.9.11" do
r.del "foo"
assert_equal(-1, r.bitpos("foo", 1))
end
end
def test_bitpos_zero
target_version "2.9.11" do
r.set "foo", "\xff\xf0\x00"
assert_equal(12, r.bitpos("foo", 0))
end
end
def test_bitpos_one
target_version "2.9.11" do
r.set "foo", "\x00\x0f\x00"
assert_equal(12, r.bitpos("foo", 1))
end
end
def test_bitpos_zero_end_is_given
target_version "2.9.11" do
r.set "foo", "\xff\xff\xff"
assert_equal(24, r.bitpos("foo", 0))
assert_equal(24, r.bitpos("foo", 0, 0))
assert_equal(-1, r.bitpos("foo", 0, 0, -1))
end
end
def test_bitpos_one_intervals
target_version "2.9.11" do
r.set "foo", "\x00\xff\x00"
assert_equal(8, r.bitpos("foo", 1, 0, -1))
assert_equal(8, r.bitpos("foo", 1, 1, -1))
assert_equal(-1, r.bitpos("foo", 1, 2, -1))
assert_equal(-1, r.bitpos("foo", 1, 2, 200))
assert_equal(8, r.bitpos("foo", 1, 1, 1))
end
end
def test_bitpos_raise_exception_if_stop_not_start
target_version "2.9.11" do
assert_raises(ArgumentError) do
r.bitpos("foo", 0, nil, 2)
end
end
end
end
|