{-
I have written a program (below) to run a test suite for a list of functions:

    [isTotalJunc, isPartialJunc]

where each function receives a datum of type ApplyArg whose value slot is 
one element at a time of the list of types below:

    [JNone, JOne, JAny, JAll] 

I therefore must run 8 tests (the cross product of functions and types).

Right now, here is the output:

*Main> test_total_partial
["fun: (->)input: JNoneoutput: True","fun: (->)input: JOneoutput: False","fun: 
(->)input: JAnyoutput: False","fun: (->)input: JAlloutput: True","fun: 
(->)input: JNoneoutput: False","fun: (->)input: JOneoutput: True","fun: 
(->)input: JAnyoutput: True","fun: (->)input: JAlloutput: False"]

  -- One problem is that functions do not print as their name. The
     call to (show f) in showres simply yields (->)

  -- Another problem is that I cannot manage to separate each string
     with a carriage return.

Any help with these problems is appreciated.

-}

test_total_partial = let funs  = [isTotalJunc, isPartialJunc]
                         types = [JNone, JOne, JAny, JAll] 
                         mkdat typ = ApplyArg "somename" (VJunc $ Junc typ 
emptySet emptySet) False
                         showres f t r = "fun: " ++ (show f) ++ "input: " ++ 
(show t) ++ "output: " ++ (show r)
                         runtest f t = do {
                                           retval <- f (mkdat t);
                                           return $ (showres f t retval)
                                          }
                         in
  [ (showres f t (f (mkdat t))) | f <- funs, t <- types ]

-- 
        Carter's Compass: I know I'm on the right track when,
           by deleting something, I'm adding functionality.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to