Source file test_variant.ml
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
open! Base
open Expect_test_helpers_base
type ('a, 'b, 'c) t = ('a, 'b, 'c) N_ary.Variant3.t =
| Case0 of 'a
| Case1 of 'b
| Case2 of 'c
[@@deriving compare, equal, hash, sexp_of]
let case0 = N_ary.Variant3.case0
let%expect_test _ =
print_s [%sexp (case0 1 : (int, int, int) t)];
[%expect {| (Case0 1) |}]
;;
let case1 = N_ary.Variant3.case1
let%expect_test _ =
print_s [%sexp (case1 2 : (int, int, int) t)];
[%expect {| (Case1 2) |}]
;;
let case2 = N_ary.Variant3.case2
let%expect_test _ =
print_s [%sexp (case2 2 : (int, int, int) t)];
[%expect {| (Case2 2) |}]
;;
let is_case0 = N_ary.Variant3.is_case0
let%expect_test _ =
print_s
[%sexp
(List.filter [ Case0 1; Case1 2; Case2 3 ] ~f:is_case0 : (int, int, int) t list)];
[%expect {| ((Case0 1)) |}]
;;
let is_case1 = N_ary.Variant3.is_case1
let%expect_test _ =
print_s
[%sexp
(List.filter [ Case0 1; Case1 2; Case2 3 ] ~f:is_case1 : (int, int, int) t list)];
[%expect {| ((Case1 2)) |}]
;;
let is_case2 = N_ary.Variant3.is_case2
let%expect_test _ =
print_s
[%sexp
(List.filter [ Case0 1; Case1 2; Case2 3 ] ~f:is_case2 : (int, int, int) t list)];
[%expect {| ((Case2 3)) |}]
;;
let get_case0 = N_ary.Variant3.get_case0
let%expect_test _ =
print_s [%sexp (List.filter_map [ Case0 1; Case1 2; Case2 3 ] ~f:get_case0 : int list)];
[%expect {| (1) |}]
;;
let get_case1 = N_ary.Variant3.get_case1
let%expect_test _ =
print_s [%sexp (List.filter_map [ Case0 1; Case1 2; Case2 3 ] ~f:get_case1 : int list)];
[%expect {| (2) |}]
;;
let get_case2 = N_ary.Variant3.get_case2
let%expect_test _ =
print_s [%sexp (List.filter_map [ Case0 1; Case1 2; Case2 3 ] ~f:get_case2 : int list)];
[%expect {| (3) |}]
;;
let get_case0_exn = N_ary.Variant3.get_case0_exn
let%expect_test _ =
print_s [%sexp (List.map [ Case0 1; Case0 2 ] ~f:get_case0_exn : int list)];
[%expect {| (1 2) |}]
;;
let get_case1_exn = N_ary.Variant3.get_case1_exn
let%expect_test _ =
print_s [%sexp (List.map [ Case1 1; Case1 2 ] ~f:get_case1_exn : int list)];
[%expect {| (1 2) |}]
;;
let get_case2_exn = N_ary.Variant3.get_case2_exn
let%expect_test _ =
print_s [%sexp (List.map [ Case2 1; Case2 2 ] ~f:get_case2_exn : int list)];
[%expect {| (1 2) |}]
;;
let map = N_ary.Variant3.map
let%expect_test _ =
print_s
[%sexp
(List.map
[ Case0 1; Case1 2; Case2 3 ]
~f:(map ~f0:(( + ) 10) ~f1:(( + ) 20) ~f2:(( + ) 30))
: (int, int, int) t list)];
[%expect {|
((Case0 11)
(Case1 22)
(Case2 33)) |}]
;;
let map_case0 = N_ary.Variant3.map_case0
let%expect_test _ =
print_s
[%sexp
(List.map [ Case0 1; Case1 2; Case2 3 ] ~f:(map_case0 ~f:(( + ) 10))
: (int, int, int) t list)];
[%expect {|
((Case0 11)
(Case1 2)
(Case2 3)) |}]
;;
let map_case1 = N_ary.Variant3.map_case1
let%expect_test _ =
print_s
[%sexp
(List.map [ Case0 1; Case1 2; Case2 3 ] ~f:(map_case1 ~f:(( + ) 20))
: (int, int, int) t list)];
[%expect {|
((Case0 1)
(Case1 22)
(Case2 3)) |}]
;;
let map_case2 = N_ary.Variant3.map_case2
let%expect_test _ =
print_s
[%sexp
(List.map [ Case0 1; Case1 2; Case2 3 ] ~f:(map_case2 ~f:(( + ) 20))
: (int, int, int) t list)];
[%expect {|
((Case0 1)
(Case1 2)
(Case2 23)) |}]
;;