Skip to content

Commit 9b7b0bd

Browse files
author
Jorge Aparicio
committed
1 parent 0f295d4 commit 9b7b0bd

File tree

6 files changed

+159
-158
lines changed

6 files changed

+159
-158
lines changed

src/analysis/compare.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
use stats::ttest::{TDistribution, TwoTailed};
1+
use stats::ttest::{TDistribution, Tails};
22
use stats::{Stats, mod};
33
use time;
44

55
use Criterion;
6-
use estimate::{Distributions, Estimate, Estimates, Mean, Median};
6+
use estimate::Statistic::{Mean, Median};
7+
use estimate::{Distributions, Estimate, Estimates};
78
use format;
89
use fs;
910
use plot;
1011
use report;
12+
use self::ComparisonResult::{Improved, NonSignificant, Regressed};
1113

1214
// Common comparison procedure
1315
pub fn common(
@@ -67,7 +69,7 @@ fn t_test(id: &str, times: &[f64], base_times: &[f64], criterion: &Criterion) ->
6769
let t_distribution = elapsed!(
6870
"Bootstrapping the T distribution",
6971
TDistribution::new(times, base_times, nresamples));
70-
let p_value = t_distribution.p_value(t_statistic, TwoTailed);
72+
let p_value = t_distribution.p_value(t_statistic, Tails::Two);
7173
let different_mean = p_value < sl;
7274

7375
println!(" > p = {}", p_value);

src/analysis/mod.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,8 @@ use estimate::{
1010
Distributions,
1111
Estimate,
1212
Estimates,
13-
Mean,
14-
Median,
15-
MedianAbsDev,
16-
StdDev,
17-
mod,
1813
};
14+
use estimate::Statistic;
1915
use format;
2016
use fs;
2117
use plot;
@@ -119,8 +115,8 @@ fn common<R: Routine>(id: &str, routine: &mut R, criterion: &Criterion) {
119115
let (distribution, slope) = regression(id, pairs_f64, criterion);
120116
let (mut distributions, mut estimates) = estimates(times, criterion);
121117

122-
estimates.insert(estimate::Slope, slope);
123-
distributions.insert(estimate::Slope, distribution);
118+
estimates.insert(Statistic::Slope, slope);
119+
distributions.insert(Statistic::Slope, distribution);
124120

125121
if criterion.plotting.is_enabled() {
126122
elapsed!(
@@ -235,7 +231,13 @@ fn estimates(
235231

236232
vec![a, b, c, d]
237233
};
238-
let distributions: Distributions = [Mean, Median, MedianAbsDev, StdDev].iter().map(|&x| {
234+
let statistics = [
235+
Statistic::Mean,
236+
Statistic::Median,
237+
Statistic::MedianAbsDev,
238+
Statistic::StdDev,
239+
];
240+
let distributions: Distributions = statistics.iter().map(|&x| {
239241
x
240242
}).zip(distributions.into_iter()).collect();
241243
let estimates = Estimate::new(&distributions, points[], cl);

src/estimate.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ pub enum Statistic {
4545
impl Show for Statistic {
4646
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
4747
match *self {
48-
Mean => f.pad("mean"),
49-
Median => f.pad("median"),
50-
MedianAbsDev => f.pad("MAD"),
51-
Slope => f.pad("slope"),
52-
StdDev => f.pad("SD"),
48+
Statistic::Mean => f.pad("mean"),
49+
Statistic::Median => f.pad("median"),
50+
Statistic::MedianAbsDev => f.pad("MAD"),
51+
Statistic::Slope => f.pad("slope"),
52+
Statistic::StdDev => f.pad("SD"),
5353
}
5454
}
5555
}

src/lib.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ enum Plotting {
8989
impl Plotting {
9090
fn is_enabled(&self) -> bool {
9191
match *self {
92-
Enabled => true,
92+
Plotting::Enabled => true,
9393
_ => false,
9494
}
9595
}
@@ -111,11 +111,11 @@ impl Criterion {
111111
#[experimental]
112112
pub fn default() -> Criterion {
113113
let plotting = if simplot::version().is_ok() {
114-
Enabled
114+
Plotting::Enabled
115115
} else {
116116
println!("Gnuplot not found, disabling plotting");
117117

118-
NotAvailable
118+
Plotting::NotAvailable
119119
};
120120

121121
Criterion {
@@ -255,8 +255,8 @@ impl Criterion {
255255
#[experimental]
256256
pub fn with_plots(&mut self) -> &mut Criterion {
257257
match self.plotting {
258-
NotAvailable => {},
259-
_ => self.plotting = Enabled,
258+
Plotting::NotAvailable => {},
259+
_ => self.plotting = Plotting::Enabled,
260260
}
261261

262262
self
@@ -266,8 +266,8 @@ impl Criterion {
266266
#[experimental]
267267
pub fn without_plots(&mut self) -> &mut Criterion {
268268
match self.plotting {
269-
NotAvailable => {},
270-
_ => self.plotting = Disabled,
269+
Plotting::NotAvailable => {},
270+
_ => self.plotting = Plotting::Disabled,
271271
}
272272

273273
self
@@ -276,7 +276,7 @@ impl Criterion {
276276
/// Checks if plotting is possible
277277
pub fn can_plot(&self) -> bool {
278278
match self.plotting {
279-
NotAvailable => false,
279+
Plotting::NotAvailable => false,
280280
_ => true,
281281
}
282282
}

src/plot/both.rs

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
use simplot::axis::{BottomX, LeftY, RightY};
2-
use simplot::curve::Lines;
3-
use simplot::grid::Major;
4-
use simplot::key::{Inside, Left, LeftJustified, Outside, Right, SampleText, Top};
5-
use simplot::{Figure, Solid};
1+
use simplot::curve::Style::{Lines};
2+
use simplot::key::{Horizontal, Justification, Order, Position, Vertical};
3+
use simplot::{Axis, Figure, Grid, LineType};
64
use stats::ConfidenceInterval;
75
use std::iter::Repeat;
86
use std::num::Float;
97
use std::str;
108
use test::stats::Stats;
119

12-
use estimate::{Estimate, Estimates, Slope};
10+
use estimate::{Estimate, Estimates};
11+
use estimate::Statistic::Slope;
1312
use kde;
1413
use super::scale_time;
1514
use super::{DARK_BLUE, DARK_RED};
@@ -82,19 +81,19 @@ pub fn regression(
8281
output(path).
8382
size(PLOT_SIZE).
8483
title(id.to_string()).
85-
axis(BottomX, |a| a.
86-
grid(Major, |g| g.
84+
axis(Axis::BottomX, |a| a.
85+
grid(Grid::Major, |g| g.
8786
show()).
8887
// FIXME (unboxed closures) remove cloning
8988
label(x_label.to_string())).
90-
axis(LeftY, |a| a.
91-
grid(Major, |g| g.
89+
axis(Axis::LeftY, |a| a.
90+
grid(Grid::Major, |g| g.
9291
show()).
9392
label(format!("Total time ({}s)", prefix))).
9493
key(|k| k.
95-
justification(LeftJustified).
96-
order(SampleText).
97-
position(Inside(Top, Left))).
94+
justification(Justification::Left).
95+
order(Order::SampleText).
96+
position(Position::Inside(Vertical::Top, Horizontal::Left))).
9897
filled_curve([0., max_iters].iter(), [0., base_lb].iter(), [0., base_ub].iter(), |c| c.
9998
color(DARK_RED).
10099
opacity(0.25)).
@@ -104,12 +103,12 @@ pub fn regression(
104103
curve(Lines, [0., max_iters].iter(), [0., base_point].iter(), |c| c.
105104
color(DARK_RED).
106105
label("Base sample").
107-
line_type(Solid).
106+
line_type(LineType::Solid).
108107
linewidth(2.)).
109108
curve(Lines, [0., max_iters].iter(), [0., new_point].iter(), |c| c.
110109
color(DARK_BLUE).
111110
label("New sample").
112-
line_type(Solid).
111+
line_type(LineType::Solid).
113112
linewidth(2.)).
114113
draw().unwrap();
115114

@@ -137,16 +136,16 @@ pub fn pdfs(base: &[f64], new: &[f64], id: &str) {
137136
output(path).
138137
size(PLOT_SIZE).
139138
title(id.to_string()).
140-
axis(BottomX, |a| a.
139+
axis(Axis::BottomX, |a| a.
141140
label(format!("Average time ({}s)", prefix))).
142-
axis(LeftY, |a| a.
141+
axis(Axis::LeftY, |a| a.
143142
label("Density (a.u.)")).
144-
axis(RightY, |a| a.
143+
axis(Axis::RightY, |a| a.
145144
hide()).
146145
key(|k| k.
147-
justification(LeftJustified).
148-
order(SampleText).
149-
position(Outside(Top, Right))).
146+
justification(Justification::Left).
147+
order(Order::SampleText).
148+
position(Position::Outside(Vertical::Top, Horizontal::Right))).
150149
filled_curve(base_xs, base_ys, zeros, |c| c.
151150
color(DARK_RED).
152151
label("Base PDF").

0 commit comments

Comments
 (0)