diff --git a/src/lib.rs b/src/lib.rs index 118ba2c..65671b5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,95 +7,60 @@ mod tests { #[test] fn graph() { let mut adjazenz_matrix: Vec> = graph::matrix::read_csv(); - let distanz_matrix: Vec> = graph::calculate_distanz_matrix(&adjazenz_matrix); - let weg_matrix: Vec> = graph::calculate_weg_matrix(&adjazenz_matrix); - let expected_adjazenz_matrix: Vec> = vec![ - vec![0, 0, 1, 1, 0], - vec![0, 0, 1, 1, 0], - vec![1, 1, 0, 1, 0], - vec![1, 1, 1, 0, 1], - vec![0, 0, 0, 1, 0] - ]; - let expected_distanz_matrix: Vec> = vec![ - vec![0, 2, 1, 1, 2], - vec![2, 0, 1, 1, 2], - vec![1, 1, 0, 1, 2], - vec![1, 1, 1, 0, 1], - vec![2, 2, 2, 1, 0] - ]; - let expected_weg_matrix: Vec> = vec![ - vec![1, 1, 1, 1, 1], - vec![1, 1, 1, 1, 1], - vec![1, 1, 1, 1, 1], - vec![1, 1, 1, 1, 1], - vec![1, 1, 1, 1, 1] - ]; + let distanz_matrix: Vec> = graph::calculate_distanz_matrix(&adjazenz_matrix); + let weg_matrix: Vec> = graph::calculate_weg_matrix(&adjazenz_matrix); + let exzentrizitaeten = graph::calculate_exzentrizitaeten(&distanz_matrix); + let properties = graph::calculate_properties(&exzentrizitaeten); + let components = graph::find_components(&weg_matrix); - assert_eq!(adjazenz_matrix, expected_adjazenz_matrix); - assert_eq!(distanz_matrix, expected_distanz_matrix); - assert_eq!(weg_matrix, expected_weg_matrix); - - let exzentrizitaeten = graph::calculate_exzentrizitaeten(&distanz_matrix); - let mut connected: bool = true; - - if exzentrizitaeten.contains(&0) { - connected = false; - } - assert_eq!(exzentrizitaeten, vec![2, 2, 2, 1, 2]); - assert_eq!(connected, true); - - let properties = graph::calculate_properties(&exzentrizitaeten); - let radius: usize = properties.0; - let diameter: usize = properties.1; - let centre: Vec = properties.2; - - assert_eq!(radius, 1); - assert_eq!(diameter, 2); - assert_eq!(centre, vec![4]); - - let components = graph::find_components(&weg_matrix); - let bridges = graph::find_bridges(&mut adjazenz_matrix, &components); - let articulations = graph::find_articulations(&adjazenz_matrix, &components); - - assert_eq!(components, vec![vec![1, 2, 3, 4, 5]]); - assert_eq!(bridges, vec![vec![4, 5]]); - assert_eq!(articulations, vec![4]); - } - - #[test] - fn matrix() { - let matrix1 = read_csv(); - let expected_matrix: Vec> = vec![ + assert_eq!(adjazenz_matrix, vec![ vec![0, 0, 1, 1, 0], vec![0, 0, 1, 1, 0], vec![1, 1, 0, 1, 0], vec![1, 1, 1, 0, 1], vec![0, 0, 0, 1, 0] - ]; - let matrix2: Vec> = matrix1.clone(); + ]); + assert_eq!(distanz_matrix, vec![ + vec![0, 2, 1, 1, 2], + vec![2, 0, 1, 1, 2], + vec![1, 1, 0, 1, 2], + vec![1, 1, 1, 0, 1], + vec![2, 2, 2, 1, 0] + ]); + assert_eq!(weg_matrix, vec![ + vec![1, 1, 1, 1, 1], + vec![1, 1, 1, 1, 1], + vec![1, 1, 1, 1, 1], + vec![1, 1, 1, 1, 1], + vec![1, 1, 1, 1, 1] + ]); + assert_eq!(exzentrizitaeten, vec![2, 2, 2, 1, 2]); + assert_eq!(properties.0, 1); + assert_eq!(properties.1, 2); + assert_eq!(properties.2, vec![4]); + assert_eq!(properties.3, true); + assert_eq!(components, vec![vec![1, 2, 3, 4, 5]]); + assert_eq!(graph::find_bridges(&mut adjazenz_matrix, &components), vec![vec![4, 5]]); + assert_eq!(graph::find_articulations(&adjazenz_matrix, &components), vec![4]); + } - assert_eq!(matrix1, expected_matrix); + #[test] + fn matrix() { + let adjazenz_matrix: Vec> = read_csv(); - let mut product: Vec> = mult(&matrix1, &matrix2); - let mut expected_product: Vec> = vec![ + assert_eq!(adjazenz_matrix, vec![ + vec![0, 0, 1, 1, 0], + vec![0, 0, 1, 1, 0], + vec![1, 1, 0, 1, 0], + vec![1, 1, 1, 0, 1], + vec![0, 0, 0, 1, 0] + ]); + assert_eq!(mult(&adjazenz_matrix, &adjazenz_matrix), vec![ vec![2, 2, 1, 1, 1], vec![2, 2, 1, 1, 1], vec![1, 1, 3, 2, 1], vec![1, 1, 2, 4, 0], vec![1, 1, 1, 0, 1] - ]; - - assert_eq!(product, expected_product); - - product = mult(&product, &matrix1); - expected_product = vec![ - vec![2, 2, 5, 6, 1], - vec![2, 2, 5, 6, 1], - vec![5, 5, 4, 6, 2], - vec![6, 6, 6, 4, 4], - vec![1, 1, 2, 4, 0] - ]; - - assert_eq!(product, expected_product) + ]); } } \ No newline at end of file