vrp_parser 0.1.0

A library for parsing VRPLib-formatted files.
Documentation
pub(crate) fn expand_lower_row<T: Default + Copy>(lower_row: &[Vec<T>]) -> Vec<Vec<T>> {
    let size = lower_row.len() + 1;
    let mut ret = vec![vec![Default::default(); size]; size];

    for i in 0..ret.len() {
        for j in 0..ret[i].len() {
            if i < j {
                ret[i][j] = lower_row[j - 1][i];
            }
            if i > j {
                ret[i][j] = lower_row[i - 1][j];
            }
        }
    }
    ret
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_expand_lower_row() {
        let sut = vec![vec![1], vec![2, 3]];

        let value = expand_lower_row(&sut);

        let expected = vec![vec![0, 1, 2], vec![1, 0, 3], vec![2, 3, 0]];
        assert_eq!(value, expected);
    }
}