29 lines
1015 B
Haskell
29 lines
1015 B
Haskell
import System.IO
|
|
|
|
responseFor :: String -> String
|
|
responseFor prompt -- implement here
|
|
|
|
main :: IO ()
|
|
main = do
|
|
inputContent <- readFile "example-input"
|
|
outputContent <- readFile "example-output"
|
|
|
|
let prompts = lines inputContent
|
|
expectedResults = lines outputContent
|
|
actualResults = map responseFor prompts
|
|
results = zip3 prompts expectedResults actualResults
|
|
|
|
let incorrectResults = filter (\(_, expected, actual) -> expected /= actual) results
|
|
|
|
if null incorrectResults
|
|
then putStrLn "All tests passed successfully!"
|
|
else do
|
|
putStrLn "The following tests failed:"
|
|
mapM_ (\(prompt, expected, actual) ->
|
|
putStrLn $ "Prompt: " ++ show prompt ++
|
|
"\nExpected: " ++ show expected ++
|
|
"\nActual: " ++ show actual ++ "\n") incorrectResults
|
|
|
|
-- let results = map (show . responseFor) (lines inputContent)
|
|
-- writeFile "example-output" (unlines results)
|
|
|