Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / regression / tststrcmp.sml
CommitLineData
7f918cf1
CE
1(*tststrcmp.sml 27/06/1997 17:21. tho.*)
2(*test <, etc. on strings*)
3
4fun pr s = print s;
5fun prl s = pr (s ^ "\n");
6local
7 fun string' 0 = "0"
8 | string' 1 = "1"
9 | string' 2 = "2"
10 | string' 3 = "3"
11 | string' 4 = "4"
12 | string' 5 = "5"
13 | string' 6 = "6"
14 | string' 7 = "7"
15 | string' 8 = "8"
16 | string' 9 = "9"
17 | string' n = string' (n div 10) ^ string' (n mod 10)
18in
19 fun int_to_string n = if n < 0 then "~" ^ string' (~n) else string' n
20end
21
22local val r = ref 0
23in
24fun etst s e1 e2 =
25 prl (int_to_string (r := !r + 1; !r)
26 ^ (if e1 = e2 then " ok" else " * n o t o k ! *"))
27end
28
29val () = etst "1" ("" < "abc") true; (*den ene tom*)
30val () = etst "2" ("" > "abc") false;
31val () = etst "2" ("" >= "abc") false;
32val () = etst "2" ("" <= "abc") true;
33val () = etst "2" ("" = "abc") false;
34val () = etst "2" ("" <> "abc") true;
35val () = etst "3" ("abc" < "") false; (*den anden tom*)
36val () = etst "4" ("abc" > "") true;
37val () = etst "4" ("abc" >= "") true;
38val () = etst "4" ("abc" <= "") false;
39val () = etst "4" ("abc" = "") false;
40val () = etst "4" ("abc" <> "") true;
41val () = etst "5" ("abc" < "abc") false; (*ens*)
42val () = etst "6" ("abc" > "abc") false;
43val () = etst "6" ("abc" >= "abc") true;
44val () = etst "6" ("abc" <= "abc") true;
45val () = etst "6" ("abc" = "abc") true;
46val () = etst "6" ("abc" <> "abc") false;
47val () = etst "5" ("" < "") false; (*begge tomme*)
48val () = etst "6" ("" > "") false;
49val () = etst "6" ("" >= "") true;
50val () = etst "6" ("" <= "") true;
51val () = etst "6" ("" = "") true;
52val () = etst "6" ("" <> "") false;
53val () = etst "7" ("abc" < "abcd") true; (*den ene lngere*)
54val () = etst "8" ("abc" > "abcd") false;
55val () = etst "8" ("abc" >= "abcd") false;
56val () = etst "8" ("abc" <= "abcd") true;
57val () = etst "8" ("abc" = "abcd") false;
58val () = etst "8" ("abc" <> "abcd") true;
59val () = etst "-" ("abcd" < "abc") false; (*den anden lngere*)
60val () = etst "-" ("abcd" > "abc") true;
61val () = etst "-" ("abcd" >= "abc") true;
62val () = etst "-" ("abcd" <= "abc") false;
63val () = etst "-" ("abcd" = "abc") false;
64val () = etst "-" ("abcd" <> "abc") true;
65val () = etst "-" ("abc" < "abd") true; (*lige lange, sidste strst*)
66val () = etst "-" ("abc" > "abd") false;
67val () = etst "-" ("abc" >= "abd") false;
68val () = etst "-" ("abc" <= "abd") true;
69val () = etst "-" ("abc" = "abd") false;
70val () = etst "-" ("abc" <> "abd") true;
71val () = etst "-" ("abd" < "abc") false; (*lige lange, frste strst*)
72val () = etst "-" ("abd" > "abc") true;
73val () = etst "-" ("abd" >= "abc") true;
74val () = etst "-" ("abd" <= "abc") false;
75val () = etst "-" ("abd" = "abc") false;
76val () = etst "-" ("abd" <> "abc") true;
77
78
79(*& nu hele molevitten igen bare med meget lange strenge.
80 Det er godt nok strenge...*)
81
82fun repeat 0 s = ""
83 | repeat n s = s ^ repeat (n-1) s
84val long = repeat 50 "Der laa den Ridder i Graesset og drev.\n\
85 \Hejsa, nu sadler vi af.\n\
86 \Der laa hans Harnisk, hans Skjold og Vaerge,\n\
87 \Hans Tanker de floej over alle Bjerge.\n\
88 \De floej paa Skyer gennem Luften den blaa ---\n\
89 \Den Rejse man bruger ej Vaaben paa.\n\
90 \\n\
91 \Den Ridder han laa, hvor han steded sig foerst\n\
92 \Han kendte ej Sult, han kendte ej Toerst\n\
93 \Og Solen kom og Stedet og gik;\n\
94 \Han lytted som efter en sagte Musik.\n\
95 \\n\
96 \\n"
97
98val () = etst "1" (long ^ "" < long ^ "abc") true; (*den ene tom*)
99val () = etst "2" (long ^ "" > long ^ "abc") false;
100val () = etst "2" (long ^ "" >= long ^ "abc") false;
101val () = etst "2" (long ^ "" <= long ^ "abc") true;
102val () = etst "2" (long ^ "" = long ^ "abc") false;
103val () = etst "2" (long ^ "" <> long ^ "abc") true;
104val () = etst "3" (long ^ "abc" < long ^ "") false; (*den anden tom*)
105val () = etst "4" (long ^ "abc" > long ^ "") true;
106val () = etst "4" (long ^ "abc" >= long ^ "") true;
107val () = etst "4" (long ^ "abc" <= long ^ "") false;
108val () = etst "4" (long ^ "abc" = long ^ "") false;
109val () = etst "4" (long ^ "abc" <> long ^ "") true;
110val () = etst "5" (long ^ "abc" < long ^ "abc") false; (*ens*)
111val () = etst "6" (long ^ "abc" > long ^ "abc") false;
112val () = etst "6" (long ^ "abc" >= long ^ "abc") true;
113val () = etst "6" (long ^ "abc" <= long ^ "abc") true;
114val () = etst "6" (long ^ "abc" = long ^ "abc") true;
115val () = etst "6" (long ^ "abc" <> long ^ "abc") false;
116val () = etst "5" (long ^ "" < long ^ "") false; (*begge tomme*)
117val () = etst "6" (long ^ "" > long ^ "") false;
118val () = etst "6" (long ^ "" >= long ^ "") true;
119val () = etst "6" (long ^ "" <= long ^ "") true;
120val () = etst "6" (long ^ "" = long ^ "") true;
121val () = etst "6" (long ^ "" <> long ^ "") false;
122val () = etst "7" (long ^ "abc" < long ^ "abcd") true; (*den ene lngere*)
123val () = etst "8" (long ^ "abc" > long ^ "abcd") false;
124val () = etst "8" (long ^ "abc" >= long ^ "abcd") false;
125val () = etst "8" (long ^ "abc" <= long ^ "abcd") true;
126val () = etst "8" (long ^ "abc" = long ^ "abcd") false;
127val () = etst "8" (long ^ "abc" <> long ^ "abcd") true;
128val () = etst "-" (long ^ "abcd" < long ^ "abc") false; (*den anden lngere*)
129val () = etst "-" (long ^ "abcd" > long ^ "abc") true;
130val () = etst "-" (long ^ "abcd" >= long ^ "abc") true;
131val () = etst "-" (long ^ "abcd" <= long ^ "abc") false;
132val () = etst "-" (long ^ "abcd" = long ^ "abc") false;
133val () = etst "-" (long ^ "abcd" <> long ^ "abc") true;
134val () = etst "-" (long ^ "abc" < long ^ "abd") true; (*lige lange, sidste strst*)
135val () = etst "-" (long ^ "abc" > long ^ "abd") false;
136val () = etst "-" (long ^ "abc" >= long ^ "abd") false;
137val () = etst "-" (long ^ "abc" <= long ^ "abd") true;
138val () = etst "-" (long ^ "abc" = long ^ "abd") false;
139val () = etst "-" (long ^ "abc" <> long ^ "abd") true;
140val () = etst "-" (long ^ "abd" < long ^ "abc") false; (*lige lange, frste strst*)
141val () = etst "-" (long ^ "abd" > long ^ "abc") true;
142val () = etst "-" (long ^ "abd" >= long ^ "abc") true;
143val () = etst "-" (long ^ "abd" <= long ^ "abc") false;
144val () = etst "-" (long ^ "abd" = long ^ "abc") false;
145val () = etst "-" (long ^ "abd" <> long ^ "abc") true;
146
147val _ = prl long;