Skip to main content

duble_vec/
lib.rs

1pub mod dublevec;
2pub mod vec2;
3
4#[cfg(test)]
5mod tests {
6    use super::*;
7    use dublevec::DubleVec;
8    use vec2::Vec2;
9
10    #[test]
11    fn assign_works() {
12        let mut vec: DubleVec<i32> = DubleVec::new(Vec2 { x: 5, y: 5 }, 0);
13        vec.assign(5, Vec2 { x: 1, y: 1 }); // 5
14    }
15    #[test]
16    fn access_works() -> Result<(), ()> {
17        let vec: DubleVec<i32> = DubleVec::new(Vec2 { x: 2, y: 2 }, 0);
18        if vec.access(Vec2 { x: 0, y: 1 }).is_some() {
19            Ok(())
20        } else {
21            Err(())
22        }
23    }
24    #[test]
25    fn vec2_works() {
26        assert_eq!(
27            Vec2 { x: 5, y: 5 } * Vec2 { x: 2, y: 2 },
28            Vec2 { x: 10, y: 10 }
29        );
30    }
31    #[test]
32    fn from_works() {
33        let vecvec: Vec<Vec<i32>> = vec![
34            vec![5, 0, 2, 0, 0],
35            vec![1, 2, 0, 0, 0],
36            vec![7, 8, 9, 1, 0],
37            vec![3, 0, 0, 0, 0],
38            vec![4, 4, 4, 0, 3],
39        ];
40        let _dublevec_i32: DubleVec<i32> = DubleVec::from(vecvec);
41    }
42    #[test]
43    fn fmt_works() {
44        let mut dublevec: DubleVec<char> = DubleVec::new(Vec2 { x: 5, y: 5 }, '#');
45        dublevec.assign('*', Vec2 { x: 2, y: 2 });
46        println!("{}", dublevec);
47    }
48}