use std::path::PathBuf;
use ctddump::handle_dispatch;
fn convert_streamed(format: &str, src: &str) {
std::env::set_var("CTDDUMP_CHUNK_ROWS", "1");
let dest = std::env::temp_dir().join(format!(
"ctddump_stream_{}_{}.parquet",
format,
PathBuf::from(src).file_stem().unwrap().to_string_lossy()
));
let dest_str = dest.to_string_lossy().into_owned();
let args = vec![
"convert".to_string(),
format.to_string(),
src.to_string(),
dest_str.clone(),
];
let result = handle_dispatch(&args);
assert!(result.is_ok(), "streamed convert failed for {src}: {result:?}");
let size = std::fs::metadata(&dest)
.unwrap_or_else(|e| panic!("output missing for {src}: {e}"))
.len();
assert!(size > 0, "streamed output is empty for {src}");
let _ = std::fs::remove_file(&dest);
}
#[test]
fn test_stream_nrt_ar() {
convert_streamed("nrt_ar", "./tests/test_data/AR_PR_CT_ITP-71.nc");
}
#[test]
fn test_stream_nrt_bo_deploy() {
convert_streamed("nrt_bo", "./tests/test_data/BO_PR_CT_KBH1723.nc");
}
#[test]
fn test_stream_cora() {
convert_streamed("cora", "./tests/test_data/CO_DMQCGL01_19861204_PR_CT.nc");
}
#[test]
fn test_stream_cora_legacy() {
convert_streamed("cora_legacy", "./tests/test_data/CO_DMQCGL01_20201010_PR_CT.nc");
}