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