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

Function test_write_csv_using_rfc3339

arrow-csv/src/writer.rs:982–1026  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

980
981 #[test]
982 fn test_write_csv_using_rfc3339() {
983 let schema = Schema::new(vec![
984 Field::new(
985 "c1",
986 DataType::Timestamp(TimeUnit::Millisecond, Some("+00:00".into())),
987 true,
988 ),
989 Field::new("c2", DataType::Timestamp(TimeUnit::Millisecond, None), true),
990 Field::new("c3", DataType::Date32, false),
991 Field::new("c4", DataType::Time32(TimeUnit::Second), false),
992 ]);
993
994 let c1 = TimestampMillisecondArray::from(vec![Some(1555584887378), Some(1635577147000)])
995 .with_timezone("+00:00".to_string());
996 let c2 = TimestampMillisecondArray::from(vec![Some(1555584887378), Some(1635577147000)]);
997 let c3 = Date32Array::from(vec![3, 2]);
998 let c4 = Time32SecondArray::from(vec![1234, 24680]);
999
1000 let batch = RecordBatch::try_new(
1001 Arc::new(schema),
1002 vec![Arc::new(c1), Arc::new(c2), Arc::new(c3), Arc::new(c4)],
1003 )
1004 .unwrap();
1005
1006 let mut file = tempfile::tempfile().unwrap();
1007
1008 let builder = WriterBuilder::new();
1009 let mut writer = builder.build(&mut file);
1010 let batches = vec![&batch];
1011 for batch in batches {
1012 writer.write(batch).unwrap();
1013 }
1014 drop(writer);
1015
1016 file.rewind().unwrap();
1017 let mut buffer: Vec<u8> = vec![];
1018 file.read_to_end(&mut buffer).unwrap();
1019
1020 assert_eq!(
1021 "c1,c2,c3,c4
10222019-04-18T10:54:47.378Z,2019-04-18T10:54:47.378,1970-01-04,00:20:34
10232021-10-30T06:59:07Z,2021-10-30T06:59:07,1970-01-03,06:51:20\n",
1024 String::from_utf8(buffer).unwrap()
1025 );
1026 }
1027
1028 #[test]
1029 fn test_write_csv_tz_format() {

Callers

nothing calls this directly

Calls 4

try_newFunction · 0.85
with_timezoneMethod · 0.45
buildMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected