toodee 0.6.0

A lightweight 2D wrapper around a Vec.
Documentation
#[cfg(test)]
mod toodee_tests_copy {

    use crate::*;

    #[test]
    fn copy_within_1() {
        let mut toodee = TooDee::from_vec(10, 10, (0u32..100).collect());
        toodee.copy_within(((0, 0), (2, 2)), (8, 8));
        let orig = (100*100 - 100) / 2;
        assert_eq!(toodee.data().iter().sum::<u32>(), orig - 98-99-88-89+1+10+11);
    }
    
    #[test]
    fn copy_within_2() {
        let mut toodee = TooDee::from_vec(10, 10, (0u32..100).collect());
        toodee.copy_within(((8, 8), (10, 10)), (0, 0));
        let orig = (100*100 - 100) / 2;
        assert_eq!(toodee.data().iter().sum::<u32>(), orig +98+99+88+89-1-10-11);
    }

    #[test]
    fn copy_within_overlap_1() {
        let mut toodee = TooDee::from_vec(10, 10, (0u32..100).collect());
        toodee.copy_within(((0, 0), (2, 2)), (1, 1));
        let orig = (100*100 - 100) / 2;
        assert_eq!(toodee.data().iter().sum::<u32>(), orig -11-12-21-22 +1+10+11);
    }

    #[test]
    fn copy_within_overlap_2() {
        let mut toodee = TooDee::from_vec(10, 10, (0u32..100).collect());
        toodee.copy_within(((1, 1), (3, 3)), (0, 0));
        let orig = (100*100 - 100) / 2;
        assert_eq!(toodee.data().iter().sum::<u32>(), orig +11+12+21+22 -1-10-11);
    }

    #[test]
    fn copy_from_toodee() {
        let toodee = TooDee::from_vec(10, 10, (0u32..100).collect());
        let mut dest : TooDee<u32> = TooDee::new(10, 10);
        dest.copy_from_toodee(&toodee);
        assert_eq!(dest.data().iter().sum::<u32>(), (100*100 - 100) / 2);
    }

    #[test]
    fn clone_from_toodee() {
        let toodee = TooDee::from_vec(10, 10, (0u32..100).collect());
        let mut dest : TooDee<u32> = TooDee::new(10, 10);
        dest.clone_from_toodee(&toodee);
        assert_eq!(dest.data().iter().sum::<u32>(), (100*100 - 100) / 2);
    }

    #[test]
    fn view_copy_from_toodee() {
        let toodee = TooDee::from_vec(10, 10, (0u32..100).collect());
        let mut dest : TooDee<u32> = TooDee::new(10, 10);
        dest.view_mut((0, 0), (10, 10)).copy_from_toodee(&toodee);
        assert_eq!(dest.data().iter().sum::<u32>(), (100*100 - 100) / 2);
    }

    #[test]
    fn view_clone_from_toodee() {
        let toodee = TooDee::from_vec(10, 10, (0u32..100).collect());
        let mut dest : TooDee<u32> = TooDee::new(10, 10);
        dest.view_mut((0, 0), (10, 10)).clone_from_toodee(&toodee);
        assert_eq!(dest.data().iter().sum::<u32>(), (100*100 - 100) / 2);
    }

}