packages feed

computational-algebra-0.4.0.0: tests/SingularTest.hs

{-# LANGUAGE NoImplicitPrelude #-}
module Main where
import Algebra.Algorithms.Groebner
import Algebra.Prelude
import Algebra.Ring.Ideal
import SingularBridge
import Test.QuickCheck
import Utils

main :: IO ()
main = quickCheck $ checkForArity [2..3] $ \sarity ->
  forAll (sized $ \size -> vectorOf (size+2) (homogPolyOfDim sarity)) $ \ideal ->
    let i = filter ((/= 0) . totalDegree' ) ideal
    in not (null i) ==> isGroebnerBasis (singIdealFun "basis_c" (toIdeal i))