1
Fork 0

auto merge of #12718 : thestinger/rust/min_max, r=alexcrichton

This commit is contained in:
bors 2014-03-05 16:21:43 -08:00
commit 67c5d793ad
3 changed files with 35 additions and 3 deletions

View file

@ -10,7 +10,6 @@
#[allow(missing_doc)];
use std::cmp;
use std::hash::Hash;
use std::io;
use std::mem;
@ -203,12 +202,12 @@ impl<'a> Stats for &'a [f64] {
fn min(self) -> f64 {
assert!(self.len() != 0);
self.iter().fold(self[0], |p,q| cmp::min(p, *q))
self.iter().fold(self[0], |p, q| p.min(*q))
}
fn max(self) -> f64 {
assert!(self.len() != 0);
self.iter().fold(self[0], |p,q| cmp::max(p, *q))
self.iter().fold(self[0], |p, q| p.max(*q))
}
fn mean(self) -> f64 {
@ -442,6 +441,7 @@ mod tests {
use stats::write_boxplot;
use std::io;
use std::str;
use std::f64;
macro_rules! assert_approx_eq(
($a:expr, $b:expr) => ({
@ -481,6 +481,14 @@ mod tests {
assert_eq!(summ.iqr, summ2.iqr);
}
#[test]
fn test_min_max_nan() {
let xs = &[1.0, 2.0, f64::NAN, 3.0, 4.0];
let summary = Summary::new(xs);
assert_eq!(summary.min, 1.0);
assert_eq!(summary.max, 4.0);
}
#[test]
fn test_norm2() {
let val = &[

View file

@ -866,6 +866,18 @@ mod tests {
use num::*;
use num;
#[test]
fn test_min_nan() {
assert_eq!(NAN.min(2.0), 2.0);
assert_eq!(2.0f32.min(NAN), 2.0);
}
#[test]
fn test_max_nan() {
assert_eq!(NAN.max(2.0), 2.0);
assert_eq!(2.0f32.max(NAN), 2.0);
}
#[test]
fn test_num() {
num::test_num(10f32, 2f32);

View file

@ -865,6 +865,18 @@ mod tests {
use num::*;
use num;
#[test]
fn test_min_nan() {
assert_eq!(NAN.min(2.0), 2.0);
assert_eq!(2.0f64.min(NAN), 2.0);
}
#[test]
fn test_max_nan() {
assert_eq!(NAN.max(2.0), 2.0);
assert_eq!(2.0f64.max(NAN), 2.0);
}
#[test]
fn test_num() {
num::test_num(10f64, 2f64);