summaryrefslogtreecommitdiff
path: root/libraries/base/tests
diff options
context:
space:
mode:
authorKavon Farvardin <kavon@farvard.in>2018-09-23 15:29:37 -0500
committerKavon Farvardin <kavon@farvard.in>2018-09-23 15:29:37 -0500
commit84c2ad99582391005b5e873198b15e9e9eb4f78d (patch)
treecaa8c2f2ec7e97fbb4977263c6817c9af5025cf4 /libraries/base/tests
parent8ddb47cfcf5776e9a3c55fd37947c8a95e00fa12 (diff)
parente68b439fe5de61b9a2ca51af472185c62ccb8b46 (diff)
downloadhaskell-wip/T13904.tar.gz
update to current master againwip/T13904
Diffstat (limited to 'libraries/base/tests')
-rw-r--r--libraries/base/tests/CatEntail.hs4
-rw-r--r--libraries/base/tests/IO/T2122.hs4
-rw-r--r--libraries/base/tests/IO/all.T9
-rw-r--r--libraries/base/tests/Numeric/all.T3
-rw-r--r--libraries/base/tests/Numeric/num008.stdout42
-rw-r--r--libraries/base/tests/Numeric/sqrt.hs3
-rw-r--r--libraries/base/tests/Numeric/sqrt.stdout2
-rw-r--r--libraries/base/tests/System/all.T2
-rw-r--r--libraries/base/tests/T10412.hs7
-rw-r--r--libraries/base/tests/T10412.stdout3
-rw-r--r--libraries/base/tests/T12494.hs36
-rw-r--r--libraries/base/tests/T12494.stdout8
-rw-r--r--libraries/base/tests/T12874.hs9
-rw-r--r--libraries/base/tests/T12874.stdout1
-rw-r--r--libraries/base/tests/T13167.hs29
-rw-r--r--libraries/base/tests/T13167.stdout1
-rw-r--r--libraries/base/tests/T13896.hs75
-rw-r--r--libraries/base/tests/T14425.hs5
-rw-r--r--libraries/base/tests/T14425.stdout2
-rw-r--r--libraries/base/tests/T15349.hs17
-rw-r--r--libraries/base/tests/T15349.stderr1
-rw-r--r--libraries/base/tests/T3474.hs5
-rw-r--r--libraries/base/tests/T3474.stdout1
-rw-r--r--libraries/base/tests/T7773.hs2
-rw-r--r--libraries/base/tests/all.T30
-rw-r--r--libraries/base/tests/enumNumeric.hs7
-rw-r--r--libraries/base/tests/enumNumeric.stdout5
-rw-r--r--libraries/base/tests/functorOperators.hs38
-rw-r--r--libraries/base/tests/functorOperators.stdout16
-rw-r--r--libraries/base/tests/memo001.hs2
-rw-r--r--libraries/base/tests/tempfiles.stdout-mingw3212
-rw-r--r--libraries/base/tests/unicode002.stdout466
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