Fix typo
[maxima.git] / share / test_batch_encodings / rtest_batch_encodings.mac
blobbfe847e4b49f0a8106232625b42b052f447cf69b
1 /* Test character encodings when specified as an argument to openr
2  * when opening a stream to be supplied to batch or batchload.
3  * e.g. S: openr("foo.mac", "CP1252"); batch(S); close(S);
4  *
5  * The batch files foo-<encoding>.mac and foo-<encoding>-UTF-8.mac
6  * contain strings which are assigned to the variable foo_string.
7  * All four instances of foo_string (batch and batchload, <encoding> and UTF-8)
8  * should be identical.
9  *
10  * foo-<encoding>-UTF-8.mac is the same as foo-<encoding>.mac,
11  * after passing it through a character conversion program
12  * (I think it was iconv but I don't remember for sure).
13  */
15 (test_encoding ([ee]) :=
16     (for e in ee do
17          if recognized_encoding_p (e)
18              then return (test_encoding_1 (ee[1], e))
19              else printf (true, "rtest_encodings: skip unrecognized encoding ~s~%", e),
20      if %% = done /* all were skipped; pass this test */
21          then true
22          else %%),
23  test_encoding_1 (ee1, e) :=
24      block ([foo_name, foo_UTF8_name],
25             if e = ee1
26                 then printf (true, "rtest_encodings: recognized ~s.", e)
27                 else printf (true, "rtest_encodings: recognized ~s (an alias of ~s).~%", e, ee1),
28             foo_name: printf (false, "foo-~a.mac", ee1),
29             foo_UTF8_name: printf (false, "foo-~a-UTF-8.mac", ee1),
30             kill (foo_string),
31             mystream: openr (file_search (foo_name), e),
32             batchload (mystream),
33             close (mystream),
34             foo_string_1: foo_string,
35             kill (foo_string),
36             mystream: openr (file_search (foo_name), e),
37             batch (mystream),
38             close (mystream),
39             foo_string_2: foo_string,
40             kill (foo_string),
41             mystream: openr (file_search (foo_UTF8_name), "UTF-8"),
42             batchload (mystream),
43             close (mystream),
44             foo_string_3: foo_string,
45             kill (foo_string),
46             mystream: openr (file_search (foo_UTF8_name), "UTF-8"),
47             batch (mystream),
48             close (mystream),
49             foo_string_4: foo_string,
50             is (foo_string_2 = foo_string_1
51                 and foo_string_3 = foo_string_2
52                 and foo_string_4 = foo_string_3)),
53  0);
56 test_encoding ("CP1252", "WINDOWS-1252");
57 true;
59 test_encoding ("ISO-8859-1", "ISO8859-1");
60 true;
62 test_encoding ("ISO-8859-2", "ISO8859-2");
63 true;
65 test_encoding ("ISO-8859-3", "ISO8859-3");
66 true;
68 test_encoding ("ISO-8859-4", "ISO8859-4");
69 true;
71 test_encoding ("ISO-8859-5", "ISO8859-5");
72 true;
74 test_encoding ("ISO-8859-6", "ISO8859-6");
75 true;
77 test_encoding ("ISO-8859-7", "ISO8859-7");
78 true;
80 test_encoding ("ISO-8859-8", "ISO8859-8");
81 true;
83 test_encoding ("ISO-8859-9", "ISO8859-9");
84 true;
86 test_encoding ("ISO-8859-10", "ISO8859-10");
87 true;
89 test_encoding ("ISO-8859-14", "ISO8859-14");
90 true;
92 test_encoding ("ISO-8859-15", "ISO8859-15");
93 true;