aboutsummaryrefslogtreecommitdiff
path: root/tests/expression_repr.ml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/expression_repr.ml')
-rw-r--r--tests/expression_repr.ml37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/expression_repr.ml b/tests/expression_repr.ml
new file mode 100644
index 0000000..9ad321a
--- /dev/null
+++ b/tests/expression_repr.ml
@@ -0,0 +1,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