1pub use breezy_timer_lib::{TimerState, BreezyTimer, Timer};
2
3pub use cpu_time::ProcessTime;
4pub use std::collections::HashMap;
5
6
7#[cfg(all(test, feature="breezy_timer"))]
8mod tests {
9 use cpu_time::ProcessTime;
10 use criterion::black_box;
11 use std::collections::HashMap;
12 use breezy_timer_lib::{BreezyTimer, TimerState, Timer};
13
14 #[test]
15 fn check() {
16 let mut btimer = BreezyTimer::new();
17
18 let start = ProcessTime::now();
19 btimer.start("loop");
20
21 assert!(btimer.contains_key("loop"));
22 let mut total = 0;
23 for _ in 0..100 {
24 total += black_box(1);
25 }
26 black_box(total);
27 btimer.stop("loop");
28
29 let elapsed_ns = start.elapsed().as_nanos();
30
31 let elapsed_breezy = btimer.elapsed("loop");
32 assert!(elapsed_breezy.is_some());
33 let elapsed_breezy = elapsed_breezy.unwrap().as_nanos();
34
35 assert!(elapsed_breezy > 0);
36 assert!(elapsed_breezy < elapsed_ns);
37 }
38
39 #[test]
40 fn sanity_check(){
41 let mut btimer = BreezyTimer::new();
42
43 let mut vectors = Vec::new();
44
45 btimer.start("total");
46 for _ in 0..10 {
47 btimer.start("allocations");
48 let vec: Vec<u8> = (0..102400).map(|_| { rand::random::<u8>() }).collect();
49 vectors.push(vec);
50 btimer.stop("allocations");
51
52 btimer.start("sum");
53 let mut total = 0;
54 for v in vectors.iter() {
55 total += v.iter().map(|x| *x as u32).sum::<u32>();
56 }
57 black_box(total);
59 btimer.stop("sum");
60 }
61 btimer.stop("total");
62 assert!(btimer.elapsed("allocations").unwrap() < btimer.elapsed("total").unwrap());
63 assert!(btimer.elapsed("sum").unwrap() < btimer.elapsed("total").unwrap())
64 }
65}
66
67#[cfg(all(test, not(feature="breezy_timer")))]
68mod tests {
69 use criterion::black_box;
70 use breezy_timer_lib::{BreezyTimer, Timer};
71
72 #[test]
73 fn check_no_feature() {
74 let mut btimer = BreezyTimer::new();
75 btimer.start("loop");
76 let mut total = 0;
77 for _ in 0..100 {
78 total += 1;
79 }
80 black_box(total);
81 btimer.stop("loop");
82 assert!(btimer.elapsed("loop").is_none());
83 }
84}