summaryrefslogtreecommitdiffstats
path: root/tests/015/lazy-str.tl
blob: bfcd632805166b551955591bd82b606863dc8069 (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
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
(load "../common")

(defvarl words '#"the quick")

(defvarl lz0 (lazy-str words))

(test (lazy-str-get-trailing-list (copy lz0) 0) #"the quick")
(test (lazy-str-get-trailing-list (copy lz0) 1) #"he quick")
(test (lazy-str-get-trailing-list (copy lz0) 2) #"e quick")
(test (lazy-str-get-trailing-list (copy lz0) 3) ("" . #"quick"))
(test (lazy-str-get-trailing-list (copy lz0) 4) #"quick")
(test (lazy-str-get-trailing-list (copy lz0) 5) #"uick")
(test (lazy-str-get-trailing-list (copy lz0) 6) #"ick")
(test (lazy-str-get-trailing-list (copy lz0) 7) #"ck")
(test (lazy-str-get-trailing-list (copy lz0) 8) #"k")
(test (lazy-str-get-trailing-list (copy lz0) 9) (""))
(test (lazy-str-get-trailing-list (copy lz0) 10) ())
(test (lazy-str-get-trailing-list (copy lz0) 11) ())

(defvarl lz1 (lazy-str words ":"))

(test (lazy-str-get-trailing-list (copy lz1) 0) #"the quick")
(test (lazy-str-get-trailing-list (copy lz1) 1) #"he quick")
(test (lazy-str-get-trailing-list (copy lz1) 2) #"e quick")
(test (lazy-str-get-trailing-list (copy lz1) 3) ("" . #"quick"))
(test (lazy-str-get-trailing-list (copy lz1) 4) #"quick")
(test (lazy-str-get-trailing-list (copy lz1) 5) #"uick")
(test (lazy-str-get-trailing-list (copy lz1) 6) #"ick")
(test (lazy-str-get-trailing-list (copy lz1) 7) #"ck")
(test (lazy-str-get-trailing-list (copy lz1) 8) #"k")
(test (lazy-str-get-trailing-list (copy lz1) 9) (""))
(test (lazy-str-get-trailing-list (copy lz1) 10) ())
(test (lazy-str-get-trailing-list (copy lz1) 11) ())

(test [(copy lz1) 0..0] "")
(test [(copy lz1) 0..1] "t")
(test [(copy lz1) 0..2] "th")
(test [(copy lz1) 0..3] "the")
(test [(copy lz1) 0..4] "the:")
(test [(copy lz1) 0..5] "the:q")
(test [(copy lz1) 0..6] "the:qu")
(test [(copy lz1) 0..7] "the:qui")
(test [(copy lz1) 0..8] "the:quic")
(test [(copy lz1) 0..9] "the:quick")
(test [(copy lz1) 0..10] "the:quick:")
(test [(copy lz1) 0..11] "the:quick:")

(defvarl lz2 (lazy-str '#"the quick brown fox" ":" 2))

(test (lazy-str-get-trailing-list (copy lz2) 0) #"the quick brown fox")
(test (lazy-str-get-trailing-list (copy lz2) 1) #"he quick brown fox")
(test (lazy-str-get-trailing-list (copy lz2) 2) #"e quick brown fox")
(test (lazy-str-get-trailing-list (copy lz2) 3) ("" . #"quick brown fox"))
(test (lazy-str-get-trailing-list (copy lz2) 4) #"quick brown fox")
(test (lazy-str-get-trailing-list (copy lz2) 5) #"uick brown fox")
(test (lazy-str-get-trailing-list (copy lz2) 6) #"ick brown fox")
(test (lazy-str-get-trailing-list (copy lz2) 7) #"ck brown fox")
(test (lazy-str-get-trailing-list (copy lz2) 8) #"k brown fox")
(test (lazy-str-get-trailing-list (copy lz2) 9) ("" . #"brown fox"))
(test (lazy-str-get-trailing-list (copy lz2) 10) #"brown fox")
(test (lazy-str-get-trailing-list (copy lz2) 11) #"brown fox")

(test [(copy lz2) 0..0] "")
(test [(copy lz2) 0..1] "t")
(test [(copy lz2) 0..2] "th")
(test [(copy lz2) 0..3] "the")
(test [(copy lz2) 0..4] "the:")
(test [(copy lz2) 0..5] "the:q")
(test [(copy lz2) 0..6] "the:qu")
(test [(copy lz2) 0..7] "the:qui")
(test [(copy lz2) 0..8] "the:quic")
(test [(copy lz2) 0..9] "the:quick")
(test [(copy lz2) 0..10] "the:quick:")
(test [(copy lz2) 0..11] "the:quick:")

(defvarl lz3 (lazy-str words ""))

(test (lazy-str-get-trailing-list (copy lz3) 0) #"t h e quick")
(test (lazy-str-get-trailing-list (copy lz3) 1) #"h e quick")
(test (lazy-str-get-trailing-list (copy lz3) 2) #"e quick")
(test (lazy-str-get-trailing-list (copy lz3) 3) #"q u i c k")
(test (lazy-str-get-trailing-list (copy lz3) 4) #"u i c k")
(test (lazy-str-get-trailing-list (copy lz3) 5) #"i c k")
(test (lazy-str-get-trailing-list (copy lz3) 6) #"c k")
(test (lazy-str-get-trailing-list (copy lz3) 7) #"k")
(test (lazy-str-get-trailing-list (copy lz3) 8) ())
(test (lazy-str-get-trailing-list (copy lz3) 9) ())

(test [(copy lz3) 0..0] "")
(test [(copy lz3) 0..1] "t")
(test [(copy lz3) 0..2] "th")
(test [(copy lz3) 0..3] "the")
(test [(copy lz3) 0..4] "theq")
(test [(copy lz3) 0..5] "thequ")
(test [(copy lz3) 0..6] "thequi")
(test [(copy lz3) 0..7] "thequic")
(test [(copy lz3) 0..8] "thequick")
(test [(copy lz3) 0..9] "thequick")