summaryrefslogtreecommitdiff
path: root/lib/Numeric
diff options
context:
space:
mode:
authorAlberto Ruiz <aruiz@um.es>2008-02-21 19:00:22 +0000
committerAlberto Ruiz <aruiz@um.es>2008-02-21 19:00:22 +0000
commite5387206db024f55c19a62e7b1d324364c5f2d23 (patch)
tree4aec886e5ed1ded645b132014fb19af72513fa21 /lib/Numeric
parentbc2dcb1464ed2674e48bbb9372dc6135abe9bd1c (diff)
working on tests
Diffstat (limited to 'lib/Numeric')
-rw-r--r--lib/Numeric/LinearAlgebra/Tests.hs67
-rw-r--r--lib/Numeric/LinearAlgebra/Tests/Properties.hs5
2 files changed, 72 insertions, 0 deletions
diff --git a/lib/Numeric/LinearAlgebra/Tests.hs b/lib/Numeric/LinearAlgebra/Tests.hs
new file mode 100644
index 0000000..534eb04
--- /dev/null
+++ b/lib/Numeric/LinearAlgebra/Tests.hs
@@ -0,0 +1,67 @@
1-----------------------------------------------------------------------------
2{- |
3Module : Numeric.LinearAlgebra.Tests
4Copyright : (c) Alberto Ruiz 2007
5License : GPL-style
6
7Maintainer : Alberto Ruiz (aruiz at um dot es)
8Stability : provisional
9Portability : portable
10
11Some tests.
12
13-}
14
15module Numeric.LinearAlgebra.Tests(
16 module Numeric.LinearAlgebra.Tests.Instances,
17 module Numeric.LinearAlgebra.Tests.Properties,
18 qCheck,RM,CM, rM,cM, rHer,cHer,rRot,cRot,rSq,cSq,
19 runTests
20--, runBigTests
21) where
22
23import Numeric.LinearAlgebra
24import Numeric.LinearAlgebra.Tests.Instances
25import Numeric.LinearAlgebra.Tests.Properties
26import Test.QuickCheck
27import Debug.Trace
28
29qCheck n = check defaultConfig {configSize = const n}
30
31debug x = trace (show x) x
32
33type RM = Matrix Double
34type CM = Matrix (Complex Double)
35
36rM m = m :: RM
37cM m = m :: CM
38
39rHer (Her m) = m :: RM
40cHer (Her m) = m :: CM
41
42rRot (Rot m) = m :: RM
43cRot (Rot m) = m :: CM
44
45rSq (Sq m) = m :: RM
46cSq (Sq m) = m :: CM
47
48rWC (WC m) = m :: RM
49cWC (WC m) = m :: CM
50
51-- | It runs all the tests.
52runTests :: Int -- ^ maximum dimension
53 -> IO ()
54runTests n = do
55 qCheck n (hermitian . rHer)
56 qCheck n (hermitian . cHer)
57 qCheck n (unitary . rRot)
58 qCheck n (unitary . cRot)
59 qCheck n (wellCond . rWC)
60 qCheck n (wellCond . cWC)
61 --------------------------------
62 qCheck n (luTest . rM)
63 qCheck n (luTest . cM)
64
65-- | Some additional tests on big matrices. They take a few minutes.
66runBigTests :: IO ()
67runBigTests = undefined
diff --git a/lib/Numeric/LinearAlgebra/Tests/Properties.hs b/lib/Numeric/LinearAlgebra/Tests/Properties.hs
index 6686b97..351615b 100644
--- a/lib/Numeric/LinearAlgebra/Tests/Properties.hs
+++ b/lib/Numeric/LinearAlgebra/Tests/Properties.hs
@@ -52,3 +52,8 @@ hermitian m = square m && m |~| ctrans m
52degenerate m = rank m < min (rows m) (cols m) 52degenerate m = rank m < min (rows m) (cols m)
53 53
54wellCond m = rcond m > 1/100 54wellCond m = rcond m > 1/100
55
56-----------------------------------------------------
57
58luTest m = m |~| p <> l <> u && det p == s
59 where (l,u,p,s) = lu m