module Main where
import Math.Algebra.JackPol
import Math.Algebra.Jack
import Data.Ratio
import Math.Algebra.Hspray
import Test.Tasty (defaultMain, testGroup)
import Test.Tasty.HUnit (assertEqual, testCase)
main :: IO ()
main = defaultMain $
testGroup "Tests"
[ testCase "jackPol" $ do
let jp = jackPol 2 [3, 1] (2%1)
let v = evalSpray jp [1, 1]
assertEqual ""
v
(48%1),
testCase "jack" $ do
assertEqual ""
(jack [1, 1] [3, 1] (2%1))
(48%1),
testCase "schurPol" $ do
let sp1 = schurPol 4 [4]
let sp2 = schurPol 4 [3, 1]
let sp3 = schurPol 4 [2, 2]
let sp4 = schurPol 4 [2, 1, 1]
let sp5 = schurPol 4 [1, 1, 1, 1]
let v = evalSpray (sp1 ^+^ 3 *^ sp2 ^+^ 2*^ sp3 ^+^ 3*^ sp4 ^+^ sp5) [2, 2, 2, 2]
assertEqual ""
v
4096,
testCase "schur" $ do
let sp1 = schur [1, 1, 1, 1] [4]
let sp2 = schur [1, 1, 1, 1] [3, 1]
let sp3 = schur [1, 1, 1, 1] [2, 2]
let sp4 = schur [1, 1, 1, 1] [2, 1, 1]
let sp5 = schur [1, 1, 1, 1] [1, 1, 1, 1]
assertEqual ""
(sp1 + 3*sp2 + 2*sp3 + 3*sp4 + sp5)
256,
testCase "zonalPol" $ do
let zp1 = zonalPol 4 [3] :: Spray Rational
let zp2 = zonalPol 4 [2, 1] :: Spray Rational
let zp3 = zonalPol 4 [1, 1, 1] :: Spray Rational
let v = evalSpray (zp1 ^+^ zp2 ^+^ zp3) [2, 2, 2, 2]
assertEqual ""
v
512,
testCase "zonal" $ do
let zp1 = zonal [2%1, 2%1, 2%1, 2%1] [3]
let zp2 = zonal [2%1, 2%1, 2%1, 2%1] [2, 1]
let zp3 = zonal [2%1, 2%1, 2%1, 2%1] [1, 1, 1]
assertEqual ""
(zp1 + zp2 + zp3)
512
]