You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
831 B
38 lines
831 B
2 years ago
|
import spectrum from "csv-spectrum";
|
||
|
import { parseString } from "fast-csv";
|
||
|
import { promisify } from "util";
|
||
|
import test from "ava";
|
||
|
|
||
|
const simple_parse = (raw_csv) => {
|
||
|
const rows = raw_csv.split("\n");
|
||
|
const result = [];
|
||
|
|
||
|
for(let row of rows) {
|
||
|
result.push(row.split(','));
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
const spectrum_samples = promisify(spectrum);
|
||
|
|
||
|
test('spectrum samples match', async t => {
|
||
|
const samples = await spectrum_samples();
|
||
|
|
||
|
for(let sample of samples) {
|
||
|
const raw_csv = sample.csv.toString();
|
||
|
const good = [];
|
||
|
|
||
|
const count = await new Promise((res, rej) => {
|
||
|
parseString(raw_csv)
|
||
|
.on('error', err => rej(err))
|
||
|
.on('data', row => good.push(row))
|
||
|
.on('end', rowCount => res(rowCount));
|
||
|
});
|
||
|
|
||
|
const ours = simple_parse(raw_csv);
|
||
|
|
||
|
t.is(ours, good);
|
||
|
}
|
||
|
})
|