about summary refs log tree commit diff
path: root/src/libcore/tests
diff options
context:
space:
mode:
authorPazzaz <pazzaz.sundqvist@gmail.com>2018-06-16 20:19:19 +0200
committerPazzaz <pazzaz.sundqvist@gmail.com>2018-06-16 20:56:17 +0200
commitd22ad76ca83acda1428829173451eee0221f685a (patch)
tree5180e42bd753dbcbe9583e7f7b95ced01b51cd91 /src/libcore/tests
parent253205658edc477a0b429f3ce25a92099dc7ddc4 (diff)
downloadrust-d22ad76ca83acda1428829173451eee0221f685a.tar.gz
rust-d22ad76ca83acda1428829173451eee0221f685a.zip
Optimize sum of Durations by using custom function
Diffstat (limited to 'src/libcore/tests')
-rw-r--r--src/libcore/tests/time.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libcore/tests/time.rs b/src/libcore/tests/time.rs
index df139965753..466f28f0ef0 100644
--- a/src/libcore/tests/time.rs
+++ b/src/libcore/tests/time.rs
@@ -162,6 +162,20 @@ fn checked_div() {
 }
 
 #[test]
+fn correct_sum() {
+    let durations = [
+        Duration::new(1, 999_999_999),
+        Duration::new(2, 999_999_999),
+        Duration::new(0, 999_999_999),
+        Duration::new(0, 999_999_999),
+        Duration::new(0, 999_999_999),
+        Duration::new(5, 0),
+    ];
+    let sum = durations.iter().sum::<Duration>();
+    assert_eq!(sum, Duration::new(1+2+5+4, 1_000_000_000 - 5));
+}
+
+#[test]
 fn debug_formatting_extreme_values() {
     assert_eq!(
         format!("{:?}", Duration::new(18_446_744_073_709_551_615, 123_456_789)),