• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mbarbin / super-master-mind / 217

31 Jan 2026 12:24PM UTC coverage: 50.206% (-38.1%) from 88.313%
217

Pull #45

github

web-flow
Merge 235b668da into 3d48eb3d9
Pull Request #45: Dune pkg ci migration

610 of 1215 relevant lines covered (50.21%)

597078.5 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/test/expect/test__codes.ml
1
(*********************************************************************************)
2
(*  super-master-mind: A solver for the super master mind game                   *)
3
(*  SPDX-FileCopyrightText: 2021-2025 Mathieu Barbin <mathieu.barbin@gmail.com>  *)
4
(*  SPDX-License-Identifier: MIT                                                 *)
5
(*********************************************************************************)
6

7
let%expect_test "all" =
8
  print_dyn (Dyn.int (Codes.size Codes.all));
×
9
  [%expect {| 32768 |}];
×
10
  print_dyn (Dyn.float (Codes.bits Codes.all));
×
11
  [%expect {| 15. |}];
×
12
  print_dyn (Dyn.record [ "is_empty", Dyn.bool (Codes.is_empty Codes.all) ]);
×
13
  [%expect {| { is_empty = false } |}]
×
14
;;
15

16
let%expect_test "to_list" =
17
  let test t = print_dyn (Dyn.int (List.length (Codes.to_list t))) in
×
18
  test Codes.all;
19
  [%expect {| 32768 |}];
×
20
  let t =
21
    Codes.filter
22
      Codes.all
23
      ~candidate:(Code.create_exn [| Black; Blue; Brown; Green; Orange |])
×
24
      ~cue:(Cue.create_exn { white = 2; black = 3 })
×
25
  in
26
  test t;
×
27
  [%expect {| 10 |}];
×
28
  (* to_dyn *)
29
  print_dyn (Codes.to_dyn Codes.all);
×
30
  [%expect {| All |}];
×
31
  print_dyn (Codes.to_dyn t);
×
32
  [%expect
×
33
    {|
34
    Only
35
      [ [| Orange;  Blue;  Brown;  Green;  Black |]
36
      ; [| Black;  Orange;  Brown;  Green;  Blue |]
37
      ; [| Black;  Blue;  Orange;  Green;  Brown |]
38
      ; [| Black;  Blue;  Brown;  Orange;  Green |]
39
      ; [| Green;  Blue;  Brown;  Black;  Orange |]
40
      ; [| Black;  Green;  Brown;  Blue;  Orange |]
41
      ; [| Black;  Blue;  Green;  Brown;  Orange |]
42
      ; [| Brown;  Blue;  Black;  Green;  Orange |]
43
      ; [| Black;  Brown;  Blue;  Green;  Orange |]
44
      ; [| Blue;  Black;  Brown;  Green;  Orange |]
45
      ]
46
    |}];
×
47
  ()
48
;;
49

50
let%expect_test "filter" =
51
  List.iter (Lazy.force Cue.all) ~f:(fun cue ->
×
52
    let t =
×
53
      Codes.filter
54
        Codes.all
55
        ~candidate:(Code.create_exn [| Black; Blue; Brown; Green; Orange |])
×
56
        ~cue
57
    in
58
    print_dyn
×
59
      (Dyn.record [ "cue", Cue.to_dyn cue; "size_remaining", Dyn.int (Codes.size t) ]));
×
60
  [%expect
×
61
    {|
62
    { cue = { white = 0; black = 0 }; size_remaining = 243 }
63
    { cue = { white = 0; black = 1 }; size_remaining = 1280 }
64
    { cue = { white = 0; black = 2 }; size_remaining = 1250 }
65
    { cue = { white = 0; black = 3 }; size_remaining = 360 }
66
    { cue = { white = 0; black = 4 }; size_remaining = 35 }
67
    { cue = { white = 0; black = 5 }; size_remaining = 1 }
68
    { cue = { white = 1; black = 0 }; size_remaining = 2625 }
69
    { cue = { white = 1; black = 1 }; size_remaining = 4880 }
70
    { cue = { white = 1; black = 2 }; size_remaining = 1650 }
71
    { cue = { white = 1; black = 3 }; size_remaining = 120 }
72
    { cue = { white = 2; black = 0 }; size_remaining = 7070 }
73
    { cue = { white = 2; black = 1 }; size_remaining = 4680 }
74
    { cue = { white = 2; black = 2 }; size_remaining = 510 }
75
    { cue = { white = 2; black = 3 }; size_remaining = 10 }
76
    { cue = { white = 3; black = 0 }; size_remaining = 5610 }
77
    { cue = { white = 3; black = 1 }; size_remaining = 1120 }
78
    { cue = { white = 3; black = 2 }; size_remaining = 20 }
79
    { cue = { white = 4; black = 0 }; size_remaining = 1215 }
80
    { cue = { white = 4; black = 1 }; size_remaining = 45 }
81
    { cue = { white = 5; black = 0 }; size_remaining = 44 } |}]
×
82
;;
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc