diff options
author | Kavon Farvardin <kavon@farvard.in> | 2018-09-23 15:29:37 -0500 |
---|---|---|
committer | Kavon Farvardin <kavon@farvard.in> | 2018-09-23 15:29:37 -0500 |
commit | 84c2ad99582391005b5e873198b15e9e9eb4f78d (patch) | |
tree | caa8c2f2ec7e97fbb4977263c6817c9af5025cf4 /libraries/base/tests | |
parent | 8ddb47cfcf5776e9a3c55fd37947c8a95e00fa12 (diff) | |
parent | e68b439fe5de61b9a2ca51af472185c62ccb8b46 (diff) | |
download | haskell-wip/T13904.tar.gz |
update to current master againwip/T13904
Diffstat (limited to 'libraries/base/tests')
32 files changed, 582 insertions, 265 deletions
diff --git a/libraries/base/tests/CatEntail.hs b/libraries/base/tests/CatEntail.hs index c980a2db73..30023ad5b8 100644 --- a/libraries/base/tests/CatEntail.hs +++ b/libraries/base/tests/CatEntail.hs @@ -2,11 +2,11 @@ {-# LANGUAGE TypeOperators, KindSignatures #-} module CatEntail where import Prelude hiding (id, (.)) -import GHC.Exts (Constraint) +import Data.Kind import Control.Category -- One dictionary to rule them all. -data Dict :: Constraint -> * where +data Dict :: Constraint -> Type where Dict :: ctx => Dict ctx -- Entailment. diff --git a/libraries/base/tests/IO/T2122.hs b/libraries/base/tests/IO/T2122.hs index 9a8badc216..488d2434bc 100644 --- a/libraries/base/tests/IO/T2122.hs +++ b/libraries/base/tests/IO/T2122.hs @@ -51,9 +51,9 @@ test causeFailure = -- probably because openFd does not try to lock the file test2 :: Bool -> IO () test2 causeFailure = - do fd1 <- openFd fp ReadOnly Nothing defaultFileFlags `catchIOError` (\e -> error ("openFile 1: " ++ show e)) + do fd1 <- openFd fp ReadOnly defaultFileFlags `catchIOError` (\e -> error ("openFile 1: " ++ show e)) when causeFailure $ do - fd2 <- openFd fp ReadOnly Nothing defaultFileFlags `catchIOError` (\e -> error ("openFile 2: " ++ show e)) + fd2 <- openFd fp ReadOnly defaultFileFlags `catchIOError` (\e -> error ("openFile 2: " ++ show e)) closeFd fd2 closeFd fd1 removeFile fp diff --git a/libraries/base/tests/IO/all.T b/libraries/base/tests/IO/all.T index 0de530bc2c..dba0e5e3d7 100644 --- a/libraries/base/tests/IO/all.T +++ b/libraries/base/tests/IO/all.T @@ -34,7 +34,8 @@ test('hReady001', normal, compile_and_run, ['-cpp']) # data to read. It relies on piping input from 'sleep 1', which doesn't # work for the 'ghci' way because in that case we already pipe input from # a script, so hence omit_ways(['ghci']) -test('hReady002', [cmd_prefix('sleep 1 |'), omit_ways(['ghci'])], +test('hReady002', [cmd_prefix('sleep 1 |'), omit_ways(['ghci']), + multi_cpu_race], compile_and_run, ['']) test('hSeek001', normal, compile_and_run, ['']) @@ -87,8 +88,10 @@ test('hDuplicateTo001', [], compile_and_run, ['']) test('countReaders001', [], compile_and_run, ['']) -test('concio001', normal, run_command, ['$MAKE -s --no-print-directory test.concio001']) -test('concio001.thr', extra_files(['concio001.hs']), run_command, ['$MAKE -s --no-print-directory test.concio001.thr']) +test('concio001', [normal, multi_cpu_race], + run_command, ['$MAKE -s --no-print-directory test.concio001']) +test('concio001.thr', [extra_files(['concio001.hs']), multi_cpu_race], + run_command, ['$MAKE -s --no-print-directory test.concio001.thr']) test('concio002', reqlib('process'), compile_and_run, ['']) diff --git a/libraries/base/tests/Numeric/all.T b/libraries/base/tests/Numeric/all.T index a0a9d68382..c4c9bb4646 100644 --- a/libraries/base/tests/Numeric/all.T +++ b/libraries/base/tests/Numeric/all.T @@ -13,7 +13,9 @@ if config.arch == 'i386': else: opts = '' test('num009', [ when(fast(), skip) + , when(wordsize(32), expect_broken(15062)) , when(platform('i386-apple-darwin'), expect_broken(2370)) + , when(platform('powerpc64le-unknown-linux'), expect_broken(13634)) , when(opsys('mingw32'), omit_ways(['ghci'])) ], # We get different results at 1e20 on x86/Windows, so there is # a special output file for that. I (SDM) don't think these are @@ -25,3 +27,4 @@ test('num010', when(platform('i386-apple-darwin'), expect_broken_for(7043, 'ghci')), compile_and_run, ['']) +test('sqrt', normal, compile_and_run, ['']) diff --git a/libraries/base/tests/Numeric/num008.stdout b/libraries/base/tests/Numeric/num008.stdout index 5086442f0f..116998cc80 100644 --- a/libraries/base/tests/Numeric/num008.stdout +++ b/libraries/base/tests/Numeric/num008.stdout @@ -6,14 +6,14 @@ 4.2000000e-2 1.8217369e0 1.8217369e-300 -0.0e0 -4.2e2 -4.2e1 -4.2e0 -4.2e-1 -4.2e-2 -1.8e0 -1.8e-300 +0e0 +4e2 +4e1 +4e0 +4e-1 +4e-2 +2e0 +2e-300 0.0e0 4.2e2 4.2e1 @@ -59,9 +59,9 @@ 42 4 0 -4.2e-2 +4e-2 2 -1.8e-300 +2e-300 0.0 420.0 42.0 @@ -79,14 +79,14 @@ 4.2000000e-2 1.8217369e0 0.0000000e0 -0.0e0 -4.2e2 -4.2e1 -4.2e0 -4.2e-1 -4.2e-2 -1.8e0 -0.0e0 +0e0 +4e2 +4e1 +4e0 +4e-1 +4e-2 +2e0 +0e0 0.0e0 4.2e2 4.2e1 @@ -132,7 +132,7 @@ 42 4 0 -4.2e-2 +4e-2 2 0 0.0 @@ -144,5 +144,5 @@ 1.8217369 0.0 -[0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,1.8217369e-300,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8,1.8e-300,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369128763983,1.821736912876398e-300,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,420.0,42.0,4.0,0.0,0.0,2.0,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369128763983,1.821736912876398e-300,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,1.8217369e-300,0.0,420.0,42.0,4.0,0.0,4.2e-2,2.0,1.8e-300,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369128763983,1.821736912876398e-300] -[0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,420.0,42.0,4.0,0.0,0.0,2.0,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,420.0,42.0,4.0,0.0,4.2e-2,2.0,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0] +[0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,1.8217369e-300,0.0,400.0,40.0,4.0,0.4,4.0e-2,2.0,2.0e-300,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369128763983,1.821736912876398e-300,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,420.0,42.0,4.0,0.0,0.0,2.0,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369128763983,1.821736912876398e-300,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,1.8217369e-300,0.0,420.0,42.0,4.0,0.0,4.0e-2,2.0,2.0e-300,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369128763983,1.821736912876398e-300] +[0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,400.0,40.0,4.0,0.4,4.0e-2,2.0,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,420.0,42.0,4.0,0.0,0.0,2.0,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0,0.0,420.0,42.0,4.0,0.0,4.0e-2,2.0,0.0,0.0,420.0,42.0,4.2,0.42,4.2e-2,1.8217369,0.0] diff --git a/libraries/base/tests/Numeric/sqrt.hs b/libraries/base/tests/Numeric/sqrt.hs new file mode 100644 index 0000000000..a58875ae68 --- /dev/null +++ b/libraries/base/tests/Numeric/sqrt.hs @@ -0,0 +1,3 @@ +main = do + print (sqrt (-7 :: Double)) + print (sqrt (-7 :: Float)) diff --git a/libraries/base/tests/Numeric/sqrt.stdout b/libraries/base/tests/Numeric/sqrt.stdout new file mode 100644 index 0000000000..913b330b26 --- /dev/null +++ b/libraries/base/tests/Numeric/sqrt.stdout @@ -0,0 +1,2 @@ +NaN +NaN diff --git a/libraries/base/tests/System/all.T b/libraries/base/tests/System/all.T index a6894fa95a..3cadf3534f 100644 --- a/libraries/base/tests/System/all.T +++ b/libraries/base/tests/System/all.T @@ -4,6 +4,6 @@ test('getArgs001', normal, compile_and_run, ['']) test('getEnv001', normal, compile_and_run, ['']) test('T5930', normal, compile_and_run, ['']) -test('system001', when(opsys("mingw32"), expect_fail), \ +test('system001', when(opsys("mingw32"), skip), \ compile_and_run, ['']) test('Timeout001', normal, compile_and_run, ['']) diff --git a/libraries/base/tests/T10412.hs b/libraries/base/tests/T10412.hs new file mode 100644 index 0000000000..9657ef7d16 --- /dev/null +++ b/libraries/base/tests/T10412.hs @@ -0,0 +1,7 @@ +import Data.Char + +main :: IO () +main = do + print $ isMark '\768' + print $ isAlphaNum '\768' + print $ (isAlpha '\768', isNumber '\768') diff --git a/libraries/base/tests/T10412.stdout b/libraries/base/tests/T10412.stdout new file mode 100644 index 0000000000..a275e0ae27 --- /dev/null +++ b/libraries/base/tests/T10412.stdout @@ -0,0 +1,3 @@ +True +False +(False,False) diff --git a/libraries/base/tests/T12494.hs b/libraries/base/tests/T12494.hs new file mode 100644 index 0000000000..544f5ed908 --- /dev/null +++ b/libraries/base/tests/T12494.hs @@ -0,0 +1,36 @@ +import System.Environment.Blank + +main = do + let envVar = "AN_ENVIRONMENT_VARIABLE" + + valueBeforeSettingVariable <- getEnv envVar + print valueBeforeSettingVariable -- Nothing + + valueWithDefaultBeforeSetting <- getEnvDefault envVar "DEFAULT" + print valueWithDefaultBeforeSetting -- "DEFAULT" + + setEnv envVar "" False + + valueAfterSettingVariable <- getEnv envVar + print valueAfterSettingVariable -- Just "" + + valueWithDefaultAfterSetting <- getEnvDefault envVar "DEFAULT" + print valueWithDefaultAfterSetting -- "" + + valueFromGetEnvironment <- lookup envVar <$> getEnvironment + print valueFromGetEnvironment -- Just "" + + setEnv envVar "NO_OVERRIDE" False + + valueAfterSettingWithExistingValueAndOverrideFalse <- getEnv envVar + print valueAfterSettingWithExistingValueAndOverrideFalse -- Just "" + + setEnv envVar "OVERRIDE" True + + valueAfterSettingWithExistingValueAndOverrideTrue <- getEnv envVar + print valueAfterSettingWithExistingValueAndOverrideTrue -- Just "OVERRIDE" + + unsetEnv envVar + + valueAfterUnsettingVariable <- getEnv envVar + print valueAfterUnsettingVariable -- Nothing diff --git a/libraries/base/tests/T12494.stdout b/libraries/base/tests/T12494.stdout new file mode 100644 index 0000000000..a3b77cc271 --- /dev/null +++ b/libraries/base/tests/T12494.stdout @@ -0,0 +1,8 @@ +Nothing +"DEFAULT" +Just "" +"" +Just "" +Just "" +Just "OVERRIDE" +Nothing diff --git a/libraries/base/tests/T12874.hs b/libraries/base/tests/T12874.hs new file mode 100644 index 0000000000..cba7173121 --- /dev/null +++ b/libraries/base/tests/T12874.hs @@ -0,0 +1,9 @@ +module Main where + +import Data.Proxy + +main :: IO () +main = print (read "Thing Proxy" :: Thing (Proxy Int)) + +data Thing a = Thing a + deriving (Read,Show) diff --git a/libraries/base/tests/T12874.stdout b/libraries/base/tests/T12874.stdout new file mode 100644 index 0000000000..8a896600ac --- /dev/null +++ b/libraries/base/tests/T12874.stdout @@ -0,0 +1 @@ +Thing Proxy diff --git a/libraries/base/tests/T13167.hs b/libraries/base/tests/T13167.hs new file mode 100644 index 0000000000..e41104cde9 --- /dev/null +++ b/libraries/base/tests/T13167.hs @@ -0,0 +1,29 @@ +import Data.IORef +import Control.Monad +import Control.Exception +import Control.Concurrent.MVar +import System.Mem + +main :: IO () +main = do + run + run + run + run + m <- newEmptyMVar + quit m + performMajorGC + takeMVar m + +run :: IO () +run = do + ref <- newIORef () + void $ mkWeakIORef ref $ do + putStr "." + throwIO $ ErrorCall "failed" + +quit :: MVar () -> IO () +quit m = do + ref <- newIORef () + void $ mkWeakIORef ref $ do + putMVar m () diff --git a/libraries/base/tests/T13167.stdout b/libraries/base/tests/T13167.stdout new file mode 100644 index 0000000000..4918d25340 --- /dev/null +++ b/libraries/base/tests/T13167.stdout @@ -0,0 +1 @@ +....
diff --git a/libraries/base/tests/T13896.hs b/libraries/base/tests/T13896.hs new file mode 100644 index 0000000000..9e269a4a7c --- /dev/null +++ b/libraries/base/tests/T13896.hs @@ -0,0 +1,75 @@ +import GHC.ResponseFile + +assertEqual :: (Eq a, Show a) => a -> a -> IO () +assertEqual x y = if x == y + then return () + else error $ "assertEqual: " ++ show x ++ " /= " ++ show y + +-- Migrated from Haddock. + +-- The first two elements are +-- 1) a list of 'args' to encode and +-- 2) a single string of the encoded args +-- The 3rd element is just a description for the tests. +testStrs :: [(([String], String), String)] +testStrs = + [ ((["a simple command line"], + "a\\ simple\\ command\\ line\n"), + "the white-space, end with newline") + + , ((["arg 'foo' is single quoted"], + "arg\\ \\'foo\\'\\ is\\ single\\ quoted\n"), + "the single quotes as well") + + , ((["arg \"bar\" is double quoted"], + "arg\\ \\\"bar\\\"\\ is\\ double\\ quoted\n"), + "the double quotes as well" ) + + , ((["arg \"foo bar\" has embedded whitespace"], + "arg\\ \\\"foo\\ bar\\\"\\ has\\ embedded\\ whitespace\n"), + "the quote-embedded whitespace") + + , ((["arg 'Jack said \\'hi\\'' has single quotes"], + "arg\\ \\'Jack\\ said\\ \\\\\\'hi\\\\\\'\\'\\ has\\ single\\ quotes\n"), + "the escaped single quotes") + + , ((["arg 'Jack said \\\"hi\\\"' has double quotes"], + "arg\\ \\'Jack\\ said\\ \\\\\\\"hi\\\\\\\"\\'\\ has\\ double\\ quotes\n"), + "the escaped double quotes") + + , ((["arg 'Jack said\\r\\n\\t \\\"hi\\\"' has other whitespace"], + "arg\\ \\'Jack\\ said\\\\r\\\\n\\\\t\\ \\\\\\\"hi\\\\\\\"\\'\\ has\\ \ + \other\\ whitespace\n"), + "the other whitespace") + + , (([ "--prologue=.\\dist\\.\\haddock-prologue3239114604.txt" + , "--title=HaddockNewline-0.1.0.0: This has a\n\ + \newline yo." + , "-BC:\\Program Files\\Haskell Platform\\lib"], + "--prologue=.\\\\dist\\\\.\\\\haddock-prologue3239114604.txt\n\ + \--title=HaddockNewline-0.1.0.0:\\ This\\ has\\ a\\\n\ + \newline\\ yo.\n\ + \-BC:\\\\Program\\ Files\\\\Haskell\\ Platform\\\\lib\n"), + "an actual haddock response file snippet with embedded newlines") + ] + +main :: IO () +main = do + -- Test escapeArgs + mapM_ (\((ss1,s2),des) -> escapeArgs ss1 `assertEqual` s2) testStrs + + -- Test unescapeArgs + mapM_ (\((ss1,s2),des) -> unescapeArgs s2 `assertEqual` ss1) testStrs + + -- Given unescaped quotes, it should pass-through, + -- without escaping everything inside + + (filter (not . null) $ + unescapeArgs "this\\ is\\ 'not escape\\d \"inside\"'\\ yo\n") + `assertEqual` + ["this is not escaped \"inside\" yo"] + + (filter (not . null) $ + unescapeArgs "this\\ is\\ \"not escape\\d 'inside'\"\\ yo\n") + `assertEqual` + ["this is not escaped 'inside' yo"] diff --git a/libraries/base/tests/T14425.hs b/libraries/base/tests/T14425.hs new file mode 100644 index 0000000000..0a935693d3 --- /dev/null +++ b/libraries/base/tests/T14425.hs @@ -0,0 +1,5 @@ +import Data.Ratio + +main = do + print (approxRational (0 % 1 :: Ratio Int) (1 % 10)) -- 0%1, correct + print (approxRational (0 % 1 :: Ratio Word) (1 % 10)) -- 1%1, incorrect diff --git a/libraries/base/tests/T14425.stdout b/libraries/base/tests/T14425.stdout new file mode 100644 index 0000000000..2118b0ccd4 --- /dev/null +++ b/libraries/base/tests/T14425.stdout @@ -0,0 +1,2 @@ +0 % 1 +0 % 1 diff --git a/libraries/base/tests/T15349.hs b/libraries/base/tests/T15349.hs new file mode 100644 index 0000000000..6674330924 --- /dev/null +++ b/libraries/base/tests/T15349.hs @@ -0,0 +1,17 @@ +import Control.Monad.ST.Strict +import Control.Monad.Fix +import Data.STRef + +foo :: ST s Int +foo = do + ref <- newSTRef True + mfix $ \res -> do + x <- readSTRef ref + if x + then do + writeSTRef ref False + return $! (res + 5) + else return 10 + +main :: IO () +main = print $ runST foo diff --git a/libraries/base/tests/T15349.stderr b/libraries/base/tests/T15349.stderr new file mode 100644 index 0000000000..9cb080d93e --- /dev/null +++ b/libraries/base/tests/T15349.stderr @@ -0,0 +1 @@ +T15349: <<loop>> diff --git a/libraries/base/tests/T3474.hs b/libraries/base/tests/T3474.hs new file mode 100644 index 0000000000..dbd59011b4 --- /dev/null +++ b/libraries/base/tests/T3474.hs @@ -0,0 +1,5 @@ +import Data.List + +-- this should evaluate in constant space +main :: IO () +main = print $ iterate' (+1) 1 !! 100000000 diff --git a/libraries/base/tests/T3474.stdout b/libraries/base/tests/T3474.stdout new file mode 100644 index 0000000000..2e8da1af1b --- /dev/null +++ b/libraries/base/tests/T3474.stdout @@ -0,0 +1 @@ +100000001
\ No newline at end of file diff --git a/libraries/base/tests/T7773.hs b/libraries/base/tests/T7773.hs index 495cd7abd9..13ec40dadf 100644 --- a/libraries/base/tests/T7773.hs +++ b/libraries/base/tests/T7773.hs @@ -6,4 +6,4 @@ main = do fd <- openFd "/dev/random" ReadOnly Nothing defaultFileFlags threadWaitRead fd putStrLn "goodbye" -
\ No newline at end of file + diff --git a/libraries/base/tests/all.T b/libraries/base/tests/all.T index 4bd8084220..715d4c3f53 100644 --- a/libraries/base/tests/all.T +++ b/libraries/base/tests/all.T @@ -1,7 +1,21 @@ +import string +import re +#-------------------------------------- +# Python normalization functions +#-------------------------------------- + +def normalise_quotes (str): + str = re.sub(r'"',r'', str, flags=re.MULTILINE) + return str + +#-------------------------------------- +# Test functions +#-------------------------------------- test('readFloat', exit_code(1), compile_and_run, ['']) test('enumDouble', normal, compile_and_run, ['']) test('enumRatio', normal, compile_and_run, ['']) +test('enumNumeric', normal, compile_and_run, ['']) test('tempfiles', normal, compile_and_run, ['']) test('fixed', normal, compile_and_run, ['']) test('quotOverflow', normal, compile_and_run, ['']) @@ -121,7 +135,9 @@ test('T2528', normal, compile_and_run, ['']) # Seems to be a known problem, e.g. # http://mingw-users.1079350.n2.nabble.com/Bug-re-Unicode-on-the-console-td3121717.html # May 2014: seems to work on msys2 -test('T4006', normal, compile_and_run, ['']) +# May 2018: The behavior of printf seems very implementation dependent. +# so let's normalise the output. +test('T4006', normalise_fun(normalise_quotes), compile_and_run, ['']) test('T5943', normal, compile_and_run, ['']) test('T5962', normal, compile_and_run, ['']) @@ -201,9 +217,11 @@ test('T9848', test('T10149', normal, compile_and_run, ['']) test('T11334a', normal, compile_and_run, ['']) test('T11555', normal, compile_and_run, ['']) +test('T12494', normal, compile_and_run, ['']) test('T12852', when(opsys('mingw32'), skip), compile_and_run, ['']) test('lazySTexamples', normal, compile_and_run, ['']) test('T11760', normal, compile_and_run, ['-threaded -with-rtsopts=-N2']) +test('T12874', normal, compile_and_run, ['']) test('T13191', [ stats_num_field('bytes allocated', [ (wordsize(64), 185943272, 5) ]) @@ -214,3 +232,13 @@ test('T13191', ['-O']) test('T13525', when(opsys('mingw32'), skip), compile_and_run, ['']) test('T13097', normal, compile_and_run, ['']) +test('functorOperators', normal, compile_and_run, ['']) +test('T3474', + [stats_num_field('max_bytes_used', [ (wordsize(64), 44504, 5) ]), + only_ways(['normal'])], + compile_and_run, ['-O']) +test('T14425', normal, compile_and_run, ['']) +test('T10412', normal, compile_and_run, ['']) +test('T13896', normal, compile_and_run, ['']) +test('T13167', normal, compile_and_run, ['']) +test('T15349', [exit_code(1)], compile_and_run, ['']) diff --git a/libraries/base/tests/enumNumeric.hs b/libraries/base/tests/enumNumeric.hs new file mode 100644 index 0000000000..36c4846d1f --- /dev/null +++ b/libraries/base/tests/enumNumeric.hs @@ -0,0 +1,7 @@ +main :: IO () +main = do + print $ map (/2) ([5..6] :: [Double]) + print $ ([9007199254740990..9007199254740991] :: [Double]) + print $ map (/2) ([9007199254740990..9007199254740991] :: [Double]) + print $ ([9007199254740989..9007199254740990] :: [Double]) + print $ map (/2) ([9007199254740989..9007199254740990] :: [Double]) diff --git a/libraries/base/tests/enumNumeric.stdout b/libraries/base/tests/enumNumeric.stdout new file mode 100644 index 0000000000..3d7eb74f91 --- /dev/null +++ b/libraries/base/tests/enumNumeric.stdout @@ -0,0 +1,5 @@ +[2.5,3.0] +[9.00719925474099e15,9.007199254740991e15,9.007199254740992e15,9.007199254740992e15] +[4.503599627370495e15,4.5035996273704955e15,4.503599627370496e15,4.503599627370496e15] +[9.007199254740989e15,9.00719925474099e15] +[4.5035996273704945e15,4.503599627370495e15] diff --git a/libraries/base/tests/functorOperators.hs b/libraries/base/tests/functorOperators.hs new file mode 100644 index 0000000000..aea5dfda80 --- /dev/null +++ b/libraries/base/tests/functorOperators.hs @@ -0,0 +1,38 @@ +-- Test infix operators of 'Functor' + +import Data.Functor + +main :: IO () +main = do + testInfixFmap + testFlippedInfixFmap + testInfixReplace + testFlippedInfixReplace + +testInfixFmap :: IO () +testInfixFmap = do + print "<$> tests:" + print $ (+ 1) <$> Just 2 -- => Just 3 + print (((+ 1) <$> Right 3) :: Either Int Int) -- => Right 4 + print $ (+ 1) <$> [1, 2, 3] -- => [2,3,4] + +testFlippedInfixFmap :: IO () +testFlippedInfixFmap = do + print "<&> tests:" + print $ Just 2 <&> (+ 1) -- => Just 3 + print ((Right 3 <&> (+ 1)) :: Either Int Int) -- => Right 4 + print $ [1, 2, 3] <&> (+ 1) -- => [2,3,4] + +testInfixReplace :: IO () +testInfixReplace = do + print "<$ tests:" + print $ 42 <$ Just 1 -- => Just 42 + print ((42 <$ Right 1) :: Either Int Int) -- => Right 42 + print $ 42 <$ [1, 2, 3] -- => [42,42,42] + +testFlippedInfixReplace :: IO () +testFlippedInfixReplace = do + print "$> tests:" + print $ Just 1 $> 42 -- => Just 42 + print ((Right 1 $> 42) :: Either Int Int) -- => Right 42 + print $ [1, 2, 3] $> 42 -- => [42,42,42] diff --git a/libraries/base/tests/functorOperators.stdout b/libraries/base/tests/functorOperators.stdout new file mode 100644 index 0000000000..00a17ed3b8 --- /dev/null +++ b/libraries/base/tests/functorOperators.stdout @@ -0,0 +1,16 @@ +"<$> tests:" +Just 3 +Right 4 +[2,3,4] +"<&> tests:" +Just 3 +Right 4 +[2,3,4] +"<$ tests:" +Just 42 +Right 42 +[42,42,42] +"$> tests:" +Just 42 +Right 42 +[42,42,42] diff --git a/libraries/base/tests/memo001.hs b/libraries/base/tests/memo001.hs index 551bcd8cf4..bb43dd0cd4 100644 --- a/libraries/base/tests/memo001.hs +++ b/libraries/base/tests/memo001.hs @@ -12,7 +12,7 @@ testMemo = do -- mlength will memoize itself over each element of 'keys', returning -- the memoized result the second time around. Then we move onto -- keys2, and while we're doing this the first lot of memo table --- entries can be purged. Finally, we do a a large computation +-- entries can be purged. Finally, we do a large computation -- (length [1..10000]) to allow time for the memo table to be fully -- purged. diff --git a/libraries/base/tests/tempfiles.stdout-mingw32 b/libraries/base/tests/tempfiles.stdout-mingw32 new file mode 100644 index 0000000000..5d7b23db0e --- /dev/null +++ b/libraries/base/tests/tempfiles.stdout-mingw32 @@ -0,0 +1,12 @@ +.no_prefix.hs +True +False +no_suffix +True +False +one_suffix.hs +True +False +two_suffixes.hs.blah +True +False diff --git a/libraries/base/tests/unicode002.stdout b/libraries/base/tests/unicode002.stdout index 800cce71af..8a5febbb0a 100644 --- a/libraries/base/tests/unicode002.stdout +++ b/libraries/base/tests/unicode002.stdout @@ -1375,7 +1375,7 @@ Code C P S U L A D 1373 F T F F F F F 1374 F T F F F F F 1375 F T F F F F F -1376 F F F F F F F +1376 F T F F T T F 1377 F T F F T T F 1378 F T F F T T F 1379 F T F F T T F @@ -1415,7 +1415,7 @@ Code C P S U L A D 1413 F T F F T T F 1414 F T F F T T F 1415 F T F F T T F -1416 F F F F F F F +1416 F T F F T T F 1417 F T F F F F F 1418 F T F F F F F 1419 F F F F F F F @@ -1518,7 +1518,7 @@ Code C P S U L A D 1516 F F F F F F F 1517 F F F F F F F 1518 F F F F F F F -1519 F F F F F F F +1519 F T F F F T F 1520 F T F F F T F 1521 F T F F F T F 1522 F T F F F T F @@ -2044,9 +2044,9 @@ Code C P S U L A D 2042 F T F F F T F 2043 F F F F F F F 2044 F F F F F F F -2045 F F F F F F F -2046 F F F F F F F -2047 F F F F F F F +2045 F T F F F F F +2046 F T F F F F F +2047 F T F F F F F 2048 F T F F F T F 2049 F T F F F T F 2050 F T F F F T F @@ -2143,17 +2143,17 @@ Code C P S U L A D 2141 F F F F F F F 2142 F T F F F F F 2143 F F F F F F F -2144 F F F F F F F -2145 F F F F F F F -2146 F F F F F F F -2147 F F F F F F F -2148 F F F F F F F -2149 F F F F F F F -2150 F F F F F F F -2151 F F F F F F F -2152 F F F F F F F -2153 F F F F F F F -2154 F F F F F F F +2144 F T F F F T F +2145 F T F F F T F +2146 F T F F F T F +2147 F T F F F T F +2148 F T F F F T F +2149 F T F F F T F +2150 F T F F F T F +2151 F T F F F T F +2152 F T F F F T F +2153 F T F F F T F +2154 F T F F F T F 2155 F F F F F F F 2156 F F F F F F F 2157 F F F F F F F @@ -2226,17 +2226,17 @@ Code C P S U L A D 2224 F T F F F T F 2225 F T F F F T F 2226 F T F F F T F -2227 F F F F F F F -2228 F F F F F F F +2227 F T F F F T F +2228 F T F F F T F 2229 F F F F F F F -2230 F F F F F F F -2231 F F F F F F F -2232 F F F F F F F -2233 F F F F F F F -2234 F F F F F F F -2235 F F F F F F F -2236 F F F F F F F -2237 F F F F F F F +2230 F T F F F T F +2231 F T F F F T F +2232 F T F F F T F +2233 F T F F F T F +2234 F T F F F T F +2235 F T F F F T F +2236 F T F F F T F +2237 F T F F F T F 2238 F F F F F F F 2239 F F F F F F F 2240 F F F F F F F @@ -2258,23 +2258,23 @@ Code C P S U L A D 2256 F F F F F F F 2257 F F F F F F F 2258 F F F F F F F -2259 F F F F F F F -2260 F F F F F F F -2261 F F F F F F F -2262 F F F F F F F -2263 F F F F F F F -2264 F F F F F F F -2265 F F F F F F F -2266 F F F F F F F -2267 F F F F F F F -2268 F F F F F F F -2269 F F F F F F F -2270 F F F F F F F -2271 F F F F F F F -2272 F F F F F F F -2273 F F F F F F F +2259 F T F F F F F +2260 F T F F F F F +2261 F T F F F F F +2262 F T F F F F F +2263 F T F F F F F +2264 F T F F F F F +2265 F T F F F F F +2266 F T F F F F F +2267 F T F F F F F +2268 F T F F F F F +2269 F T F F F F F +2270 F T F F F F F +2271 F T F F F F F +2272 F T F F F F F +2273 F T F F F F F 2274 F F F F F F F -2275 F F F F F F F +2275 F T F F F F F 2276 F T F F F F F 2277 F T F F F F F 2278 F T F F F F F @@ -2555,9 +2555,9 @@ Code C P S U L A D 2553 F T F F F F F 2554 F T F F F F F 2555 F T F F F F F -2556 F F F F F F F -2557 F F F F F F F -2558 F F F F F F F +2556 F T F F F T F +2557 F T F F F F F +2558 F T F F F F F 2559 F F F F F F F 2560 F F F F F F F 2561 F T F F F F F @@ -2677,7 +2677,7 @@ Code C P S U L A D 2675 F T F F F T F 2676 F T F F F T F 2677 F T F F F F F -2678 F F F F F F F +2678 F T F F F F F 2679 F F F F F F F 2680 F F F F F F F 2681 F F F F F F F @@ -2808,13 +2808,13 @@ Code C P S U L A D 2806 F F F F F F F 2807 F F F F F F F 2808 F F F F F F F -2809 F F F F F F F -2810 F F F F F F F -2811 F F F F F F F -2812 F F F F F F F -2813 F F F F F F F -2814 F F F F F F F -2815 F F F F F F F +2809 F T F F F T F +2810 F T F F F F F +2811 F T F F F F F +2812 F T F F F F F +2813 F T F F F F F +2814 F T F F F F F +2815 F T F F F F F 2816 F F F F F F F 2817 F T F F F F F 2818 F T F F F F F @@ -3075,7 +3075,7 @@ Code C P S U L A D 3073 F T F F F F F 3074 F T F F F F F 3075 F T F F F F F -3076 F F F F F F F +3076 F T F F F F F 3077 F T F F F T F 3078 F T F F F T F 3079 F T F F F T F @@ -3161,7 +3161,7 @@ Code C P S U L A D 3159 F F F F F F F 3160 F T F F F T F 3161 F T F F F T F -3162 F F F F F F F +3162 F T F F F T F 3163 F F F F F F F 3164 F F F F F F F 3165 F F F F F F F @@ -3190,7 +3190,7 @@ Code C P S U L A D 3188 F F F F F F F 3189 F F F F F F F 3190 F F F F F F F -3191 F F F F F F F +3191 F T F F F F F 3192 F T F F F F F 3193 F T F F F F F 3194 F T F F F F F @@ -3199,11 +3199,11 @@ Code C P S U L A D 3197 F T F F F F F 3198 F T F F F F F 3199 F T F F F F F -3200 F F F F F F F +3200 F T F F F T F 3201 F T F F F F F 3202 F T F F F F F 3203 F T F F F F F -3204 F F F F F F F +3204 F T F F F F F 3205 F T F F F T F 3206 F T F F F T F 3207 F T F F F T F @@ -3327,7 +3327,7 @@ Code C P S U L A D 3325 F F F F F F F 3326 F F F F F F F 3327 F F F F F F F -3328 F F F F F F F +3328 F T F F F F F 3329 F T F F F F F 3330 F T F F F F F 3331 F T F F F F F @@ -3386,8 +3386,8 @@ Code C P S U L A D 3384 F T F F F T F 3385 F T F F F T F 3386 F T F F F T F -3387 F F F F F F F -3388 F F F F F F F +3387 F T F F F F F +3388 F T F F F F F 3389 F T F F F T F 3390 F T F F F F F 3391 F T F F F F F @@ -3406,23 +3406,23 @@ Code C P S U L A D 3404 F T F F F F F 3405 F T F F F F F 3406 F T F F F T F -3407 F F F F F F F +3407 F T F F F F F 3408 F F F F F F F 3409 F F F F F F F 3410 F F F F F F F 3411 F F F F F F F -3412 F F F F F F F -3413 F F F F F F F -3414 F F F F F F F +3412 F T F F F T F +3413 F T F F F T F +3414 F T F F F T F 3415 F T F F F F F -3416 F F F F F F F -3417 F F F F F F F -3418 F F F F F F F -3419 F F F F F F F -3420 F F F F F F F -3421 F F F F F F F -3422 F F F F F F F -3423 F F F F F F F +3416 F T F F F F F +3417 F T F F F F F +3418 F T F F F F F +3419 F T F F F F F +3420 F T F F F F F +3421 F T F F F F F +3422 F T F F F F F +3423 F T F F F T F 3424 F T F F F T F 3425 F T F F F T F 3426 F T F F F F F @@ -3445,9 +3445,9 @@ Code C P S U L A D 3443 F T F F F F F 3444 F T F F F F F 3445 F T F F F F F -3446 F F F F F F F -3447 F F F F F F F -3448 F F F F F F F +3446 F T F F F F F +3447 F T F F F F F +3448 F T F F F F F 3449 F T F F F F F 3450 F T F F F T F 3451 F T F F F T F @@ -3717,25 +3717,25 @@ Code C P S U L A D 3715 F F F F F F F 3716 F T F F F T F 3717 F F F F F F F -3718 F F F F F F F +3718 F T F F F T F 3719 F T F F F T F 3720 F T F F F T F -3721 F F F F F F F +3721 F T F F F T F 3722 F T F F F T F 3723 F F F F F F F -3724 F F F F F F F +3724 F T F F F T F 3725 F T F F F T F -3726 F F F F F F F -3727 F F F F F F F -3728 F F F F F F F -3729 F F F F F F F -3730 F F F F F F F -3731 F F F F F F F +3726 F T F F F T F +3727 F T F F F T F +3728 F T F F F T F +3729 F T F F F T F +3730 F T F F F T F +3731 F T F F F T F 3732 F T F F F T F 3733 F T F F F T F 3734 F T F F F T F 3735 F T F F F T F -3736 F F F F F F F +3736 F T F F F T F 3737 F T F F F T F 3738 F T F F F T F 3739 F T F F F T F @@ -3743,7 +3743,7 @@ Code C P S U L A D 3741 F T F F F T F 3742 F T F F F T F 3743 F T F F F T F -3744 F F F F F F F +3744 F T F F F T F 3745 F T F F F T F 3746 F T F F F T F 3747 F T F F F T F @@ -3751,11 +3751,11 @@ Code C P S U L A D 3749 F T F F F T F 3750 F F F F F F F 3751 F T F F F T F -3752 F F F F F F F -3753 F F F F F F F +3752 F T F F F T F +3753 F T F F F T F 3754 F T F F F T F 3755 F T F F F T F -3756 F F F F F F F +3756 F T F F F T F 3757 F T F F F T F 3758 F T F F F T F 3759 F T F F F T F @@ -3769,7 +3769,7 @@ Code C P S U L A D 3767 F T F F F F F 3768 F T F F F F F 3769 F T F F F F F -3770 F F F F F F F +3770 F T F F F F F 3771 F T F F F F F 3772 F T F F F F F 3773 F T F F F T F @@ -4303,54 +4303,54 @@ Code C P S U L A D 4301 F T F T F T F 4302 F F F F F F F 4303 F F F F F F F -4304 F T F F F T F -4305 F T F F F T F -4306 F T F F F T F -4307 F T F F F T F -4308 F T F F F T F -4309 F T F F F T F -4310 F T F F F T F -4311 F T F F F T F -4312 F T F F F T F -4313 F T F F F T F -4314 F T F F F T F -4315 F T F F F T F -4316 F T F F F T F -4317 F T F F F T F -4318 F T F F F T F -4319 F T F F F T F -4320 F T F F F T F -4321 F T F F F T F -4322 F T F F F T F -4323 F T F F F T F -4324 F T F F F T F -4325 F T F F F T F -4326 F T F F F T F -4327 F T F F F T F -4328 F T F F F T F -4329 F T F F F T F -4330 F T F F F T F -4331 F T F F F T F -4332 F T F F F T F -4333 F T F F F T F -4334 F T F F F T F -4335 F T F F F T F -4336 F T F F F T F -4337 F T F F F T F -4338 F T F F F T F -4339 F T F F F T F -4340 F T F F F T F -4341 F T F F F T F -4342 F T F F F T F -4343 F T F F F T F -4344 F T F F F T F -4345 F T F F F T F -4346 F T F F F T F +4304 F T F F T T F +4305 F T F F T T F +4306 F T F F T T F +4307 F T F F T T F +4308 F T F F T T F +4309 F T F F T T F +4310 F T F F T T F +4311 F T F F T T F +4312 F T F F T T F +4313 F T F F T T F +4314 F T F F T T F +4315 F T F F T T F +4316 F T F F T T F +4317 F T F F T T F +4318 F T F F T T F +4319 F T F F T T F +4320 F T F F T T F +4321 F T F F T T F +4322 F T F F T T F +4323 F T F F T T F +4324 F T F F T T F +4325 F T F F T T F +4326 F T F F T T F +4327 F T F F T T F +4328 F T F F T T F +4329 F T F F T T F +4330 F T F F T T F +4331 F T F F T T F +4332 F T F F T T F +4333 F T F F T T F +4334 F T F F T T F +4335 F T F F T T F +4336 F T F F T T F +4337 F T F F T T F +4338 F T F F T T F +4339 F T F F T T F +4340 F T F F T T F +4341 F T F F T T F +4342 F T F F T T F +4343 F T F F T T F +4344 F T F F T T F +4345 F T F F T T F +4346 F T F F T T F 4347 F T F F F F F 4348 F T F F F T F -4349 F T F F F T F -4350 F T F F F T F -4351 F T F F F T F +4349 F T F F T T F +4350 F T F F T T F +4351 F T F F T T F 4352 F T F F F T F 4353 F T F F F T F 4354 F T F F F T F @@ -5023,100 +5023,100 @@ Code C P S U L A D 5021 F F F F F F F 5022 F F F F F F F 5023 F F F F F F F -5024 F T F F F T F -5025 F T F F F T F -5026 F T F F F T F -5027 F T F F F T F -5028 F T F F F T F -5029 F T F F F T F -5030 F T F F F T F -5031 F T F F F T F -5032 F T F F F T F -5033 F T F F F T F -5034 F T F F F T F -5035 F T F F F T F -5036 F T F F F T F -5037 F T F F F T F -5038 F T F F F T F -5039 F T F F F T F -5040 F T F F F T F -5041 F T F F F T F -5042 F T F F F T F -5043 F T F F F T F -5044 F T F F F T F -5045 F T F F F T F -5046 F T F F F T F -5047 F T F F F T F -5048 F T F F F T F -5049 F T F F F T F -5050 F T F F F T F -5051 F T F F F T F -5052 F T F F F T F -5053 F T F F F T F -5054 F T F F F T F -5055 F T F F F T F -5056 F T F F F T F -5057 F T F F F T F -5058 F T F F F T F -5059 F T F F F T F -5060 F T F F F T F -5061 F T F F F T F -5062 F T F F F T F -5063 F T F F F T F -5064 F T F F F T F -5065 F T F F F T F -5066 F T F F F T F -5067 F T F F F T F -5068 F T F F F T F -5069 F T F F F T F -5070 F T F F F T F -5071 F T F F F T F -5072 F T F F F T F -5073 F T F F F T F -5074 F T F F F T F -5075 F T F F F T F -5076 F T F F F T F -5077 F T F F F T F -5078 F T F F F T F -5079 F T F F F T F -5080 F T F F F T F -5081 F T F F F T F -5082 F T F F F T F -5083 F T F F F T F -5084 F T F F F T F -5085 F T F F F T F -5086 F T F F F T F -5087 F T F F F T F -5088 F T F F F T F -5089 F T F F F T F -5090 F T F F F T F -5091 F T F F F T F -5092 F T F F F T F -5093 F T F F F T F -5094 F T F F F T F -5095 F T F F F T F -5096 F T F F F T F -5097 F T F F F T F -5098 F T F F F T F -5099 F T F F F T F -5100 F T F F F T F -5101 F T F F F T F -5102 F T F F F T F -5103 F T F F F T F -5104 F T F F F T F -5105 F T F F F T F -5106 F T F F F T F -5107 F T F F F T F -5108 F T F F F T F -5109 F F F F F F F +5024 F T F T F T F +5025 F T F T F T F +5026 F T F T F T F +5027 F T F T F T F +5028 F T F T F T F +5029 F T F T F T F +5030 F T F T F T F +5031 F T F T F T F +5032 F T F T F T F +5033 F T F T F T F +5034 F T F T F T F +5035 F T F T F T F +5036 F T F T F T F +5037 F T F T F T F +5038 F T F T F T F +5039 F T F T F T F +5040 F T F T F T F +5041 F T F T F T F +5042 F T F T F T F +5043 F T F T F T F +5044 F T F T F T F +5045 F T F T F T F +5046 F T F T F T F +5047 F T F T F T F +5048 F T F T F T F +5049 F T F T F T F +5050 F T F T F T F +5051 F T F T F T F +5052 F T F T F T F +5053 F T F T F T F +5054 F T F T F T F +5055 F T F T F T F +5056 F T F T F T F +5057 F T F T F T F +5058 F T F T F T F +5059 F T F T F T F +5060 F T F T F T F +5061 F T F T F T F +5062 F T F T F T F +5063 F T F T F T F +5064 F T F T F T F +5065 F T F T F T F +5066 F T F T F T F +5067 F T F T F T F +5068 F T F T F T F +5069 F T F T F T F +5070 F T F T F T F +5071 F T F T F T F +5072 F T F T F T F +5073 F T F T F T F +5074 F T F T F T F +5075 F T F T F T F +5076 F T F T F T F +5077 F T F T F T F +5078 F T F T F T F +5079 F T F T F T F +5080 F T F T F T F +5081 F T F T F T F +5082 F T F T F T F +5083 F T F T F T F +5084 F T F T F T F +5085 F T F T F T F +5086 F T F T F T F +5087 F T F T F T F +5088 F T F T F T F +5089 F T F T F T F +5090 F T F T F T F +5091 F T F T F T F +5092 F T F T F T F +5093 F T F T F T F +5094 F T F T F T F +5095 F T F T F T F +5096 F T F T F T F +5097 F T F T F T F +5098 F T F T F T F +5099 F T F T F T F +5100 F T F T F T F +5101 F T F T F T F +5102 F T F T F T F +5103 F T F T F T F +5104 F T F T F T F +5105 F T F T F T F +5106 F T F T F T F +5107 F T F T F T F +5108 F T F T F T F +5109 F T F T F T F 5110 F F F F F F F 5111 F F F F F F F -5112 F F F F F F F -5113 F F F F F F F -5114 F F F F F F F -5115 F F F F F F F -5116 F F F F F F F -5117 F F F F F F F +5112 F T F F T T F +5113 F T F F T T F +5114 F T F F T T F +5115 F T F F T T F +5116 F T F F T T F +5117 F T F F T T F 5118 F F F F F F F 5119 F F F F F F F 5120 F T F F F F F @@ -6263,7 +6263,7 @@ Code C P S U L A D 6261 F T F F F T F 6262 F T F F F T F 6263 F T F F F T F -6264 F F F F F F F +6264 F T F F F T F 6265 F F F F F F F 6266 F F F F F F F 6267 F F F F F F F @@ -6276,8 +6276,8 @@ Code C P S U L A D 6274 F T F F F T F 6275 F T F F F T F 6276 F T F F F T F -6277 F T F F F T F -6278 F T F F F T F +6277 F T F F F F F +6278 F T F F F F F 6279 F T F F F T F 6280 F T F F F T F 6281 F T F F F T F |