aboutsummaryrefslogtreecommitdiff
path: root/tests/expression_repr.ml
blob: 9ad321a4ce6484f69f088e0121d5d77cb7be4b5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
open OUnit2
module Expression = ImportExpression.T
module Path = ImportDataTypes.Path
module Expr = Expression_builder
module M = Expr.Make (ImportExpression.Repr.E)

let eval = M.eval ~path_repr:ImportCSV.Csv.column_to_string
let test_expr expr = ImportExpression.Repr.E.observe ~top:true expr

let printer = function
  | Ok e -> ImportConf.print_path_expression e
  | Error msg -> msg

let print_literal =
  "print_litteral" >:: fun _ ->
  let result = test_expr @@ eval (Literal "Content") in
  assert_equal ~printer:Fun.id "'Content'" result

let print_quoted_literal =
  "print_quoted_literal" >:: fun _ ->
  let result = test_expr @@ eval Expression_builder.literal_quoted in
  assert_equal ~printer:Fun.id "'\\''" result

let print_dquoted_literal =
  "print_dquoted_literal" >:: fun _ ->
  let result = test_expr @@ eval (Literal "\"") in
  assert_equal ~printer:Fun.id "'\"'" result

let print_numeric =
  "print_numeric" >:: fun _ ->
  let result = test_expr @@ eval (Literal "123") in
  assert_equal ~printer:Fun.id "123" result

let test_suit =
  [ print_literal; print_quoted_literal; print_dquoted_literal; print_numeric ]

let tests = "expression_repr" >::: test_suit