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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
(load "../common")
(defmacro mtest-csv (. pairs)
(tree-bind (data expected) (flow pairs (tuples 2) transpose)
^(mtest ,*(mappend (ret ^((get-csv ,(regsub "#" "\"" @1))
,(mapcar (op regsub "#" "\"") @2)))
data expected))))
(mtest-csv
"" #("")
"," #("" "")
",," #("" "" ""))
(mtest-csv
"\r" #("\r")
"\r\n" #("")
"\r\r" #("\r\r")
"\r\r\n" #("\r")
"\r\r" #("\r\r")
"\r\r\r" #("\r\r\r")
"\r\r\r\n" #("\r\r")
"\r,\r" #("\r" "\r")
"\r\n,\r" #("")
"\r\r\n,\r" #("\r")
",\r\r" #("" "\r\r")
",\r\n" #("" ""))
(mtest-csv
"a\r" #("a\r")
"a\r\n" #("a")
"a\r\r" #("a\r\r")
"a\r\r\n" #("a\r")
"a\r\r" #("a\r\r")
"a\r\r\r" #("a\r\r\r")
"a\r\r\r\n" #("a\r\r")
"a\r,a\r" #("a\r" "a\r")
"a\r\n,a\r" #("a")
"a\r\r\n,a\r" #("a\r")
"a,a\r\r" #("a" "a\r\r")
"a,\r\r" #("a" "\r\r")
",a\r\n" #("" "a"))
(mtest-csv
"##" #("")
"#" #("")
"#,#" #(",")
"##,##" #("" "")
"####" #("#")
"##a#" #("a#")
"#\r#" #("\r")
"#\n#" #("\n")
"#\r\n#" #("\n")
"#\r\r\n#" #("\r\n")
"#\r\r\r\n#" #("\r\r\n")
"##\r\n#" #("")
"##\r\r\n#" #("\r")
"##\r\r\r\n#" #("\r\r"))
(mtest-csv
"##\n" #("")
"#\n" #("\n")
"#,#\n" #(",")
"##,##\n" #("" "")
"####\n" #("#")
"##a#\n" #("a#")
"#\r#\n" #("\r")
"#\n#\n" #("\n")
"#\r\n#\n" #("\n")
"#\r\r\n#\n" #("\r\n")
"#\r\r\r\n#\n" #("\r\r\n")
"##\r\n#\n" #("")
"##\r\r\n#\n" #("\r")
"##\r\r\r\n#\n" #("\r\r"))
(mtest-csv
"#\r##\r#" #("\r#\r")
"#\n##\n#" #("\n#\n")
"#\r\n##\r\n#" #("\n#\n"))
(mtest-csv
"a#b" #("a#b")
"a##b" #("a##b")
"a###b" #("a###b"))
(mtest-csv
"#a#b" #("ab")
"ab#cd#ef" #("ab#cd#ef"))
(mtest-csv
"a," #("a" "")
",a" #("" "a")
"a,b,c" #("a" "b" "c")
"#a#,b,c" #("a" "b" "c")
"a,#b#,c" #("a" "b" "c")
"a,b,#c#" #("a" "b" "c")
"#a#,b,#c#" #("a" "b" "c")
"#a#,#b#,#c#" #("a" "b" "c"))
(mtest-csv
"a,\r\n" #("a" "")
",a\r\n" #("" "a")
"a,b,c\r\n" #("a" "b" "c")
"#a#,b,c\r\n" #("a" "b" "c")
"a,#b#,c\r\n" #("a" "b" "c")
"a,b,#c#\r\n" #("a" "b" "c")
"#a#,b,#c#\r\n" #("a" "b" "c")
"#a#,#b#,#c#\r\n" #("a" "b" "c"))
(mtest-csv
"a,\n" #("a" "")
",a\n" #("" "a")
"a,b,c\n" #("a" "b" "c")
"#a#,b,c\n" #("a" "b" "c")
"a,#b#,c\n" #("a" "b" "c")
"a,b,#c#\n" #("a" "b" "c")
"#a#,b,#c#\n" #("a" "b" "c")
"#a#,#b#,#c#\n" #("a" "b" "c"))
(mtest-csv
"a,\r" #("a" "\r")
",a\r" #("" "a\r")
"a,b,c\r" #("a" "b" "c\r")
"#a#,b,c\r" #("a" "b" "c\r")
"a,#b#,c\r" #("a" "b" "c\r")
"a,b,#c#\r" #("a" "b" "c\r")
"#a#,b,#c#\r" #("a" "b" "c\r")
"#a#,#b#,#c#\r" #("a" "b" "c\r"))
(mtest-csv
"a,\n" #("a" "")
",a\n" #("" "a")
"a,b,c\n" #("a" "b" "c")
"#a#,b,c\n" #("a" "b" "c")
"a,#b#,c\n" #("a" "b" "c")
"a,b,#c#\n" #("a" "b" "c")
"#a#,b,#c#\n" #("a" "b" "c")
"#a#,#b#,#c#\n" #("a" "b" "c"))
(mtest-csv
"a,\r" #("a" "\r")
",a\r" #("" "a\r")
"a,b,c\r" #("a" "b" "c\r")
"#a#,b,c\r" #("a" "b" "c\r")
"a,#b#,c\r" #("a" "b" "c\r")
"a,b,#c#\r" #("a" "b" "c\r")
"#a#,b,#c#\r" #("a" "b" "c\r")
"#a#,#b#,#c#\r" #("a" "b" "c\r"))
(mtest-csv
"aa,\r\n" #("aa" "")
",aa\r\n" #("" "aa")
"aa,bb,cc\r\n" #("aa" "bb" "cc")
"#aa#,bb,cc\r\n" #("aa" "bb" "cc")
"aa,#bb#,cc\r\n" #("aa" "bb" "cc")
"aa,bb,#cc#\r\n" #("aa" "bb" "cc")
"#aa#,bb,#cc#\r\n" #("aa" "bb" "cc")
"#aa#,#bb#,#cc#\r\n" #("aa" "bb" "cc"))
(mtest-csv
"#Hello, ##Bob##!" #("Hello, #Bob#!")
"#Hello, ##Bob##!\r" #("Hello, #Bob#!\r")
"#Hello, ##Bob##!\n" #("Hello, #Bob#!\n")
"#Hello, ##Bob##!\r\n" #("Hello, #Bob#!\n")
"#Hello, ##Bob##!#\r\n" #("Hello, #Bob#!")
"#Hello, ##Bob##!#\n" #("Hello, #Bob#!")
"#Hello, ##Bob##!#\r" #("Hello, #Bob#!\r"))
|