File: tststrcmp.sml

package info (click to toggle)
mlton 20210117%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 58,464 kB
  • sloc: ansic: 27,682; sh: 4,455; asm: 3,569; lisp: 2,879; makefile: 2,347; perl: 1,169; python: 191; pascal: 68; javascript: 7
file content (147 lines) | stat: -rw-r--r-- 6,411 bytes parent folder | download | duplicates (9)
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
(*tststrcmp.sml  27/06/1997 17:21. tho.*)
(*test <, etc. on strings*)

fun pr s = print s;
fun prl s = pr (s ^ "\n");
local
  fun string' 0 = "0"
  |   string' 1 = "1"
  |   string' 2 = "2"
  |   string' 3 = "3"
  |   string' 4 = "4"
  |   string' 5 = "5"
  |   string' 6 = "6"
  |   string' 7 = "7"
  |   string' 8 = "8"
  |   string' 9 = "9"
  |   string' n = string' (n div 10) ^ string' (n mod 10)
in
  fun int_to_string n = if n < 0 then "~" ^ string' (~n) else string' n
end
  
local val r = ref 0
in
fun etst s e1 e2 =
      prl (int_to_string (r := !r + 1; !r)
           ^ (if e1 = e2 then " ok" else " * n o t   o k ! *"))
end

val () = etst "1" ("" < "abc") true;         (*den ene tom*)
val () = etst "2" ("" > "abc") false;
val () = etst "2" ("" >= "abc") false;
val () = etst "2" ("" <= "abc") true;
val () = etst "2" ("" = "abc") false;
val () = etst "2" ("" <> "abc") true;
val () = etst "3" ("abc" < "") false;        (*den anden tom*)
val () = etst "4" ("abc" > "") true;
val () = etst "4" ("abc" >= "") true;
val () = etst "4" ("abc" <= "") false;
val () = etst "4" ("abc" = "") false;
val () = etst "4" ("abc" <> "") true;
val () = etst "5" ("abc" < "abc") false;     (*ens*)
val () = etst "6" ("abc" > "abc") false;
val () = etst "6" ("abc" >= "abc") true;
val () = etst "6" ("abc" <= "abc") true;
val () = etst "6" ("abc" = "abc") true;
val () = etst "6" ("abc" <> "abc") false;
val () = etst "5" ("" < "") false;          (*begge tomme*)
val () = etst "6" ("" > "") false;
val () = etst "6" ("" >= "") true;
val () = etst "6" ("" <= "") true;
val () = etst "6" ("" = "") true;
val () = etst "6" ("" <> "") false;
val () = etst "7" ("abc" < "abcd") true;    (*den ene lngere*)
val () = etst "8" ("abc" > "abcd") false;
val () = etst "8" ("abc" >= "abcd") false;
val () = etst "8" ("abc" <= "abcd") true;
val () = etst "8" ("abc" = "abcd") false;
val () = etst "8" ("abc" <> "abcd") true;
val () = etst "-" ("abcd" < "abc") false;   (*den anden lngere*)
val () = etst "-" ("abcd" > "abc") true;
val () = etst "-" ("abcd" >= "abc") true;
val () = etst "-" ("abcd" <= "abc") false;
val () = etst "-" ("abcd" = "abc") false;
val () = etst "-" ("abcd" <> "abc") true;
val () = etst "-" ("abc" < "abd") true;     (*lige lange, sidste strst*)
val () = etst "-" ("abc" > "abd") false;
val () = etst "-" ("abc" >= "abd") false;
val () = etst "-" ("abc" <= "abd") true;
val () = etst "-" ("abc" = "abd") false;
val () = etst "-" ("abc" <> "abd") true;
val () = etst "-" ("abd" < "abc") false;    (*lige lange, frste strst*)
val () = etst "-" ("abd" > "abc") true;
val () = etst "-" ("abd" >= "abc") true;
val () = etst "-" ("abd" <= "abc") false;
val () = etst "-" ("abd" = "abc") false;
val () = etst "-" ("abd" <> "abc") true;


(*& nu hele molevitten igen bare med meget lange strenge.
 Det er godt nok strenge...*)
  
fun repeat 0 s = ""
  | repeat n s = s ^ repeat (n-1) s
