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