-let as_expected expected found = (* ignores "term" field *)
- let outcome = ref true in
- if expected.eterm <> found.eterm then begin
- print_endline "Term mismatch";
- print_endline " expected:";
- print_endline (" " ^ expected.eterm);
- print_endline " found:";
- print_endline (" " ^ found.eterm);
- outcome := false;
- end;
- if expected.emetasenv <> found.emetasenv then begin
- print_endline "Metasenv mismatch";
- print_endline " expected:";
- print_endline (" " ^ expected.emetasenv);
- print_endline " found:";
- print_endline (" " ^ found.emetasenv);
- outcome := false;
- end;
- if expected.etype <> found.etype then begin
- print_endline "Type mismatch";
- print_endline " expected:";
- print_endline (" " ^ expected.etype);
- print_endline " found:";
- print_endline (" " ^ found.etype);
- outcome := false;
- end;
- if expected.ereduced <> found.ereduced then begin
- print_endline "Reduced term mismatch";
- print_endline " expected:";
- print_endline (" " ^ expected.ereduced);
- print_endline " found:";
- print_endline (" " ^ found.ereduced);
- outcome := false;
- end;
- !outcome
+let as_expected_one och expected found = (* ignores "term" field *)
+ let eterm_ok = expected.eterm = found.eterm in
+ let eenv_ok = expected.eenv = found.eenv in
+ let emetasenv_ok = expected.emetasenv = found.emetasenv in
+ let etype_ok = expected.etype = found.etype in
+ let ereduced_ok = expected.ereduced = found.ereduced in
+ let outcome =
+ eterm_ok && eenv_ok && emetasenv_ok && etype_ok && ereduced_ok
+ in
+ begin
+ let print_endline s = print_endline_to_channel (Lazy.force och) s in
+ if not eterm_ok then begin
+ print_endline "### Term mismatch ###";
+ print_endline "# expected:";
+ print_endline (" " ^ expected.eterm);
+ print_endline "# found:";
+ print_endline (" " ^ found.eterm);
+ end;
+ if not eenv_ok then begin
+ print_endline "### Disambiguation environment mismatch ###";
+ print_endline "# expected:";
+ print_endline (" " ^ expected.eenv);
+ print_endline "# found:";
+ print_endline (" " ^ found.eenv);
+ end;
+ if not emetasenv_ok then begin
+ print_endline "### Metasenv mismatch ###";
+ print_endline "# expected:";
+ print_endline (" " ^ expected.emetasenv);
+ print_endline "# found:";
+ print_endline (" " ^ found.emetasenv);
+ end;
+ if not etype_ok then begin
+ print_endline "### Type mismatch ###";
+ print_endline "# expected:";
+ print_endline (" " ^ expected.etype);
+ print_endline "# found:";
+ print_endline (" " ^ found.etype);
+ end;
+ if expected.ereduced <> found.ereduced then begin
+ print_endline "### Reduced term mismatch ###";
+ print_endline "# expected:";
+ print_endline (" " ^ expected.ereduced);
+ print_endline "# found:";
+ print_endline (" " ^ found.ereduced);
+ end;
+ end;
+ outcome