blob: 36af2484b324131fb7d0252cf25a35992a29a9a0 (
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
|
open OUnit2
open AoC_2024.Day_02.Part_01
let tests =
"test suite for day 2 part 1"
>::: [
( "empty list should have no valid reports" >:: fun _ ->
assert_equal 0 (solve []) );
( "valid report should count as one" >:: fun _ ->
assert_equal 1 (solve [ [ 7; 6; 4; 2; 1 ] ]) );
( "example correct" >:: fun _ ->
assert_equal 2
(solve
[
[ 7; 6; 4; 2; 1 ];
[ 1; 2; 7; 8; 9 ];
[ 9; 7; 6; 2; 1 ];
[ 1; 3; 2; 4; 5 ];
[ 8; 6; 4; 4; 1 ];
[ 1; 3; 6; 7; 9 ];
]) );
( "all increasing" >:: fun _ ->
assert_equal true (check_report_safety [ 1; 2; 3 ]) );
( "all decreasing" >:: fun _ ->
assert_equal true (check_report_safety [ 3; 2; 1 ]) );
( "increasing and decreasing" >:: fun _ ->
assert_equal false (check_report_safety [ 1; 3; 2 ]) );
( "change of at least one" >:: fun _ ->
assert_equal true (check_report_safety [ 1; 2; 3 ]) );
( "no change" >:: fun _ ->
assert_equal false (check_report_safety [ 1; 1; 2 ]) );
( "change of at most three" >:: fun _ ->
assert_equal true (check_report_safety [ 1; 2; 4; 7 ]) );
( "change of at more than three" >:: fun _ ->
assert_equal false (check_report_safety [ 1; 5 ]) );
]
let _ = run_test_tt_main tests
|