diff options
-rw-r--r-- | lib/ipaddress/prefix.rb | 4 | ||||
-rw-r--r-- | test/ipaddress/ipv4_test.rb | 3 | ||||
-rw-r--r-- | test/ipaddress/prefix_test.rb | 6 |
3 files changed, 10 insertions, 3 deletions
diff --git a/lib/ipaddress/prefix.rb b/lib/ipaddress/prefix.rb index c881811..96452de 100644 --- a/lib/ipaddress/prefix.rb +++ b/lib/ipaddress/prefix.rb @@ -92,7 +92,7 @@ module IPAddress # #=> 24 # def initialize(num) - unless (1..32).include? num + unless (0..32).include? num raise ArgumentError, "Prefix must be in range 1..32, got: #{num}" end super(num) @@ -121,7 +121,7 @@ module IPAddress # #=> "11111111111111111111111100000000" # def bits - to_u32.to_s(2) + "%.32b" % to_u32 end # diff --git a/test/ipaddress/ipv4_test.rb b/test/ipaddress/ipv4_test.rb index c81ee8c..475e678 100644 --- a/test/ipaddress/ipv4_test.rb +++ b/test/ipaddress/ipv4_test.rb @@ -6,6 +6,7 @@ class IPv4Test < Test::Unit::TestCase @klass = IPAddress::IPv4 @valid_ipv4 = { + "0.0.0.0/0" => ["0.0.0.0", 0], "10.0.0.0" => ["10.0.0.0", 32], "10.0.0.1" => ["10.0.0.1", 32], "10.0.0.1/24" => ["10.0.0.1", 24], @@ -21,12 +22,14 @@ class IPv4Test < Test::Unit::TestCase "10.1-254.0.0"] @netmask_values = { + "0.0.0.0/0" => "0.0.0.0", "10.0.0.0/8" => "255.0.0.0", "172.16.0.0/16" => "255.255.0.0", "192.168.0.0/24" => "255.255.255.0", "192.168.100.4/30" => "255.255.255.252"} @decimal_values ={ + "0.0.0.0/0" => 0, "10.0.0.0/8" => 167772160, "172.16.0.0/16" => 2886729728, "192.168.0.0/24" => 3232235520, diff --git a/test/ipaddress/prefix_test.rb b/test/ipaddress/prefix_test.rb index 5925356..bff812e 100644 --- a/test/ipaddress/prefix_test.rb +++ b/test/ipaddress/prefix_test.rb @@ -3,25 +3,29 @@ require 'test_helper' class Prefix32Test < Test::Unit::TestCase def setup + @netmask0 = "0.0.0.0" @netmask8 = "255.0.0.0" @netmask16 = "255.255.0.0" @netmask24 = "255.255.255.0" @netmask30 = "255.255.255.252" - @netmasks = [@netmask8,@netmask16,@netmask24,@netmask30] + @netmasks = [@netmask0,@netmask8,@netmask16,@netmask24,@netmask30] @prefix_hash = { + "0.0.0.0" => 0, "255.0.0.0" => 8, "255.255.0.0" => 16, "255.255.255.0" => 24, "255.255.255.252" => 30} @octets_hash = { + [0,0,0,0] => 0, [255,0,0,0] => 8, [255,255,0,0] => 16, [255,255,255,0] => 24, [255,255,255,252] => 30} @u32_hash = { + 0 => 0, 8 => 4278190080, 16 => 4294901760, 24 => 4294967040, |