mutated_ocaml / testsuite / tests / lib-stream / count_concat_bug.ml

let is_empty s =
  try Stream.empty s; true with Stream.Failure -> false

let test_icons =
  let s = Stream.of_string "ab" in
  let s = Stream.icons 'c' s in
  Testing.test (Stream.next s = 'c');
  Testing.test (Stream.next s = 'a');
  Testing.test (Stream.next s = 'b');
  Testing.test (is_empty s);
  ()

let test_lcons =
  let s = Stream.of_string "ab" in
  let s = Stream.lcons (fun () -> 'c') s in
  Testing.test (Stream.next s = 'c');
  Testing.test (Stream.next s = 'a');
  Testing.test (Stream.next s = 'b');
  Testing.test (is_empty s);
  ()

let test_iapp =
  let s = Stream.of_string "ab" in
  let s = Stream.iapp (Stream.of_list ['c']) s in
  Testing.test (Stream.next s = 'c');
  Testing.test (Stream.next s = 'a');
  Testing.test (Stream.next s = 'b');
  Testing.test (is_empty s);
  ()

let test_lapp_right =
  let s1 = Stream.of_list ['c'] in
  let s2 = Stream.of_string "ab" in
  let s = Stream.lapp (fun () -> s1) s2 in
  Testing.test (Stream.next s = 'c');
  Testing.test (Stream.next s = 'a');
  Testing.test (Stream.next s = 'b');
  Testing.test (is_empty s);
  ()

let test_lapp_left =
  let s1 = Stream.of_string "bc" in
  let s2 = Stream.of_list ['a'] in
  Testing.test (Stream.next s1 = 'b');
  let s = Stream.lapp (fun () -> s1) s2 in
  Testing.test (Stream.next s = 'c');
  Testing.test (Stream.next s = 'a');
  Testing.test (is_empty s);
  ()

let test_slazy =
  let s = Stream.of_string "ab" in
  Testing.test (Stream.next s = 'a');
  let s = Stream.slazy (fun () -> s) in
  Testing.test (Stream.next s = 'b');
  Testing.test (is_empty s);
  ()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.