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

Function test_write_csv_binary

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

Source from the content-addressed store, hash-verified

1103
1104 #[test]
1105 fn test_write_csv_binary() {
1106 let fixed_size = 8;
1107 let schema = SchemaRef::new(Schema::new(vec![
1108 Field::new("c1", DataType::Binary, true),
1109 Field::new("c2", DataType::FixedSizeBinary(fixed_size), true),
1110 Field::new("c3", DataType::LargeBinary, true),
1111 ]));
1112 let mut c1_builder = BinaryBuilder::new();
1113 c1_builder.append_value(b"Homer");
1114 c1_builder.append_value(b"Bart");
1115 c1_builder.append_null();
1116 c1_builder.append_value(b"Ned");
1117 let mut c2_builder = FixedSizeBinaryBuilder::new(fixed_size);
1118 c2_builder.append_value(b"Simpson ").unwrap();
1119 c2_builder.append_value(b"Simpson ").unwrap();
1120 c2_builder.append_null();
1121 c2_builder.append_value(b"Flanders").unwrap();
1122 let mut c3_builder = LargeBinaryBuilder::new();
1123 c3_builder.append_null();
1124 c3_builder.append_null();
1125 c3_builder.append_value(b"Comic Book Guy");
1126 c3_builder.append_null();
1127
1128 let batch = RecordBatch::try_new(
1129 schema,
1130 vec![
1131 Arc::new(c1_builder.finish()) as ArrayRef,
1132 Arc::new(c2_builder.finish()) as ArrayRef,
1133 Arc::new(c3_builder.finish()) as ArrayRef,
1134 ],
1135 )
1136 .unwrap();
1137
1138 let mut buf = Vec::new();
1139 let builder = WriterBuilder::new();
1140 let mut writer = builder.build(&mut buf);
1141 writer.write(&batch).unwrap();
1142 drop(writer);
1143 assert_eq!(
1144 "\
1145 c1,c2,c3\n\
1146 486f6d6572,53696d70736f6e20,\n\
1147 42617274,53696d70736f6e20,\n\
1148 ,,436f6d696320426f6f6b20477579\n\
1149 4e6564,466c616e64657273,\n\
1150 ",
1151 String::from_utf8(buf).unwrap()
1152 );
1153 }
1154
1155 #[test]
1156 fn test_write_csv_whitespace_handling() {

Callers

nothing calls this directly

Calls 5

try_newFunction · 0.85
append_valueMethod · 0.45
append_nullMethod · 0.45
buildMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected