csv: fix missing last column
parent
f725b93019
commit
b1459ade69
|
@ -1,7 +1,7 @@
|
||||||
import encoding.csv
|
import encoding.csv
|
||||||
|
|
||||||
fn test_encoding_csv_reader() {
|
fn test_encoding_csv_reader() {
|
||||||
data := 'name,email,phone,other\njoe,joe@blow.com,0400000000,test\nsam,sam@likesham.com,0433000000,"test quoted field"\n#chris,chris@nomail.com,94444444,"commented row"\nmike,mike@mikesbikes.com,98888888,"bike store"\n'
|
data := 'name,email,phone,other\njoe,joe@blow.com,0400000000,test\nsam,sam@likesham.com,0433000000,"test quoted field"\n#chris,chris@nomail.com,94444444,"commented row"\n'
|
||||||
mut csv_reader := csv.new_reader(data)
|
mut csv_reader := csv.new_reader(data)
|
||||||
|
|
||||||
mut row_count := 0
|
mut row_count := 0
|
||||||
|
@ -12,21 +12,26 @@ fn test_encoding_csv_reader() {
|
||||||
row_count++
|
row_count++
|
||||||
if row_count== 1 {
|
if row_count== 1 {
|
||||||
assert row[0] == 'name'
|
assert row[0] == 'name'
|
||||||
|
assert row[1] == 'email'
|
||||||
|
assert row[2] == 'phone'
|
||||||
|
assert row[3] == 'other'
|
||||||
}
|
}
|
||||||
if row_count == 2 {
|
if row_count == 2 {
|
||||||
assert row[0] == 'joe'
|
assert row[0] == 'joe'
|
||||||
|
assert row[1] == 'joe@blow.com'
|
||||||
|
assert row[2] == '0400000000'
|
||||||
|
assert row[3] == 'test'
|
||||||
}
|
}
|
||||||
if row_count == 3 {
|
if row_count == 3 {
|
||||||
assert row[0] == 'sam'
|
assert row[0] == 'sam'
|
||||||
|
assert row[1] == 'sam@likesham.com'
|
||||||
|
assert row[2] == '0433000000'
|
||||||
// quoted field
|
// quoted field
|
||||||
assert row[3] == 'test quoted field'
|
assert row[3] == 'test quoted field'
|
||||||
}
|
}
|
||||||
if row_count == 4 {
|
|
||||||
assert row[0] == 'mike'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
assert row_count == 4
|
assert row_count == 3
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_encoding_csv_writer() {
|
fn test_encoding_csv_writer() {
|
||||||
|
|
|
@ -115,6 +115,7 @@ fn (r mut Reader) read_record() ?[]string {
|
||||||
// QTODO i = ...
|
// QTODO i = ...
|
||||||
j := line.index(r.delimiter.str()) or {
|
j := line.index(r.delimiter.str()) or {
|
||||||
// last
|
// last
|
||||||
|
fields << line[..line.len]
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
i = j
|
i = j
|
||||||
|
|
Loading…
Reference in New Issue