packages feed

bson-0.1.6: test/main.hs

-- import Test.HUnit hiding (Test)
import Test.Hspec.Monadic (Specs, describe, it, hspecX)
import Test.Hspec.HUnit()
import Test.Hspec.QuickCheck(prop)
import Test.QuickCheck
import Data.Bson
import FileLocation (debug)

main :: IO ()
main = hspecX specs

instance Arbitrary ObjectId where
  arbitrary = do
      t <- arbitrary
      p <- arbitrary
      m <- arbitrary
      i <- arbitrary
      return $ Oid t $ composite m p i

specs :: Specs
specs = do
  describe "ObjectId" $ do
    prop "read <-> show" $ \objId ->
      (debug . read . show . debug) objId == (objId :: ObjectId)

  describe "roundTo" $ do
    prop "round" $ \d ->
      let r =  roundTo (1 / 10) (d :: Double)
      in  r == roundTo (1 / 10) r