MCPcopy Create free account
hub / github.com/apache/arrow-rs / test_basic

Function test_basic

arrow-csv/src/reader/records.rs:320–367  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

318
319 #[test]
320 fn test_basic() {
321 let csv = [
322 "foo,bar,baz",
323 "a,b,c",
324 "12,3,5",
325 "\"asda\"\"asas\",\"sdffsnsd\", as",
326 ]
327 .join("\n");
328
329 let mut expected = vec![
330 vec!["foo", "bar", "baz"],
331 vec!["a", "b", "c"],
332 vec!["12", "3", "5"],
333 vec!["asda\"asas", "sdffsnsd", " as"],
334 ]
335 .into_iter();
336
337 let mut reader = BufReader::with_capacity(3, Cursor::new(csv.as_bytes()));
338 let mut decoder = RecordDecoder::new(Reader::new(), 3, false);
339
340 loop {
341 let to_read = 3;
342 let mut read = 0;
343 loop {
344 let buf = reader.fill_buf().unwrap();
345 let (records, bytes) = decoder.decode(buf, to_read - read).unwrap();
346
347 reader.consume(bytes);
348 read += records;
349
350 if read == to_read || bytes == 0 {
351 break;
352 }
353 }
354 if read == 0 {
355 break;
356 }
357
358 let b = decoder.flush().unwrap();
359 b.iter().zip(&mut expected).for_each(|(record, expected)| {
360 let actual = (0..3)
361 .map(|field_idx| record.get(field_idx))
362 .collect::<Vec<_>>();
363 assert_eq!(actual, expected)
364 });
365 }
366 assert!(expected.next().is_none());
367 }
368
369 #[test]
370 fn test_invalid_fields() {

Callers

nothing calls this directly

Calls 10

joinMethod · 0.80
zipMethod · 0.80
into_iterMethod · 0.45
as_bytesMethod · 0.45
fill_bufMethod · 0.45
decodeMethod · 0.45
consumeMethod · 0.45
flushMethod · 0.45
iterMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected