packages feed

coincident-root-loci-0.2: test/Tests/RootVsClass/Ordered.hs

-- | Comparing the Chern root vs. the Chern class versions for stuff in
-- "Math.RootLoci.CSM.Equivariant.Ordered"

{-# LANGUAGE Rank2Types, GADTs, TypeFamilies #-}
module Tests.RootVsClass.Ordered where

--------------------------------------------------------------------------------

import Data.Proxy

import Math.Combinat.Partitions

import Math.RootLoci.Algebra
import Math.RootLoci.Geometry
import Math.RootLoci.Misc

import Math.RootLoci.CSM.Equivariant.Ordered 

import Tests.Common
import Tests.RootVsClass.Check

import Test.Tasty
import Test.Tasty.HUnit

--------------------------------------------------------------------------------

all_tests = testGroup "ordered"
  [ testCase "tangent Chern class" (forAllInt   9 "failed" prop_tangentChernClass    )
  , testCase "small diagonals"     (forAllInt   9 "failed" prop_smallDiagonal        )
  , testCase "open stratum"        (forAllInt   7 "failed" prop_openStratumCSM       )
  , testCase "any stratum"         (forAllSetp  6 "failed" prop_anyStratumCSM        )
  , testCase "formula for Q-poly"  (forList [-3.. 20] "failed" prop_formulaQPoly         )
  , testCase "formula U(n)"        (forAllInt  10 "failed" prop_formulaDistinctCSM   )
  ]
  
--------------------------------------------------------------------------------

prop_tangentChernClass  n = checkOmega (tangentChernClass  n)
prop_smallDiagonal      n = checkOmega (smallDiagonal      n)
prop_openStratumCSM     n = checkOmega (computeOpenStratumCSM    n)
prop_anyStratumCSM   setp = checkOmega (computeAnyStratumCSM  setp)
prop_formulaDistinctCSM n = checkOmega (formulaDistinctCSM n)
prop_formulaQPoly       n = checkZMod  (formulaQPoly       n)

--------------------------------------------------------------------------------