use anyhow::Result;
use std::{fs::File, io::Read};
pub fn median(mut data: Vec<f32>) -> f32 {
data.sort_by(|a, b| a.partial_cmp(b).unwrap());
let len = data.len();
if len % 2 == 0 {
(data[len / 2 - 1] + data[len / 2]) / 2.0
} else {
data[len / 2]
}
}
pub fn get_memory_usage() -> Result<usize> {
let mut s = String::new();
File::open("/proc/self/statm")?.read_to_string(&mut s)?;
let fields: Vec<&str> = s.split_whitespace().collect();
Ok(fields[1].parse::<usize>().unwrap() * 4096 / 1000000) }
pub fn format_number(num: usize) -> String {
let num_str = num.to_string();
let result: String = num_str
.chars()
.rev()
.enumerate()
.map(|(i, c)| {
if i == 3 {
return ',';
}
c
})
.collect();
result.chars().rev().collect()
}