-- Copyright (c) David Amos, 2008. All rights reserved.
{-# LANGUAGE FlexibleInstances #-}
module Math.Test.TDesign where
import qualified Data.List as L
-- import PermutationGroup as P
import Math.Algebra.Field.Base
import Math.Algebra.Field.Extension
-- import Graph as G
-- import StronglyRegularGraph as SRG
import Math.Combinatorics.Design as D
import Math.Algebra.Group.SchreierSims as SS
-- import LinearAlgebra hiding ( (^-) )
factorial n = product [1..n]
choose n m | m <= n = product [m+1..n] `div` product [1..n-m]
test = and [designParamsTest, designAutTest]
designParamsTest = and
[designParams (ag2 f2) == Just (2,(4,2,1))
,designParams (ag2 f3) == Just (2,(9,3,1))
,designParams (ag2 f4) == Just (2,(16,4,1))
,designParams (pg2 f2) == Just (2,(7,3,1))
,designParams (pg2 f3) == Just (2,(13,4,1))
,designParams (pg2 f4) == Just (2,(21,5,1))
]
designAutTest = all (uncurry (==)) designAutTests
designAutTests =
[(SS.order $ designAuts $ pg2 f2, 168) -- this is L3(2), see Atlas
,(SS.order $ designAuts $ pg2 f3, 5616) -- this is L3(3)
,(SS.order $ designAuts $ pg2 f4, 120960) -- this is S3.L3(4)
-- ,(SS.order $ designAuts $ pg2 f5, 372000) -- this is L3(5)
]