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

Function test_row_convert_byte_array

parquet/src/record/api.rs:1182–1266  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1180
1181 #[test]
1182 fn test_row_convert_byte_array() {
1183 // UTF8
1184 let descr = make_column_descr![PhysicalType::BYTE_ARRAY, ConvertedType::UTF8];
1185 let value = ByteArray::from(vec![b'A', b'B', b'C', b'D']);
1186 let row = Field::convert_byte_array(&descr, value);
1187 assert_eq!(row.unwrap(), Field::Str("ABCD".to_string()));
1188
1189 // ENUM
1190 let descr = make_column_descr![PhysicalType::BYTE_ARRAY, ConvertedType::ENUM];
1191 let value = ByteArray::from(vec![b'1', b'2', b'3']);
1192 let row = Field::convert_byte_array(&descr, value);
1193 assert_eq!(row.unwrap(), Field::Str("123".to_string()));
1194
1195 // JSON
1196 let descr = make_column_descr![PhysicalType::BYTE_ARRAY, ConvertedType::JSON];
1197 let value = ByteArray::from(vec![b'{', b'"', b'a', b'"', b':', b'1', b'}']);
1198 let row = Field::convert_byte_array(&descr, value);
1199 assert_eq!(row.unwrap(), Field::Str("{\"a\":1}".to_string()));
1200
1201 // NONE
1202 let descr = make_column_descr![PhysicalType::BYTE_ARRAY, ConvertedType::NONE];
1203 let value = ByteArray::from(vec![1, 2, 3, 4, 5]);
1204 let row = Field::convert_byte_array(&descr, value.clone());
1205 assert_eq!(row.unwrap(), Field::Bytes(value));
1206
1207 // BSON
1208 let descr = make_column_descr![PhysicalType::BYTE_ARRAY, ConvertedType::BSON];
1209 let value = ByteArray::from(vec![1, 2, 3, 4, 5]);
1210 let row = Field::convert_byte_array(&descr, value.clone());
1211 assert_eq!(row.unwrap(), Field::Bytes(value));
1212
1213 // DECIMAL
1214 let descr = make_column_descr![PhysicalType::BYTE_ARRAY, ConvertedType::DECIMAL, 0, 8, 2];
1215 let value = ByteArray::from(vec![207, 200]);
1216 let row = Field::convert_byte_array(&descr, value.clone());
1217 assert_eq!(
1218 row.unwrap(),
1219 Field::Decimal(Decimal::from_bytes(value, 8, 2))
1220 );
1221
1222 // DECIMAL (FIXED_LEN_BYTE_ARRAY)
1223 let descr = make_column_descr![
1224 PhysicalType::FIXED_LEN_BYTE_ARRAY,
1225 ConvertedType::DECIMAL,
1226 8,
1227 17,
1228 5
1229 ];
1230 let value = ByteArray::from(vec![0, 0, 0, 0, 0, 4, 147, 224]);
1231 let row = Field::convert_byte_array(&descr, value.clone());
1232 assert_eq!(
1233 row.unwrap(),
1234 Field::Decimal(Decimal::from_bytes(value, 17, 5))
1235 );
1236
1237 // FLOAT16
1238 let descr = {
1239 let tpe = PrimitiveTypeBuilder::new("col", PhysicalType::FIXED_LEN_BYTE_ARRAY)

Callers

nothing calls this directly

Calls 4

with_lengthMethod · 0.80
with_logical_typeMethod · 0.80
cloneMethod · 0.45
buildMethod · 0.45

Tested by

no test coverage detected