()
| 2226 | |
| 2227 | #[test] |
| 2228 | fn test_non_std_quote() { |
| 2229 | let schema = Schema::new(vec![ |
| 2230 | Field::new("text1", DataType::Utf8, false), |
| 2231 | Field::new("text2", DataType::Utf8, false), |
| 2232 | ]); |
| 2233 | let builder = ReaderBuilder::new(Arc::new(schema)) |
| 2234 | .with_header(false) |
| 2235 | .with_quote(b'~'); // default is ", change to ~ |
| 2236 | |
| 2237 | let mut csv_text = Vec::new(); |
| 2238 | let mut csv_writer = std::io::Cursor::new(&mut csv_text); |
| 2239 | for index in 0..10 { |
| 2240 | let text1 = format!("id{index:}"); |
| 2241 | let text2 = format!("value{index:}"); |
| 2242 | csv_writer |
| 2243 | .write_fmt(format_args!("~{text1}~,~{text2}~\r\n")) |
| 2244 | .unwrap(); |
| 2245 | } |
| 2246 | let mut csv_reader = std::io::Cursor::new(&csv_text); |
| 2247 | let mut reader = builder.build(&mut csv_reader).unwrap(); |
| 2248 | let batch = reader.next().unwrap().unwrap(); |
| 2249 | let col0 = batch.column(0); |
| 2250 | assert_eq!(col0.len(), 10); |
| 2251 | let col0_arr = col0.as_any().downcast_ref::<StringArray>().unwrap(); |
| 2252 | assert_eq!(col0_arr.value(0), "id0"); |
| 2253 | let col1 = batch.column(1); |
| 2254 | assert_eq!(col1.len(), 10); |
| 2255 | let col1_arr = col1.as_any().downcast_ref::<StringArray>().unwrap(); |
| 2256 | assert_eq!(col1_arr.value(5), "value5"); |
| 2257 | } |
| 2258 | |
| 2259 | #[test] |
| 2260 | fn test_non_std_escape() { |
nothing calls this directly
no test coverage detected