val long = repeat  50 "Der laa den Ridder i Graesset og drev.\n\
                      \Hejsa, nu sadler vi af.\n\
                      \Der laa hans Harnisk, hans Skjold og Vaerge,\n\
                      \Hans Tanker de floej over alle Bjerge.\n\
                      \De floej paa Skyer gennem Luften den blaa ---\n\
                      \Den Rejse man bruger ej Vaaben paa.\n\
                      \\n\
                      \Den Ridder han laa, hvor han steded sig foerst\n\
                      \Han kendte ej Sult, han kendte ej Toerst\n\
                      \Og Solen kom og Stedet og gik;\n\
                      \Han lytted som efter en sagte Musik.\n\
                      \\n\
                      \\n"

val () = etst "1" (long ^ "" < long ^ "abc") true;         (*den ene tom*)
val () = etst "2" (long ^ "" > long ^ "abc") false;
val () = etst "2" (long ^ "" >= long ^ "abc") false;
val () = etst "2" (long ^ "" <= long ^ "abc") true;
val () = etst "2" (long ^ "" = long ^ "abc") false;
val () = etst "2" (long ^ "" <> long ^ "abc") true;
val () = etst "3" (long ^ "abc" < long ^ "") false;        (*den anden tom*)
val () = etst "4" (long ^ "abc" > long ^ "") true;
val () = etst "4" (long ^ "abc" >= long ^ "") true;
val () = etst "4" (long ^ "abc" <= long ^ "") false;
val () = etst "4" (long ^ "abc" = long ^ "") false;
val () = etst "4" (long ^ "abc" <> long ^ "") true;
val () = etst "5" (long ^ "abc" < long ^ "abc") false;     (*ens*)
val () = etst "6" (long ^ "abc" > long ^ "abc") false;
val () = etst "6" (long ^ "abc" >= long ^ "abc") true;
val () = etst "6" (long ^ "abc" <= long ^ "abc") true;
val () = etst "6" (long ^ "abc" = long ^ "abc") true;
val () = etst "6" (long ^ "abc" <> long ^ "abc") false;
val () = etst "5" (long ^ "" < long ^ "") false;          (*begge tomme*)
val () = etst "6" (long ^ "" > long ^ "") false;
val () = etst "6" (long ^ "" >= long ^ "") true;
val () = etst "6" (long ^ "" <= long ^ "") true;
val () = etst "6" (long ^ "" = long ^ "") true;
val () = etst "6" (long ^ "" <> long ^ "") false;
val () = etst "7" (long ^ "abc" < long ^ "abcd") true;    (*den ene lngere*)
val () = etst "8" (long ^ "abc" > long ^ "abcd") false;
val () = etst "8" (long ^ "abc" >= long ^ "abcd") false;
val () = etst "8" (long ^ "abc" <= long ^ "abcd") true;
val () = etst "8" (long ^ "abc" = long ^ "abcd") false;
val () = etst "8" (long ^ "abc" <> long ^ "abcd") true;
val () = etst "-" (long ^ "abcd" < long ^ "abc") false;   (*den anden lngere*)
val () = etst "-" (long ^ "abcd" > long ^ "abc") true;
val () = etst "-" (long ^ "abcd" >= long ^ "abc") true;
val () = etst "-" (long ^ "abcd" <= long ^ "abc") false;
val () = etst "-" (long ^ "abcd" = long ^ "abc") false;
val () = etst "-" (long ^ "abcd" <> long ^ "abc") true;
val () = etst "-" (long ^ "abc" < long ^ "abd") true;     (*lige lange, sidste strst*)
val () = etst "-" (long ^ "abc" > long ^ "abd") false;
val () = etst "-" (long ^ "abc" >= long ^ "abd") false;
val () = etst "-" (long ^ "abc" <= long ^ "abd") true;
val () = etst "-" (long ^ "abc" = long ^ "abd") false;
val () = etst "-" (long ^ "abc" <> long ^ "abd") true;
val () = etst "-" (long ^ "abd" < long ^ "abc") false;    (*lige lange, frste strst*)
val () = etst "-" (long ^ "abd" > long ^ "abc") true;
val () = etst "-" (long ^ "abd" >= long ^ "abc") true;
val () = etst "-" (long ^ "abd" <= long ^ "abc") false;
val () = etst "-" (long ^ "abd" = long ^ "abc") false;
val () = etst "-" (long ^ "abd" <> long ^ "abc") true;

val _ = prl long;