mirror of
https://github.com/GyulyVGC/sniffnet.git
synced 2026-06-12 01:57:45 -04:00
use formatted time duration in horizontal axis of the chart
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
use crate::gui::types::message::Message;
|
||||
use crate::networking::types::traffic_direction::TrafficDirection;
|
||||
use crate::translations::translations::{incoming_translation, outgoing_translation};
|
||||
use crate::utils::formatted_strings::get_formatted_num_seconds;
|
||||
use crate::{ByteMultiple, ChartType, Language, StyleType};
|
||||
|
||||
/// Struct defining the chart to be displayed in gui run page
|
||||
@@ -217,7 +218,10 @@ fn build_chart<DB: DrawingBackend>(
|
||||
&|bytes| ByteMultiple::formatted_string(bytes.abs() as u128)
|
||||
})
|
||||
.x_labels(min(6, x_labels))
|
||||
.x_label_formatter(&std::string::ToString::to_string)
|
||||
.x_label_formatter(
|
||||
#[allow(clippy::cast_possible_truncation, clippy::cast_sign_loss)]
|
||||
&|seconds| get_formatted_num_seconds(seconds.abs() as u128),
|
||||
)
|
||||
.draw()
|
||||
.unwrap();
|
||||
|
||||
|
||||
@@ -152,3 +152,52 @@ pub fn get_path_termination_string(full_path: &str, i: usize) -> String {
|
||||
]
|
||||
.concat()
|
||||
}
|
||||
|
||||
pub fn get_formatted_num_seconds(num_seconds: u128) -> String {
|
||||
match num_seconds {
|
||||
0..3600 => format!("{:02}:{:02}", num_seconds / 60, num_seconds % 60),
|
||||
_ => format!(
|
||||
"{:02}:{:02}:{:02}",
|
||||
num_seconds / 3600,
|
||||
(num_seconds % 3600) / 60,
|
||||
num_seconds % 60
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_formatted_num_seconds() {
|
||||
assert_eq!(get_formatted_num_seconds(0), "00:00");
|
||||
assert_eq!(get_formatted_num_seconds(1), "00:01");
|
||||
assert_eq!(get_formatted_num_seconds(28), "00:28");
|
||||
assert_eq!(get_formatted_num_seconds(59), "00:59");
|
||||
assert_eq!(get_formatted_num_seconds(60), "01:00");
|
||||
assert_eq!(get_formatted_num_seconds(61), "01:01");
|
||||
assert_eq!(get_formatted_num_seconds(119), "01:59");
|
||||
assert_eq!(get_formatted_num_seconds(120), "02:00");
|
||||
assert_eq!(get_formatted_num_seconds(121), "02:01");
|
||||
assert_eq!(get_formatted_num_seconds(3500), "58:20");
|
||||
assert_eq!(get_formatted_num_seconds(3599), "59:59");
|
||||
assert_eq!(get_formatted_num_seconds(3600), "01:00:00");
|
||||
assert_eq!(get_formatted_num_seconds(3601), "01:00:01");
|
||||
assert_eq!(get_formatted_num_seconds(3661), "01:01:01");
|
||||
assert_eq!(get_formatted_num_seconds(7139), "01:58:59");
|
||||
assert_eq!(get_formatted_num_seconds(7147), "01:59:07");
|
||||
assert_eq!(get_formatted_num_seconds(7199), "01:59:59");
|
||||
assert_eq!(get_formatted_num_seconds(7200), "02:00:00");
|
||||
assert_eq!(get_formatted_num_seconds(9999), "02:46:39");
|
||||
assert_eq!(get_formatted_num_seconds(36000), "10:00:00");
|
||||
assert_eq!(get_formatted_num_seconds(36001), "10:00:01");
|
||||
assert_eq!(get_formatted_num_seconds(36061), "10:01:01");
|
||||
assert_eq!(get_formatted_num_seconds(86400), "24:00:00");
|
||||
assert_eq!(get_formatted_num_seconds(123456789), "34293:33:09");
|
||||
assert_eq!(
|
||||
get_formatted_num_seconds(u128::MAX),
|
||||
"94522879700260684295381835397713392:04:15"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user