diff --git a/tests/test_negative_int/int_exo/correct.ml b/tests/test_negative_int/int_exo/correct.ml new file mode 100644 index 000000000..d1b742e95 --- /dev/null +++ b/tests/test_negative_int/int_exo/correct.ml @@ -0,0 +1 @@ +let aff = fun a b x -> a * x + b diff --git a/tests/test_negative_int/int_exo/correct.ml.json b/tests/test_negative_int/int_exo/correct.ml.json new file mode 100644 index 000000000..24f6d418a --- /dev/null +++ b/tests/test_negative_int/int_exo/correct.ml.json @@ -0,0 +1,78 @@ +[ + { + "section": [ + { + "text": "Function:" + }, + { + "text": "aff", + "display": "code" + } + ], + "contents": [ + { + "message": [ + { + "text": "Found" + }, + { + "text": "aff", + "display": "code" + }, + { + "text": "with compatible type." + } + ], + "result": "informative" + }, + { + "message": [ + { + "text": "Computing" + }, + { + "text": "aff 2 (-1) 5", + "display": "code" + } + ], + "result": "informative" + }, + { + "message": [ + { + "text": "Correct value" + }, + { + "text": "9", + "display": "code" + } + ], + "result": 1 + }, + { + "message": [ + { + "text": "Computing" + }, + { + "text": "aff (-2) 1 5", + "display": "code" + } + ], + "result": "informative" + }, + { + "message": [ + { + "text": "Correct value" + }, + { + "text": "(-9)", + "display": "code" + } + ], + "result": 1 + } + ] + } +] diff --git a/tests/test_negative_int/repo/exercises/index.json b/tests/test_negative_int/repo/exercises/index.json new file mode 100644 index 000000000..cb91e8ba2 --- /dev/null +++ b/tests/test_negative_int/repo/exercises/index.json @@ -0,0 +1,5 @@ +{ "learnocaml_version": "1", + "groups": + { "demo": + { "title": "Test negative_int", + "exercises": [ "int_exo" ] } } } diff --git a/tests/test_negative_int/repo/exercises/int_exo/descr.md b/tests/test_negative_int/repo/exercises/int_exo/descr.md new file mode 100644 index 000000000..cdcdb3e1f --- /dev/null +++ b/tests/test_negative_int/repo/exercises/int_exo/descr.md @@ -0,0 +1,3 @@ +# Test negative_int + +This exercise is just a regression test with pretty-printing negative `int`s. diff --git a/tests/test_negative_int/repo/exercises/int_exo/meta.json b/tests/test_negative_int/repo/exercises/int_exo/meta.json new file mode 100644 index 000000000..3ed130575 --- /dev/null +++ b/tests/test_negative_int/repo/exercises/int_exo/meta.json @@ -0,0 +1,2 @@ +{"learnocaml_version":"1","kind":"exercise","stars":0, + "title":"Test negative_int"} diff --git a/tests/test_negative_int/repo/exercises/int_exo/prelude.ml b/tests/test_negative_int/repo/exercises/int_exo/prelude.ml new file mode 100644 index 000000000..e69de29bb diff --git a/tests/test_negative_int/repo/exercises/int_exo/prepare.ml b/tests/test_negative_int/repo/exercises/int_exo/prepare.ml new file mode 100644 index 000000000..e69de29bb diff --git a/tests/test_negative_int/repo/exercises/int_exo/solution.ml b/tests/test_negative_int/repo/exercises/int_exo/solution.ml new file mode 100644 index 000000000..ce9649c8b --- /dev/null +++ b/tests/test_negative_int/repo/exercises/int_exo/solution.ml @@ -0,0 +1 @@ +let aff a b x = a * x + b diff --git a/tests/test_negative_int/repo/exercises/int_exo/template.ml b/tests/test_negative_int/repo/exercises/int_exo/template.ml new file mode 100644 index 000000000..e69de29bb diff --git a/tests/test_negative_int/repo/exercises/int_exo/test.ml b/tests/test_negative_int/repo/exercises/int_exo/test.ml new file mode 100644 index 000000000..131a71309 --- /dev/null +++ b/tests/test_negative_int/repo/exercises/int_exo/test.ml @@ -0,0 +1,13 @@ +open Test_lib +open Report + +let () = + set_result @@ + ast_sanity_check code_ast @@ fun () -> + [ Section + ([ Text "Function:" ; Code "aff" ], + let prot = [%funty: int -> int -> int -> int] in + test_function_against_solution ~gen:(0) prot "aff" + [2 @: (-1) @:!! 5; + (-2) @: 1 @:!! 5]) + ]