1 extern crate datetime; 2 pub use datetime::Duration; 3 4 5 mod addition { 6 use super::*; 7 8 #[test] simple()9 fn simple() { 10 assert_eq!(Duration::of(10), Duration::of(2) + Duration::of(8)) 11 } 12 13 #[test] milliseconds()14 fn milliseconds() { 15 assert_eq!(Duration::of_ms(0, 500), Duration::of_ms(0, 167) + Duration::of_ms(0, 333)) 16 } 17 18 #[test] wrapping()19 fn wrapping() { 20 assert_eq!(Duration::of_ms(1, 500), Duration::of_ms(0, 750) + Duration::of_ms(0, 750)) 21 } 22 23 #[test] wrapping_exact()24 fn wrapping_exact() { 25 assert_eq!(Duration::of(1), Duration::of_ms(0, 500) + Duration::of_ms(0, 500)) 26 } 27 } 28 29 30 mod subtraction { 31 use super::*; 32 33 #[test] simple()34 fn simple() { 35 assert_eq!(Duration::of(13), Duration::of(28) - Duration::of(15)) 36 } 37 38 #[test] milliseconds()39 fn milliseconds() { 40 assert_eq!(Duration::of_ms(0, 300), Duration::of_ms(0, 950) - Duration::of_ms(0, 650)) 41 } 42 43 #[test] wrapping()44 fn wrapping() { 45 assert_eq!(Duration::of_ms(0, 750), Duration::of_ms(1, 500) - Duration::of_ms(0, 750)) 46 } 47 48 #[test] wrapping_exact()49 fn wrapping_exact() { 50 assert_eq!(Duration::of(1), Duration::of_ms(1, 500) - Duration::of_ms(0, 500)) 51 } 52 } 53 54 55 mod multiplication { 56 use super::*; 57 58 #[test] simple()59 fn simple() { 60 assert_eq!(Duration::of(16), Duration::of(8) * 2) 61 } 62 63 #[test] milliseconds()64 fn milliseconds() { 65 assert_eq!(Duration::of(1), Duration::of_ms(0, 500) * 2) 66 } 67 } 68