physdes/
lib.rs

1// pub mod halton_int;
2pub mod generic;
3pub mod interval;
4pub mod merge_obj;
5pub mod point;
6pub mod polygon;
7pub mod rpolygon;
8pub mod vector2;
9
10pub use crate::point::Point;
11pub use crate::polygon::Polygon;
12pub use crate::rpolygon::RPolygon;
13pub use crate::vector2::Vector2;
14
15#[cfg(test)]
16mod tests {
17    use super::*;
18    extern crate interval;
19    use interval::ops::*;
20    use interval::Interval;
21    use quickcheck_macros::quickcheck;
22
23    #[test]
24    pub fn it_works() {
25        let a = Point::<i32, i32>::new(12, 23);
26        let b = Vector2::<i32, i32>::new(34, 45);
27        println!("{:?}", a + b);
28        println!("{:?}", a - b);
29
30        let mut a = Point::<i32, i32>::new(42, 53);
31        a += b;
32        a -= b;
33        println!("{:?}", -a);
34
35        let c = Point::<i32, i32>::new(12, 23);
36        let mm = Point::<Point<i32, i32>, Point<i32, i32>>::new(a, c);
37        println!("{:?}", mm);
38
39        let x = Interval::<i32>::new(12, 23);
40        // let y = Interval::<i32>::new(42, 53);
41        println!("{:?}", x);
42    }
43
44    #[quickcheck]
45    fn check_point(ax: u16, bx: u16) -> bool {
46        let a = Point::<i32, i32>::new(ax as i32, 23);
47        let b = Vector2::<i32, i32>::new(bx as i32, 45);
48        a == (a - b) + b
49    }
50}