From 27e50dc07dbdd032b3c89599f1bd5a45a4007855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20P=C3=A9rez?= Date: Thu, 17 Oct 2024 15:05:05 +0100 Subject: [PATCH] Init repo with original content --- .gitignore | 5 ++ Cargo.toml | 8 +++ Home-Task_exercise_interview_Rust.pdf | Bin 0 -> 75596 bytes README.md | 16 +++++- input.txt | 25 +++++++++ output_expected.txt | 11 ++++ src/main.rs | 76 ++++++++++++++++++++++++++ 7 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 Cargo.toml create mode 100644 Home-Task_exercise_interview_Rust.pdf create mode 100644 input.txt create mode 100644 output_expected.txt create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..28488e4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +target +Cargo.lock +.DS_Store +._.DS_Store +.VSCodeCounter diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..939eb9a --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "be-technical-interview-rust" +version = "0.1.0" +edition = "2021" + +[dependencies] +regex = "1.10.4" +chrono = "0.4" diff --git a/Home-Task_exercise_interview_Rust.pdf b/Home-Task_exercise_interview_Rust.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3ceb90ae5cf21f898c3326d01473843b97c1c235 GIT binary patch literal 75596 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 fvNu5y`2744oYhuyV&gxjSjZPj{ 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 Q6c(w A basic code review, fixed with minor and essential changes to work as expected. + > Tests are included for verification. + +- [Improve one](improved) + +- [Multiple input one](multi-input) diff --git a/input.txt b/input.txt new file mode 100644 index 0000000..171c69e --- /dev/null +++ b/input.txt @@ -0,0 +1,25 @@ +1650973075 cpu 47 +1650973087 cpu 47 +1650973099 mem 737917 +1650973111 cpu 50 +1650973123 cpu 49 +1650973135 cpu 49 +1650973147 mem 1761992 +1650973159 cpu 49 +1650973171 mem 1858502 +1650973183 cpu 51 +1650973195 cpu 55 +1650973207 mem 1076203 +1650973219 cpu 60 +1650973231 mem 640005 +1650973243 mem 324911 +1650973255 mem 1024 +1650973267 cpu 56 +1650973279 cpu 58 +1650973291 mem 1024 +1650973303 mem 1024 +1650973315 mem 1024 +1650973327 mem 1024 +1650973339 cpu 49 +1650973351 mem 1024 +1650973363 cpu 49 \ No newline at end of file diff --git a/output_expected.txt b/output_expected.txt new file mode 100644 index 0000000..00e2026 --- /dev/null +++ b/output_expected.txt @@ -0,0 +1,11 @@ +2022-04-26T11:37:00Z cpu 47.0 +2022-04-26T11:38:00Z cpu 48.75 +2022-04-26T11:39:00Z cpu 51.666666666666664 +2022-04-26T11:40:00Z cpu 60.0 +2022-04-26T11:41:00Z cpu 57.0 +2022-04-26T11:42:00Z cpu 49.0 +2022-04-26T11:38:00Z mem 737917.0 +2022-04-26T11:39:00Z mem 1810247.0 +2022-04-26T11:40:00Z mem 510535.75 +2022-04-26T11:41:00Z mem 1024.0 +2022-04-26T11:42:00Z mem 1024.0 diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..f48b5a1 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,76 @@ +use std::collections::HashMap; +use std::error::Error; +use std::fs::File; +use std::io::Read; +use std::time::{Duration, UNIX_EPOCH}; + +fn parse( + file: File, +) -> Result>, Box> { + let mut file = file; + let mut contents = String::new(); + file.read_to_string(&mut contents)?; + + let mut metrics: HashMap>> = HashMap::new(); + + for line in contents.lines() { + let re = regex::Regex::new(r"(\d+) (\w+) (\d+)").unwrap(); + if let Some(caps) = re.captures(line) { + let timestamp_raw = &caps[1]; + let metric_name = &caps[2]; + let metric_value_raw = &caps[3]; + + let timestamp = timestamp_raw.parse::().unwrap(); + let metric_value = metric_value_raw.parse::().unwrap(); + + if !metrics.contains_key(metric_name) { + metrics.insert(metric_name.to_string(), HashMap::new()); + } + + let minute = UNIX_EPOCH + Duration::from_secs((timestamp - (timestamp % 60)) as u64); + metrics + .get_mut(metric_name) + .unwrap() + .insert(minute, vec![metric_value]); + } else { + println!("invalid line"); + } + } + + let mut aggregated_metrics: HashMap> = + HashMap::new(); + + for (metric_name, time_val_list) in metrics { + aggregated_metrics.insert(metric_name.clone(), HashMap::new()); + + for (time, values) in time_val_list { + let mut sum = 0.0; + for v in values.iter() { + sum += *v + } + let average = sum / values.len() as f64; + + aggregated_metrics + .get_mut(&metric_name) + .unwrap() + .insert(time, average); + } + } + + Ok(aggregated_metrics) +} + +fn main() { + let file = File::open("input.txt").expect("Unable to open file"); + let metrics = parse(file).expect("Unable to parse file"); + for (metric_name, time_val) in metrics { + for (time, value) in time_val { + println!( + "{} {:?} {:.2}", + metric_name, + chrono::DateTime::::from(time), + value + ); + } + } +}