blob: 986a2ea01c0e477e0f5de41e8a949362b1585aae (
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
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
|
(***********************************************************************)
(* *)
(* OCaml *)
(* *)
(* Gabriel Scherer, projet Gallium, INRIA Rocquencourt *)
(* *)
(* Copyright 2012 Institut National de Recherche en Informatique et *)
(* en Automatique. All rights reserved. This file is distributed *)
(* under the terms of the Q Public License version 1.0. *)
(* *)
(***********************************************************************)
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);
()
|