--------------------------------------------------------------------------------
   $ I d :  , v 1.10 2004/01/06 13:53:10 graham Exp $ 
--
   Copyright ( c ) 2003 ,   .   All rights reserved . 
--  See end of this file for licence information.
--------------------------------------------------------------------------------
-- |
--  Module      :  SwishTest
   Copyright    :   ( c ) 2003 ,   
   License      :   GPL V2 
--
   Maintainer   :     
--  Stability   :  provisional
--  Portability :  H98
--
   SwishTest :   Test cases for Swish program . 
--
--------------------------------------------------------------------------------

   WNH RIP OUT    module Swish . HaskellRDF.SwishTest where

import System.Exit

import System.Time

import Test.HUnit
      ( Test(..), Assertable(..),
        assertEqual, runTestTT, runTestText, putTextToHandle )

import Swish.HaskellRDF.SwishMain


------------------------------------------------------------
--  Interactive test cases
------------------------------------------------------------

testSwish :: String -> IO Bool
testSwish cmdline =
    do  { exitcode <- runSwish cmdline
        -- ; putStr $ "Exit status: "++(show exitcode)
        ; return $ exitcode == ExitSuccess
        }

swishTestCase :: String -> Test
swishTestCase cmdline = TestCase ( assert $ testSwish cmdline )

test1 = runSwish "-?"
test2 = runSwish "-!not=validcommand"

test3 = swishTestCase "-i=Data/N3TestGenReport.n3"
test4 = swishTestCase "-i=Data/sbp-data.n3"
test5 = swishTestCase "-i=Data/Simple.n3 "
test6 = swishTestCase "-i=Data/Simple.n3 -o=Data/Simple.tmp"
test7 = swishTestCase "-i=Data/Simple.n3 -c=Data/Simple.n3"
test8 = swishTestCase "-i=Data/Simple.n3 -c=Data/Simple.tmp"
test9 = swishTestCase "-i=Data/Simple.tmp -c=Data/Simple.tmp"

test10a = swishTestCase "-i=Data/Simple3.n3"
test10b = swishTestCase "-i=Data/Simple3.n3 -o"

test10 = swishTestCase "-i=Data/Simple3.n3 -o=Data/Simple3.tmp"
test11 = swishTestCase "-i=Data/Simple3.n3 -c=Data/Simple3.n3"
test12 = swishTestCase "-i=Data/Simple3.n3 -c=Data/Simple3.tmp"
test13 = swishTestCase "-i=Data/Simple3.tmp -c=Data/Simple3.tmp"

test20a = swishTestCase "-i=Data/N3TestGenReport.n3"
test20b = swishTestCase "-i=Data/N3TestGenReport.n3 -o"

test20 = swishTestCase "-i=Data/N3TestGenReport.n3 -o=Data/N3TestGenReport.tmp"
test21 = swishTestCase "-i=Data/N3TestGenReport.n3 -c=Data/N3TestGenReport.n3"
test22 = swishTestCase "-i=Data/N3TestGenReport.n3 -c=Data/N3TestGenReport.tmp"
test23 = swishTestCase "-i=Data/N3TestGenReport.tmp -c=Data/N3TestGenReport.tmp"

test30 = swishTestCase "-i=Data/Merge1.n3 -m=Data/Merge2.n3 -c=Data/Merge3.n3"

test31 = swishTestCase "-s=Swishtest.ss"

tests1a = swishTestCase "-i=Data/Simple2.n3 -o=Data/Simple2.tmp"
tests1b = swishTestCase "-i=Data/Simple2.n3 -c=Data/Simple2.tmp"

allTests = TestList
    [ test3
    , test4
    , test5
    , test6
    , test7
    , test8
    , test9
    , test10
    , test11
    , test12
    , test13
    , tests1a
    , tests1b
    , test20
    , test21
    , test22
    , test23
    , test30
    , test31
    ]

runTest t =
    do  { st <- getClockTime
        ; putStr $ "Test started:  "++show st++"\n"
        ; runTestTT t
        ; ft <- getClockTime
        ; putStr $ "Test finished: "++show ft++"\n"
        ; let et = diffClockTimes ft st
        ; return et
        ; putStr $ "Test duration: "++show et++"\n"
        }

testAll = runTest allTests

tt   = runTest
t20a = runTest test20a
t20b = runTest test20b

main = testAll

