()
| 2258 | |
| 2259 | #[test] |
| 2260 | fn test_non_std_escape() { |
| 2261 | let schema = Schema::new(vec![ |
| 2262 | Field::new("text1", DataType::Utf8, false), |
| 2263 | Field::new("text2", DataType::Utf8, false), |
| 2264 | ]); |
| 2265 | let builder = ReaderBuilder::new(Arc::new(schema)) |
| 2266 | .with_header(false) |
| 2267 | .with_escape(b'\\'); // default is None, change to \ |
| 2268 | |
| 2269 | let mut csv_text = Vec::new(); |
| 2270 | let mut csv_writer = std::io::Cursor::new(&mut csv_text); |
| 2271 | for index in 0..10 { |
| 2272 | let text1 = format!("id{index:}"); |
| 2273 | let text2 = format!("value\\\"{index:}"); |
| 2274 | csv_writer |
| 2275 | .write_fmt(format_args!("\"{text1}\",\"{text2}\"\r\n")) |
| 2276 | .unwrap(); |
| 2277 | } |
| 2278 | let mut csv_reader = std::io::Cursor::new(&csv_text); |
| 2279 | let mut reader = builder.build(&mut csv_reader).unwrap(); |
| 2280 | let batch = reader.next().unwrap().unwrap(); |
| 2281 | let col0 = batch.column(0); |
| 2282 | assert_eq!(col0.len(), 10); |
| 2283 | let col0_arr = col0.as_any().downcast_ref::<StringArray>().unwrap(); |
| 2284 | assert_eq!(col0_arr.value(0), "id0"); |
| 2285 | let col1 = batch.column(1); |
| 2286 | assert_eq!(col1.len(), 10); |
| 2287 | let col1_arr = col1.as_any().downcast_ref::<StringArray>().unwrap(); |
| 2288 | assert_eq!(col1_arr.value(5), "value\"5"); |
| 2289 | } |
| 2290 | |
| 2291 | #[test] |
| 2292 | fn test_non_std_terminator() { |
nothing calls this directly
no test coverage detected