shithub: MicroHs

Download patch

ref: b22f2ebf62fcb11dd9f6fc4a920c1719306efe97
parent: 3d6876dcebc1ea9a099850b818cc7c18b12b017e
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Tue Nov 21 19:09:39 EST 2023

More tests

--- /dev/null
+++ b/tests/Hello.hs
@@ -1,0 +1,5 @@
+module Hello(main) where
+import Prelude
+
+main :: IO ()
+main = putStrLn "hello, world\n"
--- /dev/null
+++ b/tests/Hello.ref
@@ -1,0 +1,2 @@
+hello, world
+
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -5,6 +5,7 @@
 alltest:	test errtest
 
 test:
+	$(MHS) Hello      && $(EVAL) > Hello.out      && diff Hello.ref Hello.out
 	$(MHS) IOTest && (echo q | $(EVAL) a bb ccc | sed 's/^.ms/1ms/' > IOTest.out) && diff IOTest.ref IOTest.out
 	$(MHS) StringTest && $(EVAL) > StringTest.out && diff StringTest.ref StringTest.out
 	$(MHS) ListTest   && $(EVAL) > ListTest.out   && diff ListTest.ref ListTest.out
@@ -31,6 +32,7 @@
 	$(MHS) Multi      && $(EVAL) > Multi.out      && diff Multi.ref Multi.out
 	$(MHS) Exists     && $(EVAL) > Exists.out     && diff Exists.ref Exists.out
 	$(MHS) TypeEq     && $(EVAL) > TypeEq.out     && diff TypeEq.ref TypeEq.out
+	$(MHS) Sieve      && $(EVAL) > Sieve.out      && diff Sieve.ref Sieve.out
 
 errtest:
 	sh errtester.sh < errmsg.test
--- /dev/null
+++ b/tests/Sieve.hs
@@ -1,0 +1,17 @@
+module Sieve(main) where
+import Prelude
+
+primes :: [Integer]
+primes =
+  sieve (from 2)
+  where
+    from n = n : from (n + 1)
+    sieve (p : x) = p : sieve (filter x)
+                    where
+                      filter (n : x) =
+                        if n `rem` p == 0 then filter x
+                        else n : filter x
+
+main :: IO ()
+main =
+  print $ take 100 primes
--- /dev/null
+++ b/tests/Sieve.ref
@@ -1,0 +1,1 @@
+[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541]
--