X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FIPv4Address.hs;h=55602aa8a9616197d6ecf038e6b071eec87e79d3;hb=c5ea6135a25e8c9e108c34ebb0d0cbb4b4af1e6d;hp=e91e67325a070abde0a0af82afd2d05a3175bc4d;hpb=a767881c16a119a90ff80d9c14106348d8bc310d;p=hath.git diff --git a/src/IPv4Address.hs b/src/IPv4Address.hs index e91e673..55602aa 100644 --- a/src/IPv4Address.hs +++ b/src/IPv4Address.hs @@ -18,6 +18,7 @@ module IPv4Address ) where import Test.HUnit +import Test.QuickCheck import qualified Bit as B import Maskbits @@ -43,6 +44,18 @@ instance Show IPv4Address where oct4 = (octet4 addr) +instance Arbitrary IPv4Address where + arbitrary = do + oct1 <- arbitrary :: Gen Octet + oct2 <- arbitrary :: Gen Octet + oct3 <- arbitrary :: Gen Octet + oct4 <- arbitrary :: Gen Octet + return (IPv4Address oct1 oct2 oct3 oct4) + + coarbitrary _ = variant 0 + + + -- We don't export our constructor so this function is the only -- way to construct an address from octets. As a result, we can -- return IPv4Address.None in response to being passed one of more