way simpler tests

This commit is contained in:
René Fuhry 2023-05-31 23:08:14 +02:00 committed by GitHub
parent cffad9380b
commit 33552c695b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7,95 +7,60 @@ mod tests {
#[test] #[test]
fn graph() { fn graph() {
let mut adjazenz_matrix: Vec<Vec<usize>> = graph::matrix::read_csv(); let mut adjazenz_matrix: Vec<Vec<usize>> = graph::matrix::read_csv();
let distanz_matrix: Vec<Vec<usize>> = graph::calculate_distanz_matrix(&adjazenz_matrix); let distanz_matrix: Vec<Vec<usize>> = graph::calculate_distanz_matrix(&adjazenz_matrix);
let weg_matrix: Vec<Vec<usize>> = graph::calculate_weg_matrix(&adjazenz_matrix); let weg_matrix: Vec<Vec<usize>> = graph::calculate_weg_matrix(&adjazenz_matrix);
let expected_adjazenz_matrix: Vec<Vec<usize>> = vec![ let exzentrizitaeten = graph::calculate_exzentrizitaeten(&distanz_matrix);
vec![0, 0, 1, 1, 0], let properties = graph::calculate_properties(&exzentrizitaeten);
vec![0, 0, 1, 1, 0], let components = graph::find_components(&weg_matrix);
vec![1, 1, 0, 1, 0],
vec![1, 1, 1, 0, 1],
vec![0, 0, 0, 1, 0]
];
let expected_distanz_matrix: Vec<Vec<usize>> = 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<usize>> = 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!(adjazenz_matrix, expected_adjazenz_matrix); assert_eq!(adjazenz_matrix, vec![
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<usize> = 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<usize>> = vec![
vec![0, 0, 1, 1, 0], vec![0, 0, 1, 1, 0],
vec![0, 0, 1, 1, 0], vec![0, 0, 1, 1, 0],
vec![1, 1, 0, 1, 0], vec![1, 1, 0, 1, 0],
vec![1, 1, 1, 0, 1], vec![1, 1, 1, 0, 1],
vec![0, 0, 0, 1, 0] vec![0, 0, 0, 1, 0]
]; ]);
let matrix2: Vec<Vec<usize>> = 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<Vec<usize>> = read_csv();
let mut product: Vec<Vec<usize>> = mult(&matrix1, &matrix2); assert_eq!(adjazenz_matrix, vec![
let mut expected_product: Vec<Vec<usize>> = 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![2, 2, 1, 1, 1], vec![2, 2, 1, 1, 1],
vec![1, 1, 3, 2, 1], vec![1, 1, 3, 2, 1],
vec![1, 1, 2, 4, 0], vec![1, 1, 2, 4, 0],
vec![1, 1, 1, 0, 1] 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)
} }
} }