@@ -5,7 +5,8 @@ import Control.Monad.Eff.Console (CONSOLE, log)
55import Control.Monad.Eff.Exception (EXCEPTION )
66import Control.Monad.Eff.Random (RANDOM )
77import Data.Array (filter , range )
8- import Data.BigInt (BigInt , abs , fromInt , prime , pow , odd , even , fromString , toNumber , fromBase , toBase , toString , not , or , xor , and , shl , shr )
8+ import Data.BigInt (BigInt , abs , fromInt , fromNumber , prime , pow , odd , even , fromString , toNumber ,
9+ fromBase , toBase , toString , not , or , xor , and , shl , shr )
910import Data.Foldable (fold )
1011import Data.Int as Int
1112import Data.Maybe (Maybe (..), fromMaybe )
@@ -85,6 +86,14 @@ main = do
8586 assert $ (toBase 16 <$> fromString " 255" ) == Just " ff"
8687 assert $ toString (fromInt 12345 ) == " 12345"
8788
89+ log " Converting from Number to BigInt"
90+ assert $ fromNumber 0.0 == zero
91+ assert $ fromNumber 3.4 == three
92+ assert $ fromNumber (-3.9 ) == -three
93+ assert $ fromNumber 1.0e7 == fromInt 10000000
94+ assert $ Just (fromNumber 1.0e47 ) == fromString " 1e47"
95+ quickCheck (\x -> fromInt x == fromNumber (Int .toNumber x))
96+
8897 log " Conversions between String, Int and BigInt should not loose precision"
8998 quickCheck (\n -> fromString (show n) == Just (fromInt n))
9099 quickCheck (\n -> Int .toNumber n == toNumber (fromInt n))
0 commit comments