diff options
Diffstat (limited to 'bootstrap/unit_test/SourceConstructionTest.hs')
-rw-r--r-- | bootstrap/unit_test/SourceConstructionTest.hs | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/bootstrap/unit_test/SourceConstructionTest.hs b/bootstrap/unit_test/SourceConstructionTest.hs index a3fdf68..9429975 100644 --- a/bootstrap/unit_test/SourceConstructionTest.hs +++ b/bootstrap/unit_test/SourceConstructionTest.hs @@ -3,9 +3,38 @@ module SourceConstructionTest ) where -import Hedge ( Test - , describe +import BuildModel ( RawSource(..) + , Source(..) + , processRawSource + ) +import Hedge ( Result + , Test + , assertThat + , givenInput + , then' + , whenTransformed ) test :: IO (Test ()) -test = return $ describe "something" [] +test = return $ givenInput + "a program" + exampleProgram + [ whenTransformed "processed to a source" + processRawSource + [then' "it is a Program" checkIsProgram] + ] + +exampleProgram :: RawSource +exampleProgram = RawSource + "some/file/somewhere.f90" + $ unlines + [ "program some_program" + , " implicit none" + , " print *, \"Hello, World!\"" + , "end program" + ] + +checkIsProgram :: Source -> Result +checkIsProgram s = assertThat $ case s of + Program -> True + _ -> False |