1pub mod mat;
2pub mod rng;
3pub mod types;
4pub mod utils;
5
6pub use mat::Mat;
7pub use rng::Rng;
8pub use types::{Point, Rect, Scalar, Size};
9
10#[cfg(test)]
11mod tests {
12 use super::*;
13
14 #[test]
15 fn test_rng() {
16 let mut rng = Rng::new(42);
17 let val1 = rng.next_u32();
18 let val2 = rng.next_u32();
19 assert_ne!(val1, val2);
20
21 let f = rng.next_f32();
22 assert!((0.0..1.0).contains(&f));
23 }
24
25 #[test]
26 fn test_types() {
27 let p = Point::new(10, 20);
28 assert_eq!(p.x, 10);
29 assert_eq!(p.y, 20);
30
31 let r = Rect::new(0, 0, 100, 200);
32 assert_eq!(r.width, 100);
33 assert_eq!(r.height, 200);
34
35 let s = Size::new(800, 600);
36 assert_eq!(s.width, 800);
37 assert_eq!(s.height, 600);
38
39 let sc = Scalar::new(1.0, 2.0, 3.0, 4.0);
40 assert_eq!(sc.0[0], 1.0);
41 assert_eq!(sc.0[3], 4.0);
42 }
43}