Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | (*tststrcmp.sml 27/06/1997 17:21. tho.*) |
2 | (*test <, etc. on strings*) | |
3 | ||
4 | fun pr s = print s; | |
5 | fun prl s = pr (s ^ "\n"); | |
6 | local | |
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) | |
18 | in | |
19 | fun int_to_string n = if n < 0 then "~" ^ string' (~n) else string' n | |
20 | end | |
21 | ||
22 | local val r = ref 0 | |
23 | in | |
24 | fun 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 ! *")) | |
27 | end | |
28 | ||
29 | val () = etst "1" ("" < "abc") true; (*den ene tom*) | |
30 | val () = etst "2" ("" > "abc") false; | |
31 | val () = etst "2" ("" >= "abc") false; | |
32 | val () = etst "2" ("" <= "abc") true; | |
33 | val () = etst "2" ("" = "abc") false; | |
34 | val () = etst "2" ("" <> "abc") true; | |
35 | val () = etst "3" ("abc" < "") false; (*den anden tom*) | |
36 | val () = etst "4" ("abc" > "") true; | |
37 | val () = etst "4" ("abc" >= "") true; | |
38 | val () = etst "4" ("abc" <= "") false; | |
39 | val () = etst "4" ("abc" = "") false; | |
40 | val () = etst "4" ("abc" <> "") true; | |
41 | val () = etst "5" ("abc" < "abc") false; (*ens*) | |
42 | val () = etst "6" ("abc" > "abc") false; | |
43 | val () = etst "6" ("abc" >= "abc") true; | |
44 | val () = etst "6" ("abc" <= "abc") true; | |
45 | val () = etst "6" ("abc" = "abc") true; | |
46 | val () = etst "6" ("abc" <> "abc") false; | |
47 | val () = etst "5" ("" < "") false; (*begge tomme*) | |
48 | val () = etst "6" ("" > "") false; | |
49 | val () = etst "6" ("" >= "") true; | |
50 | val () = etst "6" ("" <= "") true; | |
51 | val () = etst "6" ("" = "") true; | |
52 | val () = etst "6" ("" <> "") false; | |
53 | val () = etst "7" ("abc" < "abcd") true; (*den ene lngere*) | |
54 | val () = etst "8" ("abc" > "abcd") false; | |
55 | val () = etst "8" ("abc" >= "abcd") false; | |
56 | val () = etst "8" ("abc" <= "abcd") true; | |
57 | val () = etst "8" ("abc" = "abcd") false; | |
58 | val () = etst "8" ("abc" <> "abcd") true; | |
59 | val () = etst "-" ("abcd" < "abc") false; (*den anden lngere*) | |
60 | val () = etst "-" ("abcd" > "abc") true; | |
61 | val () = etst "-" ("abcd" >= "abc") true; | |
62 | val () = etst "-" ("abcd" <= "abc") false; | |
63 | val () = etst "-" ("abcd" = "abc") false; | |
64 | val () = etst "-" ("abcd" <> "abc") true; | |
65 | val () = etst "-" ("abc" < "abd") true; (*lige lange, sidste strst*) | |
66 | val () = etst "-" ("abc" > "abd") false; | |
67 | val () = etst "-" ("abc" >= "abd") false; | |
68 | val () = etst "-" ("abc" <= "abd") true; | |
69 | val () = etst "-" ("abc" = "abd") false; | |
70 | val () = etst "-" ("abc" <> "abd") true; | |
71 | val () = etst "-" ("abd" < "abc") false; (*lige lange, frste strst*) | |
72 | val () = etst "-" ("abd" > "abc") true; | |
73 | val () = etst "-" ("abd" >= "abc") true; | |
74 | val () = etst "-" ("abd" <= "abc") false; | |
75 | val () = etst "-" ("abd" = "abc") false; | |
76 | val () = etst "-" ("abd" <> "abc") true; | |
77 | ||
78 | ||
79 | (*& nu hele molevitten igen bare med meget lange strenge. | |
80 | Det er godt nok strenge...*) | |
81 | ||
82 | fun repeat 0 s = "" | |
83 | | repeat n s = s ^ repeat (n-1) s | |
84 | val 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 | ||
98 | val () = etst "1" (long ^ "" < long ^ "abc") true; (*den ene tom*) | |
99 | val () = etst "2" (long ^ "" > long ^ "abc") false; | |
100 | val () = etst "2" (long ^ "" >= long ^ "abc") false; | |
101 | val () = etst "2" (long ^ "" <= long ^ "abc") true; | |
102 | val () = etst "2" (long ^ "" = long ^ "abc") false; | |
103 | val () = etst "2" (long ^ "" <> long ^ "abc") true; | |
104 | val () = etst "3" (long ^ "abc" < long ^ "") false; (*den anden tom*) | |
105 | val () = etst "4" (long ^ "abc" > long ^ "") true; | |
106 | val () = etst "4" (long ^ "abc" >= long ^ "") true; | |
107 | val () = etst "4" (long ^ "abc" <= long ^ "") false; | |
108 | val () = etst "4" (long ^ "abc" = long ^ "") false; | |
109 | val () = etst "4" (long ^ "abc" <> long ^ "") true; | |
110 | val () = etst "5" (long ^ "abc" < long ^ "abc") false; (*ens*) | |
111 | val () = etst "6" (long ^ "abc" > long ^ "abc") false; | |
112 | val () = etst "6" (long ^ "abc" >= long ^ "abc") true; | |
113 | val () = etst "6" (long ^ "abc" <= long ^ "abc") true; | |
114 | val () = etst "6" (long ^ "abc" = long ^ "abc") true; | |
115 | val () = etst "6" (long ^ "abc" <> long ^ "abc") false; | |
116 | val () = etst "5" (long ^ "" < long ^ "") false; (*begge tomme*) | |
117 | val () = etst "6" (long ^ "" > long ^ "") false; | |
118 | val () = etst "6" (long ^ "" >= long ^ "") true; | |
119 | val () = etst "6" (long ^ "" <= long ^ "") true; | |
120 | val () = etst "6" (long ^ "" = long ^ "") true; | |
121 | val () = etst "6" (long ^ "" <> long ^ "") false; | |
122 | val () = etst "7" (long ^ "abc" < long ^ "abcd") true; (*den ene lngere*) | |
123 | val () = etst "8" (long ^ "abc" > long ^ "abcd") false; | |
124 | val () = etst "8" (long ^ "abc" >= long ^ "abcd") false; | |
125 | val () = etst "8" (long ^ "abc" <= long ^ "abcd") true; | |
126 | val () = etst "8" (long ^ "abc" = long ^ "abcd") false; | |
127 | val () = etst "8" (long ^ "abc" <> long ^ "abcd") true; | |
128 | val () = etst "-" (long ^ "abcd" < long ^ "abc") false; (*den anden lngere*) | |
129 | val () = etst "-" (long ^ "abcd" > long ^ "abc") true; | |
130 | val () = etst "-" (long ^ "abcd" >= long ^ "abc") true; | |
131 | val () = etst "-" (long ^ "abcd" <= long ^ "abc") false; | |
132 | val () = etst "-" (long ^ "abcd" = long ^ "abc") false; | |
133 | val () = etst "-" (long ^ "abcd" <> long ^ "abc") true; | |
134 | val () = etst "-" (long ^ "abc" < long ^ "abd") true; (*lige lange, sidste strst*) | |
135 | val () = etst "-" (long ^ "abc" > long ^ "abd") false; | |
136 | val () = etst "-" (long ^ "abc" >= long ^ "abd") false; | |
137 | val () = etst "-" (long ^ "abc" <= long ^ "abd") true; | |
138 | val () = etst "-" (long ^ "abc" = long ^ "abd") false; | |
139 | val () = etst "-" (long ^ "abc" <> long ^ "abd") true; | |
140 | val () = etst "-" (long ^ "abd" < long ^ "abc") false; (*lige lange, frste strst*) | |
141 | val () = etst "-" (long ^ "abd" > long ^ "abc") true; | |
142 | val () = etst "-" (long ^ "abd" >= long ^ "abc") true; | |
143 | val () = etst "-" (long ^ "abd" <= long ^ "abc") false; | |
144 | val () = etst "-" (long ^ "abd" = long ^ "abc") false; | |
145 | val () = etst "-" (long ^ "abd" <> long ^ "abc") true; | |
146 | ||
147 | val _ = prl long; |