packages feed

homplexity-0.4.6.0: tests/Test/Metrics/TypeClassComplexitySpec.hs

{-# LANGUAGE TypeApplications #-}
module Test.Metrics.TypeClassComplexitySpec where


import Test.Hspec
import Test.Utilities

import Language.Haskell.Exts.Extension
import Language.Haskell.Homplexity.TypeClassComplexity
import Language.Haskell.Homplexity.CodeFragment (TypeClass)

spec :: Spec
spec = describe "tests for type class complexity" $ do
  it "correctly counts methods and values" $ flip shouldReturn (5 :: NonTypeDeclCount) $ do
    measureSumOnFile @NonTypeDeclCount @TypeClass
      [] (testFile "TypeClassComplexityTest.hs")

  it "correctly counts associated types" $ flip shouldReturn (5 :: AssocTypeCount) $ do
    measureSumOnFile @AssocTypeCount @TypeClass
      [EnableExtension TypeFamilies] (testFile "TypeClassComplexityTest.hs")