30 lines
901 B
Haskell
30 lines
901 B
Haskell
import System.IO
|
|
|
|
score :: Float -> Float -> Int
|
|
score x y -- implement here
|
|
|
|
main :: IO ()
|
|
main = do
|
|
input <- readFile "example-input"
|
|
expectedOutput <- readFile "example-output"
|
|
|
|
let results = map (\line ->
|
|
let [xStr, yStr] = words line
|
|
x = read xStr :: Float
|
|
y = read yStr :: Float
|
|
in score x y) (lines input)
|
|
|
|
let expectedResults = map read (lines expectedOutput) :: [Int]
|
|
|
|
let comparisons = zip results expectedResults
|
|
errors = filter (uncurry (/=)) comparisons
|
|
|
|
-- Print results
|
|
if null errors
|
|
then putStrLn "Success: All calculated scores match the expected results."
|
|
else mapM_ (\(calculated, expected) ->
|
|
putStrLn $ "Error: Calculated " ++ show calculated ++ " but expected " ++ show expected)
|
|
errors
|
|
|
|
-- writeFile "example-output" (unlines results)
|