@@ -51,30 +51,32 @@ import TextParse: StringToken
51
51
@test tryparsenext (StringToken (String), " x\n y" ) |> unwrap == (" x" , 2 )
52
52
@test tryparsenext (StringToken (String), " x,y" ) |> unwrap == (" x" , 2 ) # test escape
53
53
54
- opts = LocalOpts (' ,' , ' "' , ' "' , true , true )
54
+ opts = LocalOpts (' ,' , false , ' "' , ' "' , true , true )
55
55
@test tryparsenext (StringToken (String), " " , opts) |> unwrap == (" " , 1 )
56
56
@test tryparsenext (StringToken (String), " \"\" " , opts) |> unwrap == (" \"\" " , 3 )
57
57
@test tryparsenext (StringToken (String), " x" , opts) |> unwrap == (" x" , 2 )
58
58
# test including new lines
59
59
@test tryparsenext (StringToken (String), " x\n y" , opts) |> unwrap == (" x\n y" , 4 )
60
60
@test tryparsenext (StringToken (String), " \" x\n y\" " , opts) |> unwrap == (" \" x\n y\" " , 6 )
61
61
62
- opts = LocalOpts (' ,' , ' "' , ' "' , false , true )
62
+ opts = LocalOpts (' ,' , false , ' "' , ' "' , false , true )
63
63
# test that includequotes option doesn't affect string
64
64
@test tryparsenext (StringToken (String), " \"\" " , opts) |> unwrap == (" \"\" " , 3 )
65
65
66
- opts = LocalOpts (' ,' , ' "' , ' \\ ' , false , false )
66
+ opts = LocalOpts (' ,' , false , ' "' , ' \\ ' , false , false )
67
67
str = " Owner 2 ”Vicepresident\"\" "
68
68
@test tryparsenext (Quoted (String), str) |> unwrap == (str, endof (str)+ 1 )
69
69
str1 = " \" Owner 2 ”Vicepresident\"\"\" "
70
70
@test tryparsenext (Quoted (String,quotechar= Nullable (' "' ), escapechar= Nullable (' "' )), str1) |> unwrap == (str, endof (str1)+ 1 )
71
71
72
+ opts = LocalOpts (' ,' , true , ' "' , ' \\ ' , false , false )
73
+ @test tryparsenext (StringToken (String), " x y" ,1 ,3 , opts) |> unwrap == (" x" , 2 )
72
74
end
73
75
74
76
75
77
import TextParse: Quoted, NAToken, Unknown
76
78
@testset " Quoted string parsing" begin
77
- opts = LocalOpts (' ,' , ' "' , ' "' , true , true )
79
+ opts = LocalOpts (' ,' , false , ' "' , ' "' , true , true )
78
80
79
81
@test tryparsenext (Quoted (String), " \"\" " ) |> unwrap == (" " , 3 )
80
82
@test tryparsenext (Quoted (String), " \"\" " , opts) |> unwrap == (" " , 3 )
@@ -103,12 +105,15 @@ import TextParse: Quoted, NAToken, Unknown
103
105
@test tryparsenext (Quoted (NAToken (fromtype (Int))), " \"\" " ) |> unwrap |> failedat == 3
104
106
@test tryparsenext (Quoted (NAToken (fromtype (Int))), " \" 21\" " ) |> unwrap |> unwrap == (21 , 5 )
105
107
@test isnull (tryparsenext (Quoted (NAToken (Unknown ())), " " ) |> unwrap |> first)
106
- opts = LocalOpts (' ,' , ' "' , ' "' , false , false )
108
+ opts = LocalOpts (' ,' , false , ' "' , ' "' , false , false )
107
109
@test tryparsenext (Quoted (StringToken (String)), " x," , opts) |> unwrap == (" x" , 2 )
108
110
109
111
# stripspaces
110
112
@test tryparsenext (Quoted (Percentage ()), " \" 10%\" ," , opts) |> unwrap == (0.1 , 7 )
111
113
@test tryparsenext (Quoted (String), " \" 10%\" ," , opts) |> unwrap == (" 10%" , 7 )
114
+ opts = LocalOpts (' ,' , true ,' "' , ' "' , false , false )
115
+ @test tryparsenext (Quoted (StringToken (String)), " \" x y\" y" , opts) |> unwrap == (" x y" , 6 )
116
+ @test tryparsenext (Quoted (StringToken (String)), " x y" , opts) |> unwrap == (" x" , 2 )
112
117
end
113
118
114
119
@testset " NA parsing" begin
@@ -121,21 +126,24 @@ end
121
126
import TextParse: Field
122
127
@testset " Field parsing" begin
123
128
f = fromtype (Int)
124
- @test tryparsenext (Field (f,delim= ' ,' ), " 12,3" ) |> unwrap == (12 , 4 )
125
- @test tryparsenext (Field (f,delim= ' ,' ), " 12 ,3" ) |> unwrap == (12 , 5 )
126
- @test tryparsenext (Field (f,delim= ' ,' ), " 12 ,3" ) |> unwrap == (12 , 6 )
127
- @test tryparsenext (Field (f,delim= ' \t ' ), " 12\t 3" ) |> unwrap == (12 , 4 )
128
- @test tryparsenext (Field (f,delim= ' \t ' ), " 12 \t 3" ) |> unwrap == (12 , 5 )
129
- @test tryparsenext (Field (f,delim= ' \t ' ), " 12 \t 3" ) |> unwrap == (12 , 6 )
130
- @test tryparsenext (Field (f,spacedelim= true ), " 12 3" ) |> unwrap == (12 , 5 )
131
- @test tryparsenext (Field (f,spacedelim= true ), " 12 3" ) |> unwrap == (12 , 5 )
132
- @test tryparsenext (Field (f,spacedelim= true , ignore_end_whitespace= false ), " 12 \t 3" ) |> unwrap == (12 , 5 )
133
- @test tryparsenext (Field (f,ignore_end_whitespace= false , delim= ' ' ), " 12 3" ) |> unwrap == (12 , 4 )
134
- @test tryparsenext (Field (f,ignore_end_whitespace= false , delim= ' \t ' ), " 12 \t 3" ) |> failedat == 3
135
- @test tryparsenext (Field (f,ignore_end_whitespace= false , delim= ' \t ' ), " 12\t 3" ) |> unwrap == (12 ,5 )
136
- @test tryparsenext (Field (f,eoldelim= true , delim= ' \t ' ), " 12\n " ) |> unwrap == (12 ,5 )
129
+ @test tryparsenext (Field (f), " 12,3" ) |> unwrap == (12 , 4 )
130
+ @test tryparsenext (Field (f), " 12 ,3" ) |> unwrap == (12 , 5 )
131
+ @test tryparsenext (Field (f), " 12 ,3" ) |> unwrap == (12 , 6 )
132
+ opts = LocalOpts (' \t ' , false , ' x' ,' x' ,true ,false )
133
+ @test tryparsenext (Field (f), " 12\t 3" , 1 , 4 , opts) |> unwrap == (12 , 4 )
134
+ @test tryparsenext (Field (f), " 12 \t 3" , 1 , 5 , opts) |> unwrap == (12 , 5 )
135
+ @test tryparsenext (Field (f), " 12 \t 3" , 1 , 6 , opts) |> unwrap == (12 , 6 )
136
+ opts = LocalOpts (' \t ' , true , ' x' ,' x' ,true ,false )
137
+ @test tryparsenext (Field (f), " 12 3" , 1 , 5 , opts) |> unwrap == (12 , 5 )
138
+ @test tryparsenext (Field (f, ignore_end_whitespace= false ), " 12 \t 3" , 1 ,6 , opts) |> unwrap == (12 , 5 )
139
+ opts = LocalOpts (' ' , false , ' x' ,' x' ,false , false )
140
+ @test tryparsenext (Field (f,ignore_end_whitespace= false ), " 12 3" , 1 ,4 ,opts) |> unwrap == (12 , 4 )
141
+ # @test tryparsenext(Field(f,ignore_end_whitespace=false), "12 \t3", 1,5,opts) |> failedat == 3
142
+ opts = LocalOpts (' \t ' , false , ' x' ,' x' ,false , false )
143
+ @test tryparsenext (Field (f,ignore_end_whitespace= false ), " 12\t 3" , 1 , 6 , opts) |> unwrap == (12 ,5 )
144
+ @test tryparsenext (Field (f,eoldelim= true ), " 12\n " , 1 , 4 , opts) |> unwrap == (12 ,5 )
145
+ @test tryparsenext (Field (f,eoldelim= true ), " 12\n\r\n " , 1 , 5 , opts) |> unwrap == (12 ,6 )
137
146
@test tryparsenext (Field (f,eoldelim= true ), " 12" ) |> unwrap == (12 ,4 )
138
- @test tryparsenext (Field (f,eoldelim= true , delim= ' \t ' ), " 12\n\r\n " ) |> unwrap == (12 ,6 )
139
147
end
140
148
141
149
@@ -151,26 +159,26 @@ end
151
159
152
160
import TextParse: UseOne
153
161
@testset " UseOne" begin
154
- f = UseOne ((Field (fromtype (Int), delim = ' ; ' ), Field (fromtype (Float64)), Field (fromtype (Int), eoldelim= true )), 3 )
155
- @test tryparsenext (f, " 1; 33.21, 45" , 1 , 12 ) |> unwrap == (45 , 13 )
162
+ f = UseOne ((Field (fromtype (Int)), Field (fromtype (Float64)), Field (fromtype (Int), eoldelim= true )), 3 )
163
+ @test tryparsenext (f, " 1, 33.21, 45" , 1 , 12 ) |> unwrap == (45 , 13 )
156
164
end
157
165
158
166
import TextParse: Repeated
159
167
@testset " Repeated" begin
160
- f = Repeated (Field (fromtype (Int), delim = ' ; ' ), 3 )
161
- @test tryparsenext (f, " 1; 33; 45; " , 1 , 12 ) |> unwrap == ((1 ,33 ,45 ), 11 )
168
+ f = Repeated (Field (fromtype (Int)), 3 )
169
+ @test tryparsenext (f, " 1, 33, 45, " , 1 , 12 ) |> unwrap == ((1 ,33 ,45 ), 11 )
162
170
163
- inp = join (map (string, [1 : 45 ;]), " ; " ) * " ; "
171
+ inp = join (map (string, [1 : 45 ;]), " , " ) * " , "
164
172
out = ntuple (identity, 45 )
165
- f2 = Repeated (Field (fromtype (Int), delim = ' ; ' ), 45 )
173
+ f2 = Repeated (Field (fromtype (Int)), 45 )
166
174
@test tryparsenext (f2, inp, 1 , length (inp)) |> unwrap == (out, length (inp))
167
175
# @benchmark tryparsenext($f2, $inp, 1, length($inp))
168
176
end
169
177
170
178
171
179
import TextParse: quotedsplit
172
180
@testset " quotedsplit" begin
173
- opts = LocalOpts (' ,' , ' "' , ' \\ ' , false , false )
181
+ opts = LocalOpts (' ,' , false , ' "' , ' \\ ' , false , false )
174
182
@test quotedsplit (" x" , opts, false , 1 , 1 ) == [" x" ]
175
183
@test quotedsplit (" x, y" , opts, false , 1 , 4 ) == [" x" , " y" ]
176
184
@test quotedsplit (" \" x\" , \" y\" " , opts,false , 1 , 8 ) == [" x" , " y" ]
@@ -180,7 +188,7 @@ import TextParse: quotedsplit
180
188
@test quotedsplit (" ," , opts, true , 1 , 1 ) == [" " , " " ]
181
189
@test quotedsplit (" , " , opts, false , 1 , 2 ) == [" " , " " ]
182
190
str = " 1, \" x \"\" y\"\" z\" , 1"
183
- qopts = LocalOpts (' ,' , ' "' , ' "' , false , false )
191
+ qopts = LocalOpts (' ,' , false , ' "' , ' "' , false , false )
184
192
@test quotedsplit (str, qopts,true , 1 , endof (str)) == [" 1" , " \" x \"\" y\"\" z\" " , " 1" ]
185
193
end
186
194
@@ -198,7 +206,7 @@ import TextParse: LocalOpts, readcolnames
198
206
str2 = """
199
207
a, " b", "c", "d\\ " e "
200
208
"""
201
- opts = LocalOpts (' ,' , ' "' , ' \\ ' , false , false )
209
+ opts = LocalOpts (' ,' , false , ' "' , ' \\ ' , false , false )
202
210
@test readcolnames (str1, opts, 1 , String[]) == ([" a" , " b" , " c d" , " e" ], 13 )
203
211
@test readcolnames (" \n\r $str1 " , opts, 3 , Dict (3 => " x" )) == ([" a" , " b" , " x" , " e" ], 15 )
204
212
# @test readcolnames("$str2", opts, 3, Dict(3=>"x")) == (["a", "b", "x", "d\" e"], 24)
@@ -265,7 +273,7 @@ import TextParse: guesscolparsers
265
273
x y,1.0,1,
266
274
,1.0,,1
267
275
"""
268
- opts = LocalOpts (' ,' , ' "' , ' \\ ' , false , false )
276
+ opts = LocalOpts (' ,' , false , ' "' , ' \\ ' , false , false )
269
277
_, pos = readcolnames (str1, opts, 1 , String[])
270
278
testtill (i, colparsers= []) = guesscolparsers (str1, String[], opts, pos, i, colparsers)
271
279
@test testtill (0 ) |> first == Any[]
300
308
301
309
@testset " date parsing" begin
302
310
tok = DateTimeToken (DateTime, dateformat " yyyy-mm-dd HH:MM:SS" )
303
- opts = LocalOpts (' y' , ' "' , ' \\ ' , false , false )
311
+ opts = LocalOpts (' y' , false , ' "' , ' \\ ' , false , false )
304
312
str = " 1970-02-02 02:20:20"
305
313
@test tryparsenext (tok, str, 1 , length (str), opts) |> unwrap == (DateTime (" 1970-02-02T02:20:20" ), length (str)+ 1 )
306
314
@test tryparsenext (tok, str* " x" , 1 , length (str)+ 1 , opts) |> unwrap == (DateTime (" 1970-02-02T02:20:20" ), length (str)+ 1 )
422
430
1,1,1
423
431
"""
424
432
@test _csvread (str1, skiplines_begin= 3 ) == (([1 ], [1 ], [1 ]), String[" x" , " y" ," z" ])
433
+
434
+ s = """
435
+ x,y z
436
+ a,b 1
437
+ e 3
438
+ """
439
+ @test _csvread (s, spacedelim= true ) == (([" a,b" , " e" ],[1 ,3 ]), [" x,y" ," z" ])
425
440
end
426
441
427
442
using PooledArrays
0 commit comments