summaryrefslogtreecommitdiff
path: root/tests/general/string1.icn
blob: 6e6f927ce949a0cc087141279d3abb0562bdd58e (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
#SRC: JCON

# string test -- including operations on string *constants*

procedure main()
   local s, t

   s := "abcde"
   write("type ", type(s))
   write("*s  ", *s)
   write("s:  ", s)
   write("s:  ", image(s))
   every writes("!:  " | !s | "\n")
   every writes("1:  " | s[1 to 5] | "\n")
   every writes("0:  " | s[0 to 7] | "\n")
   every writes("-5: " | s[-5 to -1] | "\n")
   every writes("-7: " | s[-7 to -0] | "\n")

   write("s1: ", s[1:6]);
   write("s2: ", s[1+:5]);
   write("s3: ", s[1-:-5]);
   write("s4: ", s[1:0]);
   write("s5: ", s[-5:0]);
   write("s6: ", s[6:1]);
   write("s7: ", s[0:-5]);
   write("s8: ", s[2:4]);
   write("s9: ", s[-2:-4]);

   write("k1: ","ABCDE"[1:6]);
   write("k2: ","ABCDE"[1+:5]);
   write("k3: ","ABCDE"[1-:-5]);
   write("k4: ","ABCDE"[1:0]);
   write("k5: ","ABCDE"[-5:0]);
   write("k6: ","ABCDE"[6:1]);
   write("k7: ","ABCDE"[0:-5]);
   write("k8: ","ABCDE"[2:4]);
   write("k9: ","ABCDE"[-2:-4]);

   t := "abc" || "de"
   write("t:  ", image(t))
   (s === t) | write("not ===")
   (s ~=== t) & write("are ~===")

   write("?x:  ", ?"x")
   write("?y:  ", ?"yyyyyyyyyyy")
   write("?z:  ", ?"" | "nope")	# should "nope"

   write("c1: ", image("" || ""))
   write("c2: ", image("a" || ""))
   write("c3: ", image("" || "b"))
   write("c4: ", image("cd" || "ef"))
   write("c5: ", image(3.14 || 159))
   write("c6: ", image('abc' || 'def'))
end