aboutsummaryrefslogtreecommitdiff
path: root/motus/test/motus_test.ml
blob: 717db2170b09576fb08c8c937b4837951eb7b835 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
open StdLabels
open OUnit2
open Motus_lib

let validiy_tests =
  "validity test suite"
  >::: [ ( "Sequence of elements"
         >:: fun _ ->
         assert_equal
           243
           ( Validity.sequence 5
           |> List.of_seq
           |> List.sort_uniq ~cmp:Stdlib.compare
           |> List.length ) )
       ; ( "Index of element"
         >:: fun _ ->
         assert_equal 0 Validity.(index_of_result [| Wellplaced; Wellplaced |])
         )
       ; ( "Bijection for all the elements"
         >:: fun _ ->
         (* Create an array of 243 elements*)
         let arr = Array.make 243 false in
         let seq = Validity.sequence 5 in
         (* Populate the array *)
         Seq.iter
           (fun v ->
             let idx = Validity.index_of_result v in
             Array.set arr idx true )
           seq;

         (* Now count the elements set to true *)
         let count =
           Array.fold_left arr ~init:0 ~f:(fun acc value ->
               if value then acc + 1 else acc )
         in

         assert_equal 243 count )
       ]


let _ =
  run_test_tt_main ("main tests" >::: [ validiy_tests; Entropy_tests.tests ])