184
184
(List.hd (Stimulus.efforts (List.hd (Workout.stimuli d))))) );
185
185
]
186
186
187
-
Removed:
let suite = [ ("timestamp", timestamp_tests); ("codec", codec_tests) ]
187
+
Added:
let feedback_tests =
188
+
Added:
[
189
+
Added:
( "five-point feedback round-trips every score",
190
+
Added:
`Quick,
191
+
Added:
fun () ->
192
+
Added:
let open Evidence.Feedback in
193
+
Added:
let report =
194
+
Added:
make ~reported_at:(at 100)
195
+
Added:
[
196
+
Added:
Sleep Very_poor;
197
+
Added:
Appetite Poor;
198
+
Added:
Readiness Fair;
199
+
Added:
Motivation Good;
200
+
Added:
Difficulty Very_good;
201
+
Added:
Pain;
202
+
Added:
]
203
+
Added:
in
204
+
Added:
match Codec.decode_feedback (Codec.encode_feedback report) with
205
+
Added:
| Ok decoded ->
206
+
Added:
let show s =
207
+
Added:
let lvl l = string_of_int (level_to_score l) in
208
+
Added:
match s with
209
+
Added:
| Sleep l -> "sleep:" ^ lvl l
210
+
Added:
| Appetite l -> "appetite:" ^ lvl l
211
+
Added:
| Readiness l -> "readiness:" ^ lvl l
212
+
Added:
| Motivation l -> "motivation:" ^ lvl l
213
+
Added:
| Difficulty l -> "difficulty:" ^ lvl l
214
+
Added:
| Pain -> "pain"
215
+
Added:
| Injury -> "injury"
216
+
Added:
| Preparation_insufficient -> "preparation"
217
+
Added:
in
218
+
Added:
Alcotest.(check int)
219
+
Added:
"report time" 100
220
+
Added:
(Recovery.timestamp_to_unix_seconds (reported_at decoded));
221
+
Added:
Alcotest.(check (list string))
222
+
Added:
"same signals"
223
+
Added:
(List.map show (signals report))
224
+
Added:
(List.map show (signals decoded))
225
+
Added:
| Error e -> Alcotest.failf "decode failed: %a" Codec.pp_error e );
226
+
Added:
( "an out-of-range score is reported as malformed",
227
+
Added:
`Quick,
228
+
Added:
fun () ->
229
+
Added:
match Codec.decode_feedback "1970-01-01T00:00:00Z\tsleep:6" with
230
+
Added:
| Error (Codec.Malformed _) -> ()
231
+
Added:
| _ -> Alcotest.fail "expected Malformed for score 6" );
232
+
Added:
]
233
+
Added:
234
+
Added:
let suite =
235
+
Added:
[
236
+
Added:
("timestamp", timestamp_tests);
237
+
Added:
("codec", codec_tests);
238
+
Added:
("feedback", feedback_tests);
239
+
Added:
]