# test ord() and char(), and print messages if wrong results procedure main () s := string (&cset) every i := 0 to 255 do { c := char (i) n := ord (c) if n ~= i | c ~== s[i+1] then write ("oops -- ord/char failure at ",i) } if char("47") ~== char(47) then write ("oops -- type conversion failed in char()") if ord(9) ~= ord("9") then write ("oops -- type conversion failed in ord()") every ferr (char, -65536 | -337 | -1 | 256 | 4713 | 65536 | 123456, 205) every ferr (char, "abc" | &lcase | &errout | [], 101) every ferr (ord, "" | "ab" | "antidisestablishmentarianism" | 47, 205) every ferr (ord, &output | table(), 103) end # ferr(func,val,err) -- call func(val) and verify that error "err" is produced procedure ferr (func, val, err) msg := "oops -- " || image(func) || "(" || image (val) || ") " &error := 1 if func (val) then write (msg, "succeeded") else if &error ~= 0 then write (msg, "failed but no error") else if &errornumber ~= err then write (msg, "got error ",&errornumber," instead of ",err) &error := 0 return end