This contains documentation and examples on how to use Buck 2 to build OCaml projects.
1(*
2 SPDX-FileCopyrightText: Copyright 2023 Roland Csaszar
3 SPDX-License-Identifier: MIT
4
5 Project: OCaml-Buck-2-Examples, basic_example
6 File: basic_example.ml
7 Date: 08.Oct.2023
8
9 =============================================================================
10
11 Tests of the library `basic_example` using Alcotest.
12*)
13
14open Basic_example.Fibonacci
15
16let () =
17 let open Alcotest in
18 let open QCheck_alcotest in
19 run
20 "Fibonacci Tests"
21 [ ( "Naive Fibonacci tests"
22 , [ test_case "F0 is 0" `Quick (fun () -> (check int) "same ints" 0 (fibonacci 0))
23 ; test_case "F1 is 1" `Quick (fun () -> (check int) "same ints" 1 (fibonacci 1))
24 ; test_case "F2 is 1" `Quick (fun () -> (check int) "same ints" 1 (fibonacci 2))
25 ; test_case "F3 is 2" `Quick (fun () -> (check int) "same ints" 2 (fibonacci 3))
26 ; test_case "F4 is 3" `Quick (fun () -> (check int) "same ints" 3 (fibonacci 4))
27 ; test_case "F5 is 5" `Quick (fun () -> (check int) "same ints" 5 (fibonacci 5))
28 ; test_case "F6 is 8" `Quick (fun () -> (check int) "same ints" 8 (fibonacci 6))
29 ; test_case "F7 is 13" `Quick (fun () -> (check int) "same ints" 13 (fibonacci 7))
30 ; test_case "F8 is 21" `Quick (fun () -> (check int) "same ints" 21 (fibonacci 8))
31 ; test_case "F9 is 34" `Quick (fun () -> (check int) "same ints" 34 (fibonacci 9))
32 ; test_case "F10 is 55" `Quick (fun () ->
33 (check int) "same ints" 55 (fibonacci 10))
34 ] )
35 ; ( "Compare naive and tail recursive"
36 , [ to_alcotest
37 ~colors:true
38 ~verbose:true
39 ~long:true
40 QCheck2.(
41 Test.make
42 ~name:"Using Quickcheck"
43 ~count:100
44 ~print:Print.(int)
45 Gen.(int_range 0 40)
46 (fun n -> fibonacci n = fibonacci_tailrec n))
47 ] )
48 ]