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

Function test_csv_reader_with_decimal_3264

arrow-csv/src/reader/mod.rs:1381–1426  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1379
1380 #[test]
1381 fn test_csv_reader_with_decimal_3264() {
1382 let schema = Arc::new(Schema::new(vec![
1383 Field::new("city", DataType::Utf8, false),
1384 Field::new("lat", DataType::Decimal32(9, 6), false),
1385 Field::new("lng", DataType::Decimal64(16, 6), false),
1386 ]));
1387
1388 let file = File::open("test/data/decimal_test.csv").unwrap();
1389
1390 let mut csv = ReaderBuilder::new(schema).build(file).unwrap();
1391 let batch = csv.next().unwrap().unwrap();
1392 // access data from a primitive array
1393 let lat = batch
1394 .column(1)
1395 .as_any()
1396 .downcast_ref::<Decimal32Array>()
1397 .unwrap();
1398
1399 assert_eq!("57.653484", lat.value_as_string(0));
1400 assert_eq!("53.002666", lat.value_as_string(1));
1401 assert_eq!("52.412811", lat.value_as_string(2));
1402 assert_eq!("51.481583", lat.value_as_string(3));
1403 assert_eq!("12.123456", lat.value_as_string(4));
1404 assert_eq!("50.760000", lat.value_as_string(5));
1405 assert_eq!("0.123000", lat.value_as_string(6));
1406 assert_eq!("123.000000", lat.value_as_string(7));
1407 assert_eq!("123.000000", lat.value_as_string(8));
1408 assert_eq!("-50.760000", lat.value_as_string(9));
1409
1410 let lng = batch
1411 .column(2)
1412 .as_any()
1413 .downcast_ref::<Decimal64Array>()
1414 .unwrap();
1415
1416 assert_eq!("-3.335724", lng.value_as_string(0));
1417 assert_eq!("-2.179404", lng.value_as_string(1));
1418 assert_eq!("-1.778197", lng.value_as_string(2));
1419 assert_eq!("-3.179090", lng.value_as_string(3));
1420 assert_eq!("-3.179090", lng.value_as_string(4));
1421 assert_eq!("0.290472", lng.value_as_string(5));
1422 assert_eq!("0.290472", lng.value_as_string(6));
1423 assert_eq!("0.290472", lng.value_as_string(7));
1424 assert_eq!("0.290472", lng.value_as_string(8));
1425 assert_eq!("0.290472", lng.value_as_string(9));
1426 }
1427
1428 #[test]
1429 fn test_csv_from_buf_reader() {

Callers

nothing calls this directly

Calls 4

buildMethod · 0.45
nextMethod · 0.45
as_anyMethod · 0.45
columnMethod · 0.45

Tested by

no test coverage detected