This contains documentation and examples on how to use Buck 2 to build OCaml projects.
at main 48 lines 1.9 kB view raw
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 ]