test_parses_simple_application :: Assertion
test_parses_simple_application =
  let program = "cube(1, 1, i)\n\n"
      cube    = Application
        (LocalVariable "cube")
        [ ApplicationSingleArg $ EVal $ Number 1
        , ApplicationSingleArg $ EVal $ Number 1
        , ApplicationSingleArg $ EVar $ LocalVariable "i"
        ]
        Nothing
      expected = Program [StExpression $ EApp cube]
  in  parserTest program expected
test_parses_simple_application :: Assertion
test_parses_simple_application =
  let program = "cube(1, 1, i)\n\n"
      cube    = Application
        (LocalVariable "cube")
        [ ApplicationSingleArg $ EVal $ Number 1
        , ApplicationSingleArg $ EVal $ Number 1
        , ApplicationSingleArg $ EVar $ LocalVariable "i"
        ]
        Nothing
      expected = Program [StExpression $ EApp cube]
  in  parserTest program expected
test_parses_simple_application =
  let program = "cube(1, 1, i)\n\n"
      cube    = Application
        (LocalVariable "cube")
        [ ApplicationSingleArg $ EVal $ Number 1
        , ApplicationSingleArg $ EVal $ Number 1
        , ApplicationSingleArg $ EVar $ LocalVariable "i"
        ]
        Nothing
      expected = Program [StExpression $ EApp cube]
  in  parserTest program expected