convert-units-0: test/Data/Units/BaseProp.hs
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE TypeApplications #-}
module Data.Units.BaseProp
( module Data.Units.Base.ArithmeticProp
, module Data.Units.Base.ConvertProp
, module Data.Units.BaseProp
)
where
import Data.Units.Base.ArithmeticProp
import Data.Units.Base.ConvertProp
import Test.QuickCheck
import Test.Hspec
import Data.Epsilon
import Data.Units
sameDimSpec :: forall u a.
(IsUnit u, Floating (u a), ShowUnit u
, Show a, Epsilon a, Floating a, Eq a, Arbitrary a
, FromTo' u u a
, DimEq u u
, IsUnit (NormalizeUnitL (u .^+ 2))
, IsUnit (BaseUnitOf u)
)
=> Spec
sameDimSpec = describe ("Unit " ++ showUnit @u) $ do
floatingSpec @u @a
addLeftSpec @u @u @a
addRightSpec @u @u @a
addSameSpec @u @u @a
subLeftSpec @u @u @a
subRightSpec @u @u @a
subSameSpec @u @u @a
mulSameSpec @u @u @a
-- mulLeftSpec @u @u @a
-- mulRightSpec @u @u @a
divSameSpec @u @u @a
expSpec @u @a
expConvSpec @u @a