Remove stddev and direction columns

This commit is contained in:
Joscha 2023-10-21 18:20:37 +02:00
parent 0d48e0791b
commit 2bf939186d
10 changed files with 32 additions and 116 deletions

View file

@ -81,18 +81,14 @@ async fn save_work(
id, \
metric, \
value, \
stddev, \
unit, \
direction \
unit \
) \
VALUES (?, ?, ?, ?, ?, ?) \
VALUES (?, ?, ?, ?) \
",
run.id,
metric,
measurement.value,
measurement.stddev,
measurement.unit,
measurement.direction,
)
.execute(&mut *conn)
.await?;

View file

@ -23,9 +23,7 @@ use crate::{
struct Measurement {
metric: String,
value: String,
stddev: String,
unit: String,
direction: &'static str,
}
struct Line {
@ -83,9 +81,7 @@ async fn from_finished_run(
SELECT \
metric, \
value, \
stddev, \
unit, \
direction \
unit \
FROM run_measurements \
WHERE id = ? \
ORDER BY metric ASC \
@ -96,14 +92,7 @@ async fn from_finished_run(
.map_ok(|r| Measurement {
metric: r.metric,
value: util::format_value(r.value),
stddev: r.stddev.map(util::format_value).unwrap_or_default(),
unit: r.unit.unwrap_or_default(),
direction: match r.direction {
Some(..=-1) => "less is better",
Some(0) => "neutral",
Some(1..) => "more is better",
None => "",
},
})
.try_collect::<Vec<_>>()
.await?;

View file

@ -55,14 +55,8 @@ pub enum Direction {
pub struct Measurement {
pub value: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub stddev: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub unit: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub direction: Option<Direction>,
}
#[derive(Clone, Serialize, Deserialize)]

View file

@ -8,11 +8,7 @@ use std::{
use regex::RegexBuilder;
use walkdir::WalkDir;
use crate::{
shared::{Direction, Measurement},
somehow,
worker::server::Server,
};
use crate::{shared::Measurement, somehow, worker::server::Server};
use super::{Finished, RunInProgress};
@ -110,70 +106,47 @@ fn count(path: &Path) -> somehow::Result<Counts> {
Ok(counts)
}
fn measurement(value: f64, direction: Direction) -> Measurement {
Measurement {
value,
stddev: None,
unit: None,
direction: Some(direction),
}
fn measurement(value: f64) -> Measurement {
Measurement { value, unit: None }
}
fn measurements(counts: Counts) -> HashMap<String, Measurement> {
let mut measurements = HashMap::new();
// Files
measurements.insert(
"files".to_string(),
measurement(counts.files as f64, Direction::Neutral),
);
measurements.insert("files".to_string(), measurement(counts.files as f64));
for (ext, count) in counts.files_by_ext {
measurements.insert(
format!("files/by extension/{ext}"),
measurement(count as f64, Direction::Neutral),
measurement(count as f64),
);
}
for (dir, count) in counts.files_by_dir {
measurements.insert(
format!("files/by dir/{dir}/"),
measurement(count as f64, Direction::Neutral),
);
measurements.insert(format!("files/by dir/{dir}/"), measurement(count as f64));
}
// Lines
measurements.insert(
"lines".to_string(),
measurement(counts.lines as f64, Direction::Neutral),
);
measurements.insert("lines".to_string(), measurement(counts.lines as f64));
for (ext, count) in counts.lines_by_ext {
measurements.insert(
format!("lines/by extension/{ext}"),
measurement(count as f64, Direction::Neutral),
measurement(count as f64),
);
}
for (dir, count) in counts.lines_by_dir {
measurements.insert(
format!("lines/by dir/{dir}/"),
measurement(count as f64, Direction::Neutral),
);
measurements.insert(format!("lines/by dir/{dir}/"), measurement(count as f64));
}
// Todos
measurements.insert(
"todos".to_string(),
measurement(counts.todos as f64, Direction::LessIsBetter),
);
measurements.insert("todos".to_string(), measurement(counts.todos as f64));
for (ext, count) in counts.todos_by_ext {
measurements.insert(
format!("todos/by extension/{ext}"),
measurement(count as f64, Direction::LessIsBetter),
measurement(count as f64),
);
}
for (dir, count) in counts.todos_by_dir {
measurements.insert(
format!("todos/by dir/{dir}/"),
measurement(count as f64, Direction::LessIsBetter),
);
measurements.insert(format!("todos/by dir/{dir}/"), measurement(count as f64));
}
measurements