Skip to content

Commit 5bb367e

Browse files
committed
Fixed to compare with address prefix for == method
1 parent 036836d commit 5bb367e

File tree

2 files changed

+46
-5
lines changed

2 files changed

+46
-5
lines changed

lib/ipaddr.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def ==(other)
157157
rescue
158158
false
159159
else
160-
@family == other.family && @addr == other.to_i
160+
@family == other.family && @addr == other.to_i && prefix == other.prefix
161161
end
162162

163163
# Returns a new ipaddr built by masking IP address with the given

test/test_ipaddr.rb

+45-4
Original file line numberDiff line numberDiff line change
@@ -386,12 +386,53 @@ def test_carrot
386386
end
387387

388388
def test_equal
389-
assert_equal(true, @a == IPAddr.new("3FFE:505:2::"))
390-
assert_equal(true, @a == IPAddr.new("3ffe:0505:0002::"))
391-
assert_equal(true, @a == IPAddr.new("3ffe:0505:0002:0:0:0:0:0"))
389+
a = IPAddr.new("192.168.2.0")
390+
assert_equal(true, a == IPAddr.new("192.168.2.0"))
391+
assert_equal(false, a == IPAddr.new("192.168.2.0/24"))
392+
assert_equal(false, a == IPAddr.new("192.168.3.0"))
393+
assert_equal(false, a == IPAddr.new("192.168.3.0/24"))
394+
assert_equal(false, a != IPAddr.new("192.168.2.0"))
395+
assert_equal(true, a != IPAddr.new("192.168.2.0/24"))
396+
assert_equal(true, a != IPAddr.new("192.168.3.0"))
397+
assert_equal(true, a != IPAddr.new("192.168.3.0/24"))
398+
399+
a = IPAddr.new("192.168.2.0/24")
400+
assert_equal(false, a == IPAddr.new("192.168.2.0"))
401+
assert_equal(true, a == IPAddr.new("192.168.2.0/24"))
402+
assert_equal(false, a == IPAddr.new("192.168.2.0/25"))
403+
assert_equal(false, a == IPAddr.new("192.168.3.0"))
404+
assert_equal(false, a == IPAddr.new("192.168.3.0/24"))
405+
assert_equal(true, a != IPAddr.new("192.168.2.0"))
406+
assert_equal(false, a != IPAddr.new("192.168.2.0/24"))
407+
assert_equal(true, a != IPAddr.new("192.168.2.0/25"))
408+
assert_equal(true, a != IPAddr.new("192.168.3.0"))
409+
assert_equal(true, a != IPAddr.new("192.168.3.0/24"))
410+
411+
a = IPAddr.new("3ffe:505:2::")
412+
assert_equal(true, a == IPAddr.new("3FFE:505:2::"))
413+
assert_equal(false, a == IPAddr.new("3FFE:505:2::/48"))
414+
assert_equal(true, a == IPAddr.new("3ffe:0505:0002::"))
415+
assert_equal(true, a == IPAddr.new("3ffe:0505:0002:0:0:0:0:0"))
416+
assert_equal(false, a == IPAddr.new("3ffe:505:3::"))
417+
assert_equal(false, a == IPAddr.new("3ffe:505:3::/48"))
418+
assert_equal(false, a != IPAddr.new("3ffe:505:2::"))
419+
assert_equal(true, a != IPAddr.new("3ffe:505:2::/48"))
420+
assert_equal(true, a != IPAddr.new("3ffe:505:3::"))
421+
assert_equal(true, a != IPAddr.new("3ffe:505:3::/48"))
422+
423+
assert_equal(false, @a == IPAddr.new("3FFE:505:2::"))
424+
assert_equal(true, @a == IPAddr.new("3FFE:505:2::/48"))
425+
assert_equal(false, @a == IPAddr.new("3FFE:505:2::/49"))
426+
assert_equal(true, @a == IPAddr.new("3ffe:0505:0002::/48"))
427+
assert_equal(true, @a == IPAddr.new("3ffe:0505:0002:0:0:0:0:0/48"))
392428
assert_equal(false, @a == IPAddr.new("3ffe:505:3::"))
429+
assert_equal(false, @a == IPAddr.new("3ffe:505:3::/48"))
430+
assert_equal(true, @a != IPAddr.new("3ffe:505:2::"))
431+
assert_equal(false, @a != IPAddr.new("3ffe:505:2::/48"))
432+
assert_equal(true, @a != IPAddr.new("3ffe:505:2::/49"))
393433
assert_equal(true, @a != IPAddr.new("3ffe:505:3::"))
394-
assert_equal(false, @a != IPAddr.new("3ffe:505:2::"))
434+
assert_equal(true, @a != IPAddr.new("3ffe:505:3::/48"))
435+
395436
assert_equal(false, @a == @inconvertible_range)
396437
assert_equal(false, @a == @inconvertible_string)
397438
end

0 commit comments

Comments
 (0)