@@ -44,7 +44,6 @@ extern crate "serialize" as rustc_serialize;
44
44
extern crate term;
45
45
46
46
pub use self :: TestFn :: * ;
47
- pub use self :: MetricChange :: * ;
48
47
pub use self :: ColorConfig :: * ;
49
48
pub use self :: TestResult :: * ;
50
49
pub use self :: TestName :: * ;
@@ -62,7 +61,6 @@ use term::color::{Color, RED, YELLOW, GREEN, CYAN};
62
61
use std:: any:: Any ;
63
62
use std:: cmp;
64
63
use std:: collections:: BTreeMap ;
65
- use std:: f64;
66
64
use std:: fmt:: Show ;
67
65
use std:: fmt;
68
66
use std:: io:: fs:: PathExtensions ;
@@ -82,8 +80,7 @@ use std::time::Duration;
82
80
pub mod test {
83
81
pub use { Bencher , TestName , TestResult , TestDesc ,
84
82
TestDescAndFn , TestOpts , TrFailed , TrIgnored , TrOk ,
85
- Metric , MetricMap , MetricAdded , MetricRemoved ,
86
- MetricChange , Improvement , Regression , LikelyNoise ,
83
+ Metric , MetricMap ,
87
84
StaticTestFn , StaticTestName , DynTestName , DynTestFn ,
88
85
run_test, test_main, test_main_static, filter_tests,
89
86
parse_opts, StaticBenchFn , ShouldFail } ;
@@ -244,13 +241,7 @@ impl Clone for MetricMap {
244
241
245
242
/// Analysis of a single change in metric
246
243
#[ derive( Copy , PartialEq , Show ) ]
247
- pub enum MetricChange {
248
- LikelyNoise ,
249
- MetricAdded ,
250
- MetricRemoved ,
251
- Improvement ( f64 ) ,
252
- Regression ( f64 )
253
- }
244
+ pub struct MetricChange ;
254
245
255
246
pub type MetricDiff = BTreeMap < String , MetricChange > ;
256
247
@@ -602,22 +593,6 @@ impl<T: Writer> ConsoleTestState<T> {
602
593
self . write_pretty ( "bench" , term:: color:: CYAN )
603
594
}
604
595
605
- pub fn write_added ( & mut self ) -> io:: IoResult < ( ) > {
606
- self . write_pretty ( "added" , term:: color:: GREEN )
607
- }
608
-
609
- pub fn write_improved ( & mut self ) -> io:: IoResult < ( ) > {
610
- self . write_pretty ( "improved" , term:: color:: GREEN )
611
- }
612
-
613
- pub fn write_removed ( & mut self ) -> io:: IoResult < ( ) > {
614
- self . write_pretty ( "removed" , term:: color:: YELLOW )
615
- }
616
-
617
- pub fn write_regressed ( & mut self ) -> io:: IoResult < ( ) > {
618
- self . write_pretty ( "regressed" , term:: color:: RED )
619
- }
620
-
621
596
pub fn write_pretty ( & mut self ,
622
597
word : & str ,
623
598
color : term:: color:: Color ) -> io:: IoResult < ( ) > {
@@ -741,55 +716,6 @@ impl<T: Writer> ConsoleTestState<T> {
741
716
Ok ( ( ) )
742
717
}
743
718
744
- pub fn write_metric_diff ( & mut self , diff : & MetricDiff ) -> io:: IoResult < ( ) > {
745
- let mut noise = 0 u;
746
- let mut improved = 0 u;
747
- let mut regressed = 0 u;
748
- let mut added = 0 u;
749
- let mut removed = 0 u;
750
-
751
- for ( k, v) in diff. iter ( ) {
752
- match * v {
753
- LikelyNoise => noise += 1 ,
754
- MetricAdded => {
755
- added += 1 ;
756
- try!( self . write_added ( ) ) ;
757
- try!( self . write_plain ( format ! ( ": {}\n " , * k) . as_slice ( ) ) ) ;
758
- }
759
- MetricRemoved => {
760
- removed += 1 ;
761
- try!( self . write_removed ( ) ) ;
762
- try!( self . write_plain ( format ! ( ": {}\n " , * k) . as_slice ( ) ) ) ;
763
- }
764
- Improvement ( pct) => {
765
- improved += 1 ;
766
- try!( self . write_plain ( format ! ( ": {} " , * k) . as_slice ( ) ) ) ;
767
- try!( self . write_improved ( ) ) ;
768
- try!( self . write_plain ( format ! ( " by {:.2}%\n " ,
769
- pct as f64 ) . as_slice ( ) ) ) ;
770
- }
771
- Regression ( pct) => {
772
- regressed += 1 ;
773
- try!( self . write_plain ( format ! ( ": {} " , * k) . as_slice ( ) ) ) ;
774
- try!( self . write_regressed ( ) ) ;
775
- try!( self . write_plain ( format ! ( " by {:.2}%\n " ,
776
- pct as f64 ) . as_slice ( ) ) ) ;
777
- }
778
- }
779
- }
780
- try!( self . write_plain ( format ! ( "result of ratchet: {} metrics added, \
781
- {} removed, {} improved, {} regressed, \
782
- {} noise\n ",
783
- added, removed, improved, regressed,
784
- noise) . as_slice ( ) ) ) ;
785
- if regressed == 0 {
786
- try!( self . write_plain ( "updated ratchet file\n " ) ) ;
787
- } else {
788
- try!( self . write_plain ( "left ratchet file untouched\n " ) ) ;
789
- }
790
- Ok ( ( ) )
791
- }
792
-
793
719
pub fn write_run_finish ( & mut self ,
794
720
ratchet_metrics : & Option < Path > ,
795
721
ratchet_pct : Option < f64 > ) -> io:: IoResult < bool > {
@@ -807,9 +733,7 @@ impl<T: Writer> ConsoleTestState<T> {
807
733
forced to: {}%\n ",
808
734
pct) . as_slice ( ) ) )
809
735
}
810
- let ( diff, ok) = self . metrics . ratchet ( pth, ratchet_pct) ;
811
- try!( self . write_metric_diff ( & diff) ) ;
812
- ok
736
+ true
813
737
}
814
738
} ;
815
739
@@ -1233,47 +1157,35 @@ impl MetricMap {
1233
1157
let MetricMap ( ref selfmap) = * self ;
1234
1158
let MetricMap ( ref old) = * old;
1235
1159
for ( k, vold) in old. iter ( ) {
1236
- let r = match selfmap. get ( k) {
1237
- None => MetricRemoved ,
1160
+ match selfmap. get ( k) {
1161
+ None => ( ) ,
1238
1162
Some ( v) => {
1239
1163
let delta = v. value - vold. value ;
1240
1164
let noise = match noise_pct {
1241
1165
None => vold. noise . abs ( ) . max ( v. noise . abs ( ) ) ,
1242
1166
Some ( pct) => vold. value * pct / 100.0
1243
1167
} ;
1244
1168
if delta. abs ( ) <= noise {
1245
- LikelyNoise
1246
1169
} else {
1247
- let pct = delta. abs ( ) / vold. value . max ( f64:: EPSILON ) * 100.0 ;
1248
1170
if vold. noise < 0.0 {
1249
1171
// When 'noise' is negative, it means we want
1250
1172
// to see deltas that go up over time, and can
1251
1173
// only tolerate slight negative movement.
1252
1174
if delta < 0.0 {
1253
- Regression ( pct)
1254
1175
} else {
1255
- Improvement ( pct)
1256
1176
}
1257
1177
} else {
1258
1178
// When 'noise' is positive, it means we want
1259
1179
// to see deltas that go down over time, and
1260
1180
// can only tolerate slight positive movements.
1261
1181
if delta < 0.0 {
1262
- Improvement ( pct)
1263
1182
} else {
1264
- Regression ( pct)
1265
1183
}
1266
1184
}
1267
1185
}
1268
1186
}
1269
1187
} ;
1270
- diff. insert ( ( * k) . clone ( ) , r) ;
1271
- }
1272
- let MetricMap ( ref map) = * self ;
1273
- for ( k, _) in map. iter ( ) {
1274
- if !diff. contains_key ( k) {
1275
- diff. insert ( ( * k) . clone ( ) , MetricAdded ) ;
1276
- }
1188
+ diff. insert ( ( * k) . clone ( ) , MetricChange ) ;
1277
1189
}
1278
1190
diff
1279
1191
}
@@ -1316,7 +1228,6 @@ impl MetricMap {
1316
1228
let diff : MetricDiff = self . compare_to_old ( & old, pct) ;
1317
1229
let ok = diff. iter ( ) . all ( |( _, v) | {
1318
1230
match * v {
1319
- Regression ( _) => false ,
1320
1231
_ => true
1321
1232
}
1322
1233
} ) ;
@@ -1467,8 +1378,7 @@ pub mod bench {
1467
1378
mod tests {
1468
1379
use test:: { TrFailed , TrIgnored , TrOk , filter_tests, parse_opts,
1469
1380
TestDesc , TestDescAndFn , TestOpts , run_test,
1470
- Metric , MetricMap , MetricAdded , MetricRemoved ,
1471
- Improvement , Regression , LikelyNoise ,
1381
+ Metric , MetricMap ,
1472
1382
StaticTestName , DynTestName , DynTestFn , ShouldFail } ;
1473
1383
use std:: io:: TempDir ;
1474
1384
use std:: thunk:: Thunk ;
@@ -1737,32 +1647,10 @@ mod tests {
1737
1647
1738
1648
let diff1 = m2. compare_to_old ( & m1, None ) ;
1739
1649
1740
- assert_eq ! ( * ( diff1. get( & "in-both-noise" . to_string( ) ) . unwrap( ) ) , LikelyNoise ) ;
1741
- assert_eq ! ( * ( diff1. get( & "in-first-noise" . to_string( ) ) . unwrap( ) ) , MetricRemoved ) ;
1742
- assert_eq ! ( * ( diff1. get( & "in-second-noise" . to_string( ) ) . unwrap( ) ) , MetricAdded ) ;
1743
- assert_eq ! ( * ( diff1. get( & "in-both-want-downwards-but-regressed" . to_string( ) ) . unwrap( ) ) ,
1744
- Regression ( 100.0 ) ) ;
1745
- assert_eq ! ( * ( diff1. get( & "in-both-want-downwards-and-improved" . to_string( ) ) . unwrap( ) ) ,
1746
- Improvement ( 50.0 ) ) ;
1747
- assert_eq ! ( * ( diff1. get( & "in-both-want-upwards-but-regressed" . to_string( ) ) . unwrap( ) ) ,
1748
- Regression ( 50.0 ) ) ;
1749
- assert_eq ! ( * ( diff1. get( & "in-both-want-upwards-and-improved" . to_string( ) ) . unwrap( ) ) ,
1750
- Improvement ( 100.0 ) ) ;
1751
1650
assert_eq ! ( diff1. len( ) , 7 ) ;
1752
1651
1753
1652
let diff2 = m2. compare_to_old ( & m1, Some ( 200.0 ) ) ;
1754
1653
1755
- assert_eq ! ( * ( diff2. get( & "in-both-noise" . to_string( ) ) . unwrap( ) ) , LikelyNoise ) ;
1756
- assert_eq ! ( * ( diff2. get( & "in-first-noise" . to_string( ) ) . unwrap( ) ) , MetricRemoved ) ;
1757
- assert_eq ! ( * ( diff2. get( & "in-second-noise" . to_string( ) ) . unwrap( ) ) , MetricAdded ) ;
1758
- assert_eq ! ( * ( diff2. get( & "in-both-want-downwards-but-regressed" . to_string( ) ) . unwrap( ) ) ,
1759
- LikelyNoise ) ;
1760
- assert_eq ! ( * ( diff2. get( & "in-both-want-downwards-and-improved" . to_string( ) ) . unwrap( ) ) ,
1761
- LikelyNoise ) ;
1762
- assert_eq ! ( * ( diff2. get( & "in-both-want-upwards-but-regressed" . to_string( ) ) . unwrap( ) ) ,
1763
- LikelyNoise ) ;
1764
- assert_eq ! ( * ( diff2. get( & "in-both-want-upwards-and-improved" . to_string( ) ) . unwrap( ) ) ,
1765
- LikelyNoise ) ;
1766
1654
assert_eq ! ( diff2. len( ) , 7 ) ;
1767
1655
}
1768
1656
@@ -1786,8 +1674,6 @@ mod tests {
1786
1674
let ( diff1, ok1) = m2. ratchet ( & pth, None ) ;
1787
1675
assert_eq ! ( ok1, false ) ;
1788
1676
assert_eq ! ( diff1. len( ) , 2 ) ;
1789
- assert_eq ! ( * ( diff1. get( & "runtime" . to_string( ) ) . unwrap( ) ) , Regression ( 10.0 ) ) ;
1790
- assert_eq ! ( * ( diff1. get( & "throughput" . to_string( ) ) . unwrap( ) ) , LikelyNoise ) ;
1791
1677
1792
1678
// Check that it was not rewritten.
1793
1679
let m3 = MetricMap :: load ( & pth) ;
@@ -1801,8 +1687,6 @@ mod tests {
1801
1687
let ( diff2, ok2) = m2. ratchet ( & pth, Some ( 10.0 ) ) ;
1802
1688
assert_eq ! ( ok2, true ) ;
1803
1689
assert_eq ! ( diff2. len( ) , 2 ) ;
1804
- assert_eq ! ( * ( diff2. get( & "runtime" . to_string( ) ) . unwrap( ) ) , LikelyNoise ) ;
1805
- assert_eq ! ( * ( diff2. get( & "throughput" . to_string( ) ) . unwrap( ) ) , LikelyNoise ) ;
1806
1690
1807
1691
// Check that it was rewritten.
1808
1692
let m4 = MetricMap :: load ( & pth) ;
0 commit comments