Skip to content

Commit

Permalink
Fixed to compare with address prefix for == method
Browse files Browse the repository at this point in the history
  • Loading branch information
taketo1113 committed Apr 18, 2024
1 parent 036836d commit 5bb367e
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 5 deletions.
2 changes: 1 addition & 1 deletion lib/ipaddr.rb
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ def ==(other)
rescue
false
else
@family == other.family && @addr == other.to_i
@family == other.family && @addr == other.to_i && prefix == other.prefix
end

# Returns a new ipaddr built by masking IP address with the given
Expand Down
49 changes: 45 additions & 4 deletions test/test_ipaddr.rb
Original file line number Diff line number Diff line change
Expand Up @@ -386,12 +386,53 @@ def test_carrot
end

def test_equal
assert_equal(true, @a == IPAddr.new("3FFE:505:2::"))
assert_equal(true, @a == IPAddr.new("3ffe:0505:0002::"))
assert_equal(true, @a == IPAddr.new("3ffe:0505:0002:0:0:0:0:0"))
a = IPAddr.new("192.168.2.0")
assert_equal(true, a == IPAddr.new("192.168.2.0"))
assert_equal(false, a == IPAddr.new("192.168.2.0/24"))
assert_equal(false, a == IPAddr.new("192.168.3.0"))
assert_equal(false, a == IPAddr.new("192.168.3.0/24"))
assert_equal(false, a != IPAddr.new("192.168.2.0"))
assert_equal(true, a != IPAddr.new("192.168.2.0/24"))
assert_equal(true, a != IPAddr.new("192.168.3.0"))
assert_equal(true, a != IPAddr.new("192.168.3.0/24"))

a = IPAddr.new("192.168.2.0/24")
assert_equal(false, a == IPAddr.new("192.168.2.0"))
assert_equal(true, a == IPAddr.new("192.168.2.0/24"))
assert_equal(false, a == IPAddr.new("192.168.2.0/25"))
assert_equal(false, a == IPAddr.new("192.168.3.0"))
assert_equal(false, a == IPAddr.new("192.168.3.0/24"))
assert_equal(true, a != IPAddr.new("192.168.2.0"))
assert_equal(false, a != IPAddr.new("192.168.2.0/24"))
assert_equal(true, a != IPAddr.new("192.168.2.0/25"))
assert_equal(true, a != IPAddr.new("192.168.3.0"))
assert_equal(true, a != IPAddr.new("192.168.3.0/24"))

a = IPAddr.new("3ffe:505:2::")
assert_equal(true, a == IPAddr.new("3FFE:505:2::"))
assert_equal(false, a == IPAddr.new("3FFE:505:2::/48"))
assert_equal(true, a == IPAddr.new("3ffe:0505:0002::"))
assert_equal(true, a == IPAddr.new("3ffe:0505:0002:0:0:0:0:0"))
assert_equal(false, a == IPAddr.new("3ffe:505:3::"))
assert_equal(false, a == IPAddr.new("3ffe:505:3::/48"))
assert_equal(false, a != IPAddr.new("3ffe:505:2::"))
assert_equal(true, a != IPAddr.new("3ffe:505:2::/48"))
assert_equal(true, a != IPAddr.new("3ffe:505:3::"))
assert_equal(true, a != IPAddr.new("3ffe:505:3::/48"))

assert_equal(false, @a == IPAddr.new("3FFE:505:2::"))
assert_equal(true, @a == IPAddr.new("3FFE:505:2::/48"))
assert_equal(false, @a == IPAddr.new("3FFE:505:2::/49"))
assert_equal(true, @a == IPAddr.new("3ffe:0505:0002::/48"))
assert_equal(true, @a == IPAddr.new("3ffe:0505:0002:0:0:0:0:0/48"))
assert_equal(false, @a == IPAddr.new("3ffe:505:3::"))
assert_equal(false, @a == IPAddr.new("3ffe:505:3::/48"))
assert_equal(true, @a != IPAddr.new("3ffe:505:2::"))
assert_equal(false, @a != IPAddr.new("3ffe:505:2::/48"))
assert_equal(true, @a != IPAddr.new("3ffe:505:2::/49"))
assert_equal(true, @a != IPAddr.new("3ffe:505:3::"))
assert_equal(false, @a != IPAddr.new("3ffe:505:2::"))
assert_equal(true, @a != IPAddr.new("3ffe:505:3::/48"))

assert_equal(false, @a == @inconvertible_range)
assert_equal(false, @a == @inconvertible_string)
end
Expand Down

0 comments on commit 5bb367e

Please sign in to comment.