()
| 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() { |
nothing calls this directly
no test coverage detected