-- Copyright (c) David Amos, 2008. All rights reserved. {-# LANGUAGE FlexibleInstances #-} module Math.Test.TDesign where import qualified Data.List as L import Math.Algebra.Field.Base import Math.Algebra.Field.Extension import Math.Combinatorics.Design as D import Math.Algebra.Group.SchreierSims as SS 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)) ,designParams s_3_6_22 == Just (3,(22,6,1)) ,designParams (derivedDesign s_3_6_22 1) == Just (2,(21,5,1)) -- it is PG(2,F4) ,designParams s_4_5_11 == Just (4,(11,5,1)) ,designParams (derivedDesign (derivedDesign s_4_5_11 0) 1) == Just (2,(9,3,1)) -- it is AG(2,F3) ] 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) ]