Merge: doc: fixed some typos and other misc. corrections
[nit.git] / tests / test_ropes.nit
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 import core
16 intrude import core::text::ropes
17
18 # Force building a Rope
19 redef fun maxlen: Int do return once 2
20
21 var x :String = new Concat("NODE", "AT")
22
23 x += "TEST"
24
25 print x
26
27 var lst = new List[String]
28
29 lst.push("ZZ")
30
31 lst.push((lst.last * 5))
32
33 lst.push(lst.last.insert_at("AA", 2))
34
35 lst.push(lst.last.insert_at("NN", 0))
36
37 lst.push(lst.last.insert_at("II", 1))
38
39 lst.push(lst.last.insert_at(lst.last, 2))
40
41 var ss = lst.last.substring(4,4)
42
43 print ss
44
45 ss = ss.insert_at("DD", 2)
46
47 print ss
48
49 ss = ss.insert_at("EE", 0)
50
51 print ss
52
53 ss = ss.insert_at("FF", ss.length)
54
55 print ss
56
57 ss = ss.to_lower
58
59 print ss
60
61 ss = ss.to_upper
62
63 print ss
64
65 ss = ss.reversed
66
67 print ss
68
69 var atb = new Array[String]
70
71 var s: String = "./examples/hello_world.nit".substring(11,11) + ".types"
72 s += "."
73 s += "1"
74 s += ".o"
75
76 print s
77
78 var str = "now" + " step" + " live..."
79
80 print str
81
82 print str.reversed
83
84 for i in str.chars do printn i
85 printn "\n"
86
87 for i in [0..str.length[ do printn str.chars[i]
88 printn "\n"
89
90 var iter = str.chars.iterator
91 for i in [0..str.length[ do
92 assert str.chars[i] == iter.item
93 iter.next
94 end
95
96 assert "now step live...".hash == str.hash
97
98 for i in str.chars.iterator_from(8) do printn i
99 printn "\n"
100
101 for i in str.chars.iterator_from(str.length-1) do printn i
102 printn "\n"
103
104 for i in str.chars.reverse_iterator do printn i
105 printn "\n"
106
107 for i in str.chars.reverse_iterator_from(0) do printn i
108 printn "\n"
109
110 var str2 = str.insert_at(str.substring_from(3), 3)
111
112 print str2
113
114 print str2.substring(2,3)
115
116 for i in lst do print i
117