ecad_processor/utils/
filename.rs1use chrono::{Datelike, Local};
2use std::path::PathBuf;
3
4pub fn generate_default_parquet_filename() -> PathBuf {
6 let now = Local::now();
7 let year = now.year() % 100; let month = now.month();
9 let day = now.day();
10
11 let filename = format!("ecad-weather-{:02}{:02}{:02}.parquet", year, month, day);
12 PathBuf::from("output").join(filename)
13}
14
15pub fn generate_default_unified_parquet_filename() -> PathBuf {
17 let now = Local::now();
18 let year = now.year() % 100; let month = now.month();
20 let day = now.day();
21
22 let filename = format!(
23 "ecad-weather-unified-{:02}{:02}{:02}.parquet",
24 year, month, day
25 );
26 PathBuf::from("output").join(filename)
27}
28
29#[cfg(test)]
30mod tests {
31 use super::*;
32
33 #[test]
34 fn test_generate_default_parquet_filename() {
35 let filename = generate_default_parquet_filename();
36 let filename_str = filename.to_string_lossy();
37
38 assert!(filename_str.contains("ecad-weather-"));
40 assert!(filename_str.ends_with(".parquet"));
41 assert!(filename_str.starts_with("output/"));
42
43 let parts: Vec<&str> = filename_str.split('/').collect();
46 assert_eq!(parts.len(), 2);
47 assert_eq!(parts[0], "output");
48
49 let file_part = parts[1];
50 assert!(file_part.starts_with("ecad-weather-"));
51 assert!(file_part.ends_with(".parquet"));
52 }
53
54 #[test]
55 fn test_generate_default_unified_parquet_filename() {
56 let filename = generate_default_unified_parquet_filename();
57 let filename_str = filename.to_string_lossy();
58
59 assert!(filename_str.contains("ecad-weather-unified-"));
60 assert!(filename_str.ends_with(".parquet"));
61 assert!(filename_str.starts_with("output/"));
62 }
63}