packages feed

urbit-hob-0.2.0: test/Ob/Tests/Unit.hs

module Ob.Tests.Unit (
  tests
  ) where

import Data.Word (Word32)
import Test.Hspec
import qualified Urbit.Ob.Ob as Ob

tests :: Spec
tests = do
  describe "fein" $
    it "matches reference values" $ do
      Ob.fein 123456789 `shouldBe` (1897766331 :: Int)
      Ob.fein 15663360 `shouldBe` (1208402137 :: Int)
      Ob.fein 0x10000000000000000 `shouldBe` (0x10000000000000000 :: Integer)

  describe "fynd" $
    it "matches reference values" $ do
      Ob.fynd 1208402137 `shouldBe` (15663360 :: Int)
      Ob.fynd 1897766331 `shouldBe` (123456789 :: Int)
      Ob.fynd 0x10000000000000000 `shouldBe` (0x10000000000000000 :: Integer)

  describe "feis" $
    it "matches reference values" $ do
      Ob.feis 123456789 `shouldBe` 2060458291
      Ob.feis 15663360 `shouldBe` 1195593620

  describe "tail" $
    it "matches reference values" $ do
      Ob.tail 123456789 `shouldBe` 1107963580
      Ob.tail 1195593620 `shouldBe` 15663360