--------------------------------------------------------------------------------
--
   Copyright ( c ) 2003 ,   .   All rights reserved . 
--
   This file is part of Swish . 
--
   Swish is free software ; you can redistribute it and/or modify 
   it under the terms of the GNU General Public License as published by 
   the Free Software Foundation ; either version 2 of the License , or 
--  (at your option) any later version.
--
   Swish is distributed in the hope that it will be useful , 
--  but WITHOUT ANY WARRANTY; without even the implied warranty of
--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--  GNU General Public License for more details.
--
   You should have received a copy of the GNU General Public License 
   along with Swish ; if not , write to : 
     The Free Software Foundation , Inc. , 
     59 Temple Place , Suite 330 , Boston , MA   02111 - 1307   USA 
--
--------------------------------------------------------------------------------
  $ Source : /file /  / HaskellRDF / SwishTest.hs , v $ 
  $ Author :   
  $ Revision : 1.10 $ 
-- $Log: SwishTest.hs,v $
  Revision 1.10   2004/01/06 13:53:10    
  Created consolidated test harness (  ) 
--
  Revision 1.9   2003/09/24 18:50:53    
  Revised module format to be  compatible . 
--
  Revision 1.8   2003/06/03 19:24:13    
-- Updated all source modules to cite GNU Public Licence
--
-- Revision 1.7  2003/05/29 11:53:31  graham
  Juggle Swish code :   SwishMain.hs is main program logic , with 
  Swish.hs and  being alternative " Main " modules for 
-- the real program and test harness respectively.
--
  Revision 1.6   2003/05/29 10:49:08    
  Added and tested merge option ( -m ) for Swish program 
--
  Revision 1.5   2003/05/29 01:50:56    
  More performance tuning , courtesy of GHC profiler . 
-- All modules showing reasonable performance now.
--
  Revision 1.4   2003/05/29 00:57:37    
-- Resolved swish performance problem, which turned out to an inefficient
-- method used by the parser to add arcs to a graph.
--
  Revision 1.3   2003/05/28 19:57:50   graham 
  Adjusting code to compile with GHC 
--
  Revision 1.2   2003/05/28 17:39:30    
  Trying to track down N3 formatter performance problem . 
--
  Revision 1.1   2003/05/23 00:03:55   graham 
  Added HUnit test module for swish program . 
-- Greatly enhanced N3Formatter tests
--

------------------------------------------------------------------------------

  See end of this file for licence information.
------------------------------------------------------------------------------
 |
  Module      :  SwishTest

  Stability   :  provisional
  Portability :  H98


------------------------------------------------------------------------------
----------------------------------------------------------
  Interactive test cases
----------------------------------------------------------
 ; putStr $ "Exit status: "++(show exitcode)
------------------------------------------------------------------------------



  (at your option) any later version.

  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.


------------------------------------------------------------------------------
 $Log: SwishTest.hs,v $


 Updated all source modules to cite GNU Public Licence

 Revision 1.7  2003/05/29 11:53:31  graham
 the real program and test harness respectively.


 All modules showing reasonable performance now.

 Resolved swish performance problem, which turned out to an inefficient
 method used by the parser to add arcs to a graph.



 Greatly enhanced N3Formatter tests

   $ I d :  , v 1.10 2004/01/06 13:53:10 graham Exp $ 
   Copyright ( c ) 2003 ,   .   All rights reserved . 
   Copyright    :   ( c ) 2003 ,   
   License      :   GPL V2 
   Maintainer   :     
   SwishTest :   Test cases for Swish program . 

   WNH RIP OUT    module Swish . HaskellRDF.SwishTest where

import System.Exit

import System.Time

import Test.HUnit
      ( Test(..), Assertable(..),
        assertEqual, runTestTT, runTestText, putTextToHandle )

import Swish.HaskellRDF.SwishMain



testSwish :: String -> IO Bool
testSwish cmdline =
    do  { exitcode <- runSwish cmdline
        ; return $ exitcode == ExitSuccess
        }

swishTestCase :: String -> Test
swishTestCase cmdline = TestCase ( assert $ testSwish cmdline )

test1 = runSwish "-?"
test2 = runSwish "-!not=validcommand"

test3 = swishTestCase "-i=Data/N3TestGenReport.n3"
test4 = swishTestCase "-i=Data/sbp-data.n3"
test5 = swishTestCase "-i=Data/Simple.n3 "
test6 = swishTestCase "-i=Data/Simple.n3 -o=Data/Simple.tmp"
test7 = swishTestCase "-i=Data/Simple.n3 -c=Data/Simple.n3"
test8 = swishTestCase "-i=Data/Simple.n3 -c=Data/Simple.tmp"
test9 = swishTestCase "-i=Data/Simple.tmp -c=Data/Simple.tmp"

test10a = swishTestCase "-i=Data/Simple3.n3"
test10b = swishTestCase "-i=Data/Simple3.n3 -o"

test10 = swishTestCase "-i=Data/Simple3.n3 -o=Data/Simple3.tmp"
test11 = swishTestCase "-i=Data/Simple3.n3 -c=Data/Simple3.n3"
test12 = swishTestCase "-i=Data/Simple3.n3 -c=Data/Simple3.tmp"
test13 = swishTestCase "-i=Data/Simple3.tmp -c=Data/Simple3.tmp"

test20a = swishTestCase "-i=Data/N3TestGenReport.n3"
test20b = swishTestCase "-i=Data/N3TestGenReport.n3 -o"

test20 = swishTestCase "-i=Data/N3TestGenReport.n3 -o=Data/N3TestGenReport.tmp"
test21 = swishTestCase "-i=Data/N3TestGenReport.n3 -c=Data/N3TestGenReport.n3"
test22 = swishTestCase "-i=Data/N3TestGenReport.n3 -c=Data/N3TestGenReport.tmp"
test23 = swishTestCase "-i=Data/N3TestGenReport.tmp -c=Data/N3TestGenReport.tmp"

test30 = swishTestCase "-i=Data/Merge1.n3 -m=Data/Merge2.n3 -c=Data/Merge3.n3"

test31 = swishTestCase "-s=Swishtest.ss"

tests1a = swishTestCase "-i=Data/Simple2.n3 -o=Data/Simple2.tmp"
tests1b = swishTestCase "-i=Data/Simple2.n3 -c=Data/Simple2.tmp"

allTests = TestList
    [ test3
    , test4
    , test5
    , test6
    , test7
    , test8
    , test9
    , test10
    , test11
    , test12
    , test13
    , tests1a
    , tests1b
    , test20
    , test21
    , test22
    , test23
    , test30
    , test31
    ]

runTest t =
    do  { st <- getClockTime
        ; putStr $ "Test started:  "++show st++"\n"
        ; runTestTT t
        ; ft <- getClockTime
        ; putStr $ "Test finished: "++show ft++"\n"
        ; let et = diffClockTimes ft st
        ; return et
        ; putStr $ "Test duration: "++show et++"\n"
        }

testAll = runTest allTests

tt   = runTest
t20a = runTest test20a
t20b = runTest test20b

main = testAll

   Copyright ( c ) 2003 ,   .   All rights reserved . 
   This file is part of Swish . 
   Swish is free software ; you can redistribute it and/or modify 
   it under the terms of the GNU General Public License as published by 
   the Free Software Foundation ; either version 2 of the License , or 
   Swish is distributed in the hope that it will be useful , 
   You should have received a copy of the GNU General Public License 
   along with Swish ; if not , write to : 
     The Free Software Foundation , Inc. , 
     59 Temple Place , Suite 330 , Boston , MA   02111 - 1307   USA 
  $ Source : /file /  / HaskellRDF / SwishTest.hs , v $ 
  $ Author :   
  $ Revision : 1.10 $ 
  Revision 1.10   2004/01/06 13:53:10    
  Created consolidated test harness (  ) 
  Revision 1.9   2003/09/24 18:50:53    
  Revised module format to be  compatible . 
  Revision 1.8   2003/06/03 19:24:13    
  Juggle Swish code :   SwishMain.hs is main program logic , with 
  Swish.hs and  being alternative " Main " modules for 
  Revision 1.6   2003/05/29 10:49:08    
  Added and tested merge option ( -m ) for Swish program 
  Revision 1.5   2003/05/29 01:50:56    
  More performance tuning , courtesy of GHC profiler . 
  Revision 1.4   2003/05/29 00:57:37    
  Revision 1.3   2003/05/28 19:57:50   graham 
  Adjusting code to compile with GHC 
  Revision 1.2   2003/05/28 17:39:30    
  Trying to track down N3 formatter performance problem . 
  Revision 1.1   2003/05/23 00:03:55   graham 
  Added HUnit test module for swish program . 
