From edc500bbd9762491128a4f6f9588e5bf0c954310 Mon Sep 17 00:00:00 2001 From: ik1g19 <ik1g19@soton.ac.uk> Date: Fri, 8 Jan 2021 23:25:50 +0000 Subject: [PATCH] starting test work on challenge 4 --- cw/src/Challenges.hs | 2 +- cw/test/Spec.hs | 49 +++++++++++++++++++++++++++++++++++++------- 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/cw/src/Challenges.hs b/cw/src/Challenges.hs index a124d68..9864c3d 100644 --- a/cw/src/Challenges.hs +++ b/cw/src/Challenges.hs @@ -7,7 +7,7 @@ -- DO NOT MODIFY THE FOLLOWING LINES OF CODE module Challenges (WordSearchGrid,Placement,Posn,Orientation(..),solveWordSearch, createWordSearch, LamMacroExpr(..),LamExpr(..),prettyPrint, parseLamMacro, - cpsTransform,innerRedn1,outerRedn1,compareInnerOuter,unique,macroName,closedParse,expr) where + cpsTransform,innerRedn1,outerRedn1,compareInnerOuter) where -- Import standard library and parsing definitions from Hutton 2016, Chapter 13 -- We import System.Random - make sure that your installation has it installed - use stack ghci and stack ghc diff --git a/cw/test/Spec.hs b/cw/test/Spec.hs index e6c0ba8..bc2a1df 100644 --- a/cw/test/Spec.hs +++ b/cw/test/Spec.hs @@ -1,27 +1,40 @@ import Challenges import Data.List -main :: IO () -main = challenge2Test +-------------------------------------Examples----------------------------------- exGrid1'1 = [ "HAGNIRTSH" , "SACAGETAK", "GCSTACKEL","MGHKMILKI","EKNLETGCN","TNIRTLETE","IRAAHCLSR","MAMROSAGD","GIZKDDNRG" ] exWords1'1 = [ "HASKELL","STRING","STACK","MAIN","METHOD"] + exAns1'1 = [("HASKELL",Just((0,0),DownForward)),("STRING",Just((7,0),Back)),("STACK",Just((2,2),Forward)), ("MAIN", Just((2,7),Up )),("METHOD",Just((4,3),Down))] + exGrid1'2 = ["ROBREUMBR","AURPEPSAN","UNLALMSEE","YGAUNPYYP","NLMNBGENA","NBLEALEOR","ALRYPBBLG","NREPBEBEP","YGAYAROMR"] exWords1'2 = [ "BANANA", "ORANGE", "MELON", "RASPBERRY","APPLE","PLUM","GRAPE" ] + exAns1'2 = [("BANANA", Just((5,6),UpBack )),("ORANGE",Just((1,0),DownForward)),("MELON",Just((7,8),Up )), ("RASPBERRY",Just((8,0),DownBack)),("APPLE", Just((2,8),UpForward )),("PLUM", Just((5,1),DownBack)), ("GRAPE", Just((8,6),Up ))] -exGrid1'3 = ["TEST","ASBD","GDFI","FDGS"] -exWords1'3 = ["TEST"] -exAns1'3 = [("TEST",Just((0,0),Forward))] + +ex3'1 = LamDef [] (LamApp (LamAbs 1 (LamVar 1)) (LamAbs 1 (LamVar 1))) +ex3'2 = LamDef [] (LamAbs 1 (LamApp (LamVar 1) (LamAbs 1 (LamVar 1)))) +ex3'3 = LamDef [ ("F",LamAbs 1 (LamVar 1) ) ] (LamAbs 2 (LamApp (LamVar 2) (LamMacro "F"))) +ex3'4 = LamDef [ ("F",LamAbs 1 (LamVar 1) ) ] (LamAbs 2 (LamApp (LamAbs 1 (LamVar 1)) (LamVar 2))) +ex3'5 = LamDef [ ( "F",LamAbs 1 (LamApp ((LamVar 1) (LamVar 1)) ), ( "G",LamAbs 2 (LamVar 2) ) ] () + +ex3'1Ans = "(\\x1 -> x1) \\x1 -> x1" +ex3'2Ans = "\\x1 -> x1 \\x1 -> x1" +ex3'3Ans = "def F = \\x1 -> x1 in \\x2 -> x2 F" +ex3'4Ans = "def F = \\x1 -> x1 in \\x2 -> F x2" +ex3'5Ans = "def F = \\x1 -> x1 x1 in def G = \\x2 -> x2 in F G" +------------------------------Printing Functions-------------------------------- + printGrid :: WordSearchGrid -> IO () printGrid [] = return () @@ -39,6 +52,16 @@ pPrintList cs = do putStr "[" ppl $ xs +-------------------------------------Main--------------------------------------- + + +main :: IO () +main = do challenge1Test + challenge2Test + + +-----------------------------Challenge 1 Testing-------------------------------- + assert1 :: WordSearchGrid -> [ (String,Maybe Placement) ] -> [ (String,Maybe Placement) ] -> IO () assert1 grid result correct | result == correct = do putStrLn "Testing Grid:\n" @@ -60,8 +83,10 @@ challenge1Test = do putStrLn "Challenge 1 Start Test" assert1 exGrid1'1 (solveWordSearch exWords1'1 exGrid1'1) exAns1'1 assert1 exGrid1'2 (solveWordSearch exWords1'2 exGrid1'2) exAns1'2 putStrLn "=========================================" - putStrLn "Challenge 1 End Test" + putStrLn "Challenge 1 End Test\n" + +-----------------------------Challenge 2 Testing-------------------------------- assert2 :: WordSearchGrid -> [ (String,Maybe Placement) ] -> IO () @@ -86,4 +111,14 @@ challenge2Test = do putStrLn "Challenge 2 Start Test" (g1,sol1) <- createAndSolve ["WORD","EXAMPLE","SEARCH"] 0.3 assert2 g1 sol1 putStrLn "=========================================" - putStrLn "Challenge 2 End Test" \ No newline at end of file + putStrLn "Challenge 2 End Test" + + + +-----------------------------Challenge 3 Testing-------------------------------- + + +assert3 + + +-- challenge3Test \ No newline at end of file -- GitLab