in crates/core/src/file_group/builder.rs [288:315]
fn test_valid_sample_data() {
let sample_json = r#"{
"partitionToWriteStats": {
"byteField=20/shortField=100": [{
"fileId": "bb7c3a45-387f-490d-aab2-981c3f1a8ada-0",
"path": "byteField=20/shortField=100/bb7c3a45-387f-490d-aab2-981c3f1a8ada-0_0-140-198_20240418173213674.parquet"
}],
"byteField=10/shortField=300": [{
"fileId": "a22e8257-e249-45e9-ba46-115bc85adcba-0",
"path": "byteField=10/shortField=300/a22e8257-e249-45e9-ba46-115bc85adcba-0_1-140-199_20240418173213674.parquet"
}]
}
}"#;
let metadata: Map<String, Value> = serde_json::from_str(sample_json).unwrap();
let result = build_file_groups(&metadata);
assert!(result.is_ok());
let file_groups = result.unwrap();
assert_eq!(file_groups.len(), 2);
let expected_partitions = HashSet::from_iter(vec![
"byteField=20/shortField=100",
"byteField=10/shortField=300",
]);
let actual_partitions =
HashSet::<&str>::from_iter(file_groups.iter().map(|fg| fg.partition_path.as_str()));
assert_eq!(actual_partitions, expected_partitions);
}