diff options
| author | Артём Павлов [Artyom Pavlov] <newpavlov@gmail.com> | 2018-07-29 07:00:13 +0300 |
|---|---|---|
| committer | Артём Павлов [Artyom Pavlov] <newpavlov@gmail.com> | 2018-07-29 07:00:13 +0300 |
| commit | c24fb126e7cdd73163af67c264bf626aebbeee84 (patch) | |
| tree | f1fb9b0e439db9cc118cb8952b3d19b74c19243c /src/libstd/time.rs | |
| parent | c7cba3d33f564be140275c4fb9e33c6dc2c97b21 (diff) | |
duration div mul extras
Diffstat (limited to 'src/libstd/time.rs')
| -rw-r--r-- | src/libstd/time.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/libstd/time.rs b/src/libstd/time.rs index 90ab3491599..640902426cd 100644 --- a/src/libstd/time.rs +++ b/src/libstd/time.rs @@ -590,4 +590,30 @@ mod tests { let hundred_twenty_years = thirty_years * 4; assert!(a < hundred_twenty_years); } + + #[test] + fn duration_float_ops() { + let dur = Duration::new(2, 700_000_000); + + let dur2 = 3.14*dur; + assert_eq!(dur2, dur*3.14); + assert_eq!(dur2.as_secs(), 8); + assert_eq!(dur2.subsec_nanos(), 478_000_000); + + let dur3 = 3.14e5*dur; + assert_eq!(dur3, dur*3.14e5); + assert_eq!(dur3.as_secs(), 847_800); + assert_eq!(dur3.subsec_nanos(), 0); + + let dur4 = dur/3.14; + assert_eq!(dur4.as_secs(), 0); + assert_eq!(dur4.subsec_nanos(), 859_872_611); + + let dur5 = dur/3.14e5; + assert_eq!(dur5.as_secs(), 0); + // we are using truncation and not rounding + assert_eq!(dur5.subsec_nanos(), 8598); + + assert_eq!(dur/Duration::new(5, 400_000_000), 0.5); + } } |
