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

Function test_non_std_escape

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

Source from the content-addressed store, hash-verified

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() {

Callers

nothing calls this directly

Calls 6

with_escapeMethod · 0.45
with_headerMethod · 0.45
buildMethod · 0.45
nextMethod · 0.45
columnMethod · 0.45
as_anyMethod · 0.45

Tested by

no test coverage detected