| 1282 | |
| 1283 | #[test] |
| 1284 | fn test_csv() { |
| 1285 | let schema = Arc::new(Schema::new(vec![ |
| 1286 | Field::new("city", DataType::Utf8, false), |
| 1287 | Field::new("lat", DataType::Float64, false), |
| 1288 | Field::new("lng", DataType::Float64, false), |
| 1289 | ])); |
| 1290 | |
| 1291 | let file = File::open("test/data/uk_cities.csv").unwrap(); |
| 1292 | let mut csv = ReaderBuilder::new(schema.clone()).build(file).unwrap(); |
| 1293 | assert_eq!(schema, csv.schema()); |
| 1294 | let batch = csv.next().unwrap().unwrap(); |
| 1295 | assert_eq!(37, batch.num_rows()); |
| 1296 | assert_eq!(3, batch.num_columns()); |
| 1297 | |
| 1298 | // access data from a primitive array |
| 1299 | let lat = batch.column(1).as_primitive::<Float64Type>(); |
| 1300 | assert_eq!(57.653484, lat.value(0)); |
| 1301 | |
| 1302 | // access data from a string array (ListArray<u8>) |
| 1303 | let city = batch.column(0).as_string::<i32>(); |
| 1304 | |
| 1305 | assert_eq!("Aberdeen, Aberdeen City, UK", city.value(13)); |
| 1306 | } |
| 1307 | |
| 1308 | #[test] |
| 1309 | fn test_csv_schema_metadata() { |