diff options
Diffstat (limited to 'testsuite/tests/lib/should_run/enum02.hs')
-rw-r--r-- | testsuite/tests/lib/should_run/enum02.hs | 263 |
1 files changed, 0 insertions, 263 deletions
diff --git a/testsuite/tests/lib/should_run/enum02.hs b/testsuite/tests/lib/should_run/enum02.hs deleted file mode 100644 index 3ba9d4912d..0000000000 --- a/testsuite/tests/lib/should_run/enum02.hs +++ /dev/null @@ -1,263 +0,0 @@ --- !!! Testing the Int Enum instances. -module Main(main) where - -import Control.Exception -import Prelude hiding (catch) -import Data.Int - -main = do - putStrLn "Testing Enum Int8:" - testEnumInt8 - putStrLn "Testing Enum Int16:" - testEnumInt16 - putStrLn "Testing Enum Int32:" - testEnumInt32 - putStrLn "Testing Enum Int64:" - testEnumInt64 - -#define printTest(x) (do{ putStr ( " " ++ "x" ++ " = " ) ; print (x) }) - -testEnumInt8 :: IO () -testEnumInt8 = do - -- succ - printTest ((succ (0::Int8))) - printTest ((succ (minBound::Int8))) - mayBomb (printTest ((succ (maxBound::Int8)))) - - -- pred - printTest (pred (1::Int8)) - printTest (pred (maxBound::Int8)) - mayBomb (printTest (pred (minBound::Int8))) - - -- toEnum - printTest ((map (toEnum::Int->Int8) [1, fromIntegral (minBound::Int8), fromIntegral (maxBound::Int8)])) - mayBomb (printTest ((toEnum (maxBound::Int))::Int8)) - - -- fromEnum - printTest ((map fromEnum [(1::Int8),minBound,maxBound])) - - -- [x..] aka enumFrom - printTest ((take 7 [(1::Int8)..])) - printTest ((take 7 [((maxBound::Int8)-5)..])) -- just in case it doesn't catch the upper bound.. - - -- [x,y..] aka enumFromThen - printTest ((take 7 [(1::Int8),2..])) - printTest ((take 7 [(1::Int8),7..])) - printTest ((take 7 [(1::Int8),1..])) - printTest ((take 7 [(1::Int8),0..])) - printTest ((take 7 [(5::Int8),2..])) - let x = (minBound::Int8) + 1 - printTest ((take 7 [x, x-1 ..])) - let x = (minBound::Int8) + 5 - printTest ((take 7 [x, x-1 ..])) - let x = (maxBound::Int8) - 5 - printTest ((take 7 [x, (x+1) ..])) - - -- [x..y] aka enumFromTo - printTest ((take 7 ([(1::Int8) .. 5]))) - printTest ((take 4 ([(1::Int8) .. 1]))) - printTest ((take 7 ([(1::Int8) .. 0]))) - printTest ((take 7 ([(5::Int8) .. 0]))) - printTest ((take 7 ([(maxBound-(5::Int8)) .. maxBound]))) - printTest ((take 7 ([(minBound+(5::Int8)) .. minBound]))) - - -- [x,y..z] aka enumFromThenTo - printTest ((take 7 [(5::Int8),4..1])) - printTest ((take 7 [(5::Int8),3..1])) - printTest ((take 7 [(5::Int8),3..2])) - printTest ((take 7 [(1::Int8),2..1])) - printTest ((take 7 [(2::Int8),1..2])) - printTest ((take 7 [(2::Int8),1..1])) - printTest ((take 7 [(2::Int8),3..1])) - - let x = (maxBound::Int8) - 4 - printTest ((take 7 [x,(x+1)..maxBound])) - let x = (minBound::Int8) + 5 - printTest ((take 7 [x,(x-1)..minBound])) - -testEnumInt16 :: IO () -testEnumInt16 = do - -- succ - printTest ((succ (0::Int16))) - printTest ((succ (minBound::Int16))) - mayBomb (printTest ((succ (maxBound::Int16)))) - - -- pred - printTest (pred (1::Int16)) - printTest (pred (maxBound::Int16)) - mayBomb (printTest (pred (minBound::Int16))) - - -- toEnum - printTest ((map (toEnum::Int->Int16) [1, fromIntegral (minBound::Int16), fromIntegral (maxBound::Int16)])) - mayBomb (printTest ((toEnum (maxBound::Int))::Int16)) - - - -- fromEnum - printTest ((map fromEnum [(1::Int16),minBound,maxBound])) - - -- [x..] aka enumFrom - printTest ((take 7 [(1::Int16)..])) - printTest ((take 7 [((maxBound::Int16)-5)..])) -- just in case it doesn't catch the upper bound.. - - -- [x,y..] aka enumFromThen - printTest ((take 7 [(1::Int16),2..])) - printTest ((take 7 [(1::Int16),7..])) - printTest ((take 7 [(1::Int16),1..])) - printTest ((take 7 [(1::Int16),0..])) - printTest ((take 7 [(5::Int16),2..])) - let x = (minBound::Int16) + 1 - printTest ((take 7 [x, x-1 ..])) - let x = (minBound::Int16) + 5 - printTest ((take 7 [x, x-1 ..])) - let x = (maxBound::Int16) - 5 - printTest ((take 7 [x, (x+1) ..])) - - -- [x..y] aka enumFromTo - printTest ((take 7 ([(1::Int16) .. 5]))) - printTest ((take 4 ([(1::Int16) .. 1]))) - printTest ((take 7 ([(1::Int16) .. 0]))) - printTest ((take 7 ([(5::Int16) .. 0]))) - printTest ((take 7 ([(maxBound-(5::Int16)) .. maxBound]))) - printTest ((take 7 ([(minBound+(5::Int16)) .. minBound]))) - - -- [x,y..z] aka enumFromThenTo - printTest ((take 7 [(5::Int16),4..1])) - printTest ((take 7 [(5::Int16),3..1])) - printTest ((take 7 [(5::Int16),3..2])) - printTest ((take 7 [(1::Int16),2..1])) - printTest ((take 7 [(2::Int16),1..2])) - printTest ((take 7 [(2::Int16),1..1])) - printTest ((take 7 [(2::Int16),3..1])) - - let x = (maxBound::Int16) - 4 - printTest ((take 7 [x,(x+1)..maxBound])) - let x = (minBound::Int16) + 5 - printTest ((take 7 [x,(x-1)..minBound])) - -testEnumInt32 :: IO () -testEnumInt32 = do - -- succ - printTest ((succ (0::Int32))) - printTest ((succ (minBound::Int32))) - mayBomb (printTest ((succ (maxBound::Int32)))) - - -- pred - printTest (pred (1::Int32)) - printTest (pred (maxBound::Int32)) - mayBomb (printTest (pred (minBound::Int32))) - - -- toEnum - printTest ((map (toEnum::Int->Int32) [1, fromIntegral (minBound::Int32), fromIntegral (maxBound::Int32)])) - mayBomb (printTest ((toEnum (maxBound::Int))::Int32)) - - -- fromEnum - printTest ((map fromEnum [(1::Int32),minBound,maxBound])) - - -- [x..] aka enumFrom - printTest ((take 7 [(1::Int32)..])) - printTest ((take 7 [((maxBound::Int32)-5)..])) -- just in case it doesn't catch the upper bound.. - - -- [x,y..] aka enumFromThen - printTest ((take 7 [(1::Int32),2..])) - printTest ((take 7 [(1::Int32),7..])) - printTest ((take 7 [(1::Int32),1..])) - printTest ((take 7 [(1::Int32),0..])) - printTest ((take 7 [(5::Int32),2..])) - let x = (minBound::Int32) + 1 - printTest ((take 7 [x, x-1 ..])) - let x = (minBound::Int32) + 5 - printTest ((take 7 [x, x-1 ..])) - let x = (maxBound::Int32) - 5 - printTest ((take 7 [x, (x+1) ..])) - - -- [x..y] aka enumFromTo - printTest ((take 7 ([(1::Int32) .. 5]))) - printTest ((take 4 ([(1::Int32) .. 1]))) - printTest ((take 7 ([(1::Int32) .. 0]))) - printTest ((take 7 ([(5::Int32) .. 0]))) - printTest ((take 7 ([(maxBound-(5::Int32)) .. maxBound]))) - printTest ((take 7 ([(minBound+(5::Int32)) .. minBound]))) - - -- [x,y..z] aka enumFromThenTo - printTest ((take 7 [(5::Int32),4..1])) - printTest ((take 7 [(5::Int32),3..1])) - printTest ((take 7 [(5::Int32),3..2])) - printTest ((take 7 [(1::Int32),2..1])) - printTest ((take 7 [(2::Int32),1..2])) - printTest ((take 7 [(2::Int32),1..1])) - printTest ((take 7 [(2::Int32),3..1])) - - let x = (maxBound::Int32) - 4 - printTest ((take 7 [x,(x+1)..maxBound])) - let x = (minBound::Int32) + 5 - printTest ((take 7 [x,(x-1)..minBound])) - -testEnumInt64 :: IO () -testEnumInt64 = do - -- succ - printTest ((succ (0::Int64))) - printTest ((succ (minBound::Int64))) - mayBomb (printTest ((succ (maxBound::Int64)))) - - -- pred - printTest (pred (1::Int64)) - printTest (pred (maxBound::Int64)) - mayBomb (printTest (pred (minBound::Int64))) - - -- toEnum - mayBomb (printTest ((map (toEnum::Int->Int64) [1, fromIntegral (minBound::Int64), fromIntegral (maxBound::Int64)]))) - mayBomb (printTest ((toEnum (maxBound::Int))::Int64)) - - -- fromEnum - printTest ((map fromEnum [(1::Int64),fromIntegral (minBound::Int) ,fromIntegral (maxBound::Int)])) - mayBomb (printTest (fromEnum (maxBound::Int64))) - - -- [x..] aka enumFrom - printTest ((take 7 [(1::Int64)..])) - printTest ((take 7 [((maxBound::Int64)-5)..])) -- just in case it doesn't catch the upper bound.. - - -- [x,y..] aka enumFromThen - printTest ((take 7 [(1::Int64),2..])) - printTest ((take 7 [(1::Int64),7..])) - printTest ((take 7 [(1::Int64),1..])) - printTest ((take 7 [(1::Int64),0..])) - printTest ((take 7 [(5::Int64),2..])) - let x = (minBound::Int64) + 1 - printTest ((take 7 [x, x-1 ..])) - let x = (minBound::Int64) + 5 - printTest ((take 7 [x, x-1 ..])) - let x = (maxBound::Int64) - 5 - printTest ((take 7 [x, (x+1) ..])) - - -- [x..y] aka enumFromTo - printTest ((take 7 ([(1::Int64) .. 5]))) - printTest ((take 4 ([(1::Int64) .. 1]))) - printTest ((take 7 ([(1::Int64) .. 0]))) - printTest ((take 7 ([(5::Int64) .. 0]))) - printTest ((take 7 ([(maxBound-(5::Int64)) .. maxBound]))) - printTest ((take 7 ([(minBound+(5::Int64)) .. minBound]))) - - -- [x,y..z] aka enumFromThenTo - printTest ((take 7 [(5::Int64),4..1])) - printTest ((take 7 [(5::Int64),3..1])) - printTest ((take 7 [(5::Int64),3..2])) - printTest ((take 7 [(1::Int64),2..1])) - printTest ((take 7 [(2::Int64),1..2])) - printTest ((take 7 [(2::Int64),1..1])) - printTest ((take 7 [(2::Int64),3..1])) - - let x = (maxBound::Int64) - 4 - printTest ((take 7 [x,(x+1)..maxBound])) - let x = (minBound::Int64) + 5 - printTest ((take 7 [x,(x-1)..minBound])) - - --- --- --- Utils --- --- - - -mayBomb x = catch x (\(ErrorCall e) -> putStrLn ("error " ++ show e)) - `catch` (\e -> putStrLn ("Fail: " ++ show (e :: SomeException))) |