conspire 0.7.0

The Rust interface to conspire.
Documentation
use crate::geometry::{grid::Pixels, mesh::Mesh};

fn first_element(mesh: &Mesh<2>, block: usize) -> &[usize] {
    mesh.iter().nth(block).unwrap().iter().next().unwrap()
}

#[test]
fn all_pixels_grouped_by_material() {
    let mesh = Mesh::from_pixels(Pixels::new(vec![1u8, 2], [2, 1]), None);
    assert_eq!(mesh.number_of_elements(), 2);
    assert_eq!(mesh.number_of_nodes(), 6);
    assert_eq!(mesh.number_of_element_blocks(), 2);
    assert_eq!(first_element(&mesh, 0), [0, 1, 4, 3]);
    assert_eq!(first_element(&mesh, 1), [1, 2, 5, 4]);
}

#[test]
fn removes_material() {
    let mesh = Mesh::from_pixels(Pixels::new(vec![1u8, 2], [2, 1]), Some(&[2]));
    assert_eq!(mesh.number_of_elements(), 1);
    assert_eq!(mesh.number_of_nodes(), 4);
    assert_eq!(mesh.number_of_element_blocks(), 1);
    assert_eq!(first_element(&mesh, 0), [0, 1, 3, 2]);
}