File: rtest_encoding.mac

package info (click to toggle)
maxima 5.47.0-9
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 193,104 kB
  • sloc: lisp: 434,678; fortran: 14,665; tcl: 10,990; sh: 4,577; makefile: 2,763; ansic: 447; java: 328; python: 262; perl: 201; xml: 60; awk: 28; sed: 15; javascript: 2
file content (60 lines) | stat: -rw-r--r-- 3,036 bytes parent folder | download | duplicates (7)
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
block ([use_fast_arrays : true],
       kill (foo_table),
       foo_table["CMU Common Lisp"]: ["DEFAULT", "UTF-8", "UTF-16-LE", "UTF-16-BE", "UTF-32-LE", "UTF-32-BE"],
       foo_table["CLISP"]: ["DEFAULT", "UTF-8", "UNICODE-16-LITTLE-ENDIAN", "UNICODE-16-BIG-ENDIAN",
                            "UNICODE-32-LITTLE-ENDIAN", "UNICODE-32-BIG-ENDIAN"],
       foo_table["ECL"]  : ["DEFAULT", "UTF-8", "UCS-2LE", "UCS-2BE", "UCS-4LE", "UCS-4BE"],
       others : ["DEFAULT", "UTF-8", "UTF-16LE", "UTF-16BE", "UTF-32LE", "UTF-32BE"],
       some_files : map (file_search, ["rectangular.csv", "rectangular.csv-utf-8", "rectangular.csv-utf-16le",
                                       "rectangular.csv-utf-16be", "rectangular.csv-utf-32le", "rectangular.csv-utf-32be"]),
       0);
0;

inferred_encodings : map (inferred_encoding, some_files);
''(foo_table[build_info()@lisp_name], if %% = false then others else %%);

map (lambda ([e], errcatch (recognized_encoding_p (e))), inferred_encodings);
''(if build_info()@lisp_name = "GCL" then [[false], [false], [false], [false], [false], [false]]
                                     else [[true], [true], [true], [true], [true], [true]]);

block ([some_streams, some_lists],
       some_streams : map (openr, some_files),
       some_lists : map (lambda ([s], errcatch (read_nested_list (s, 'comma))), some_streams),
       map (close, some_streams),
       unique (some_lists));
[[[[KEY,XX,YY,ZZ,FOO,Bar,baz],
   [aa46,7,7,16,FOO3,2.71,2.88],
   [aA31,31,61,25,916,6.1,741],
   [AA22,61,40,13,32.75,Bar2,9.12],
   [AA16,19,25,31,FOO7,4.8,697],
   [AA16,13,49,7,5.67,2.54,4.54],
   [AA58,19,28,43,4.04,0.9,baz8],
   [AA34,16,22,19,4.87,4.9,2.85],
   [AA52,28,34,7,FOO9,Bar4,293],
   [AA52,10,43,13,12.125,5.69,0.0],
   [AA40,7,25,40,3.15,7.54,6.11]]]];

(tempfile(number, suffix) := sconcat (maxima_tempdir, "/tmp", number, "-", suffix),
 temp_encodings : 
   if build_info()@lisp_name = "CMU Common Lisp" then 
     ["DEFAULT", "UTF-8", "UTF-16-LE", "UTF-16-BE", "UTF-32-LE", "UTF-32-BE"]
   else ["DEFAULT", "UTF-8", "UTF-16LE", "UTF-16BE", "UTF-32LE", "UTF-32BE"],
 n : 1000 + random(9000),
 temp_files : map (lambda ([s], tempfile(n, s)), temp_encodings),
 temp_streams : map (lambda ([f, e], openw (f, e)), temp_files, temp_encodings),
 BOM : unicode ("ZERO_WIDTH_NO-BREAK_SPACE"),
 map (lambda ([e, s], if e # "DEFAULT" then printf (s, "~a", BOM)), temp_encodings, temp_streams),
 map (close, temp_streams));
[true, true, true, true, true, true];

map (inferred_encoding, temp_files);
''(foo_table[build_info()@lisp_name], if %% = false then others else %%);

(temp_streams : map (opena, temp_files),
 map (lambda ([s], printf (s, "17 29 1729~%1 1 2 3 5~%")), temp_streams),
 map (lambda ([s], close (s)), temp_streams),
 unique (map (lambda ([f], block ([s:openr(f), stuff], stuff:read_nested_list(s), close(s), stuff)), temp_files)));
[[[17, 29, 1729], [1, 1, 2, 3, 5]]];

map (inferred_encoding, temp_files);
''(foo_table[build_info()@lisp_name], if %% = false then others else %%);