shithub: MicroHs

Download patch

ref: 814d813eaf5a5f10c9df88e6336166c210632459
parent: 5b60ee45befe166285c4d1237d677ae96640edfb
author: Lennart Augustsson <lennart@augustsson.net>
date: Fri Sep 20 07:41:36 EDT 2024

More tests.

--- a/tests/Arith.hs
+++ b/tests/Arith.hs
@@ -1,8 +1,12 @@
 module Arith(module Arith) where
 import Prelude
 
+vals :: [Int]
+vals = [-5, -2, -1, 0, 1, 2, 5]
+
 main :: IO ()
 main = do
-  putStrLn $ show [ op x y | x <- [0 - 5,0 - 2,0 - 1,0,1,2,5]::[Int], y <- [0 - 5,0 - 2,0 - 1,0,1,2,5::Int], op <- [(+),( - ),(*)] ]
-  putStrLn $ show [ op x y | x <- [0 - 5,0 - 2,0 - 1,0,1,2,5]::[Int], y <- [0 - 5,0 - 2,0 - 1,1,2,5::Int], op <- [quot, rem] ]
-  putStrLn $ show [ op x y | x <- [0 - 5,0 - 2,0 - 1,0,1,2,5]::[Int], y <- [0 - 5,0 - 2,0 - 1,0,1,2,5::Int], op <- [(==),(/=),(<),(<=),(>),(>=)] ]
+  putStrLn $ show [ op x y | x <- vals, y <- vals, op <- [(+),( - ),(*)] ]
+  putStrLn $ show [ op x y | x <- vals, y <- vals, y /= 0, op <- [quot, rem] ]
+  putStrLn $ show [ op x y | x <- vals, y <- vals, op <- [(==),(/=),(<),(<=),(>),(>=)] ]
+  putStrLn $ show [ op x y | x <- vals, y <- vals, let op = compare ]
--- a/tests/Arith.ref
+++ b/tests/Arith.ref
@@ -1,3 +1,4 @@
 [-10,0,25,-7,-3,10,-6,-4,5,-5,-5,0,-4,-6,-5,-3,-7,-10,0,-10,-25,-7,3,10,-4,0,4,-3,-1,2,-2,-2,0,-1,-3,-2,0,-4,-4,3,-7,-10,-6,4,5,-3,1,2,-2,0,1,-1,-1,0,0,-2,-1,1,-3,-2,4,-6,-5,-5,5,0,-2,2,0,-1,1,0,0,0,0,1,-1,0,2,-2,0,5,-5,0,-4,6,-5,-1,3,-2,0,2,-1,1,1,0,2,0,1,3,-1,2,6,-4,5,-3,7,-10,0,4,-4,1,3,-2,2,2,0,3,1,2,4,0,4,7,-3,10,0,10,-25,3,7,-10,4,6,-5,5,5,0,6,4,5,7,3,10,10,0,25]
 [1,0,2,-1,5,0,-5,0,-2,-1,-1,0,0,-2,1,0,2,0,-2,0,-1,0,0,-2,0,-1,0,-1,1,0,-1,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,-1,0,1,0,0,1,0,1,0,2,-1,0,-2,0,2,0,1,0,0,2,-1,0,-2,1,-5,0,5,0,2,1,1,0]
 [True,False,False,True,False,True,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,False,False,True,True,True,False,False,True,False,True,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,False,False,True,True,False,True,False,False,True,True,True,False,False,True,False,True,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,True,False,False,True,False,True,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,True,False,False,True,False,True,False,True,True,True,False,False,False,True,True,True,False,False,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,True,False,False,True,False,True,False,True,True,True,False,False,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,True,False,False,True,False,True]
+[EQ,LT,LT,LT,LT,LT,LT,GT,EQ,LT,LT,LT,LT,LT,GT,GT,EQ,LT,LT,LT,LT,GT,GT,GT,EQ,LT,LT,LT,GT,GT,GT,GT,EQ,LT,LT,GT,GT,GT,GT,GT,EQ,LT,GT,GT,GT,GT,GT,GT,EQ]
--- a/tests/Word.hs
+++ b/tests/Word.hs
@@ -2,10 +2,17 @@
 import Prelude
 import Data.Word
 
+vals :: [Word16]
+vals = [0xfff0, 0xfffe, 0xffff, 0, 1, 2, 5]
+
+maxw :: Word
+maxw = if _wordSize == 32 then 0x7fff::Word else 0x7fffffff::Word
+
 main :: IO ()
 main = do
   putStrLn $ show (1000::Word)
   putStrLn $ show $ maxw*maxw > 0
-
-maxw :: Word
-maxw = if _wordSize == 32 then 0x7fff::Word else 0x7fffffff::Word
+  putStrLn $ show [ op x y | x <- vals, y <- vals, op <- [(+),( - ),(*)] ]
+  putStrLn $ show [ op x y | x <- vals, y <- vals, y /= 0, op <- [quot, rem] ]
+  putStrLn $ show [ op x y | x <- vals, y <- vals, op <- [(==),(/=),(<),(<=),(>),(>=)] ]
+  putStrLn $ show [ op x y | x <- vals, y <- vals, let op = compare ]
--- a/tests/Word.ref
+++ b/tests/Word.ref
@@ -1,2 +1,6 @@
 1000
 True
+[65504,0,256,65518,65522,32,65519,65521,16,65520,65520,0,65521,65519,65520,65522,65518,65504,65525,65515,65456,65518,14,32,65532,0,4,65533,65535,2,65534,65534,0,65535,65533,65534,0,65532,65532,3,65529,65526,65519,15,16,65533,1,2,65534,0,1,65535,65535,0,0,65534,65535,1,65533,65534,4,65530,65531,65520,16,0,65534,2,0,65535,1,0,0,0,0,1,65535,0,2,65534,0,5,65531,0,65521,17,65520,65535,3,65534,0,2,65535,1,1,0,2,0,1,3,65535,2,6,65532,5,65522,18,65504,0,4,65532,1,3,65534,2,2,0,3,1,2,4,0,4,7,65533,10,65525,21,65456,3,7,65526,4,6,65531,5,5,0,6,4,5,7,3,10,10,0,25]
+[1,0,0,65520,0,65520,65520,0,32760,0,13104,0,1,14,1,0,0,65534,65534,0,32767,0,13106,4,1,15,1,1,1,0,65535,0,32767,1,13107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,1,0,1,0,2,0,2,0,2,2,0,1,0,0,2,0,5,0,5,0,5,5,0,2,1,1,0]
+[True,False,False,True,False,True,False,True,True,True,False,False,False,True,True,True,False,False,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,True,False,False,True,False,True,False,True,True,True,False,False,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,True,False,False,True,False,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,True,False,False,True,False,True,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,False,False,True,True,True,False,False,True,False,True,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,False,False,True,True,False,True,False,False,True,True,True,False,False,True,False,True,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,True,True,False,False,False,True,False,False,True,True,False,True,False,False,True,True,False,True,False,False,True,True,True,False,False,True,False,True]
+[EQ,LT,LT,GT,GT,GT,GT,GT,EQ,LT,GT,GT,GT,GT,GT,GT,EQ,GT,GT,GT,GT,LT,LT,LT,EQ,LT,LT,LT,LT,LT,LT,GT,EQ,LT,LT,LT,LT,LT,GT,GT,EQ,LT,LT,LT,LT,GT,GT,GT,EQ]
--