Skip to content

Commit e2a48a5

Browse files
committed
test: Add demo3/demo exercise with a nonempty prepare.ml
1 parent c5ac552 commit e2a48a5

File tree

8 files changed

+64
-1
lines changed

8 files changed

+64
-1
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# id: `demo3/demo`
2+
3+
This example demonstrates the ability to put exercises in sub-directories.
4+
5+
## Questions
6+
7+
Define four functions matching the usual arithmetic operations:
8+
9+
```
10+
plus : int -> int -> int
11+
times : int -> int -> int
12+
minus : int -> int -> int
13+
divide : int -> int -> int
14+
```
15+
16+
## Bonus question
17+
18+
The hidden prelude (so-called `prepare.ml`) contains a predicate
19+
20+
`mystere_int : int -> bool`
21+
22+
so could you find for which `n` we get `mystere_int n = true` ?
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
{"learnocaml_version":"1","kind":"exercise","stars":0,
2+
"title":"Demo exercise (in a sub-directory)"}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
(* Some code is loaded in the toplevel before your code. *)
2+
let greetings = "Hello world!"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
let mystere_int n = n = 12345
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
let plus = (+)
2+
let times = ( * )
3+
let minus = ( - )
4+
let divide = ( / )
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
let plus x y = x + y ;;
3+
4+
let minus x y = y - x ;;
5+
6+
let times x y = x *
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
open Test_lib
2+
open Report
3+
4+
let () =
5+
set_result @@
6+
ast_sanity_check code_ast @@ fun () ->
7+
[ Section
8+
([ Text "Function:" ; Code "plus" ],
9+
test_function_2_against_solution
10+
[%ty : int -> int -> int ] "plus"
11+
[ (1, 1) ; (2, 2) ; (10, -10) ]) ;
12+
Section
13+
([ Text "Function:" ; Code "minus" ],
14+
test_function_2_against_solution
15+
[%ty : int -> int -> int ] "minus"
16+
[ (1, 1) ; (4, -2) ; (0, 10) ]) ;
17+
Section
18+
([ Text "Function:" ; Code "times" ],
19+
test_function_2_against_solution
20+
[%ty : int -> int -> int ] "times"
21+
[ (1, 3) ; (2, 4) ; (3, 0) ]) ;
22+
Section
23+
([ Text "Function:" ; Code "divide" ],
24+
test_function_2_against_solution
25+
[%ty : int -> int -> int ] "divide"
26+
[ (12, 4) ; (12, 5) ; (3, 0) ]) ]

demo-repository/exercises/index.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
"groups":
33
{ "demo":
44
{ "title": "Demo exercise pack",
5-
"exercises": [ "demo", "demo2" ] } } }
5+
"exercises": [ "demo", "demo2", "demo3/demo" ] } } }

0 commit comments

Comments
 (0)