#![deny(warnings)]
use rust_3d::{test_helper::*, *};
#[test]
fn filter_or_test() {
let filter_sphere = FilterSphere::new(Sphere {
center: Point3D {
x: 14.0,
y: 14.0,
z: 14.0,
},
radius: Positive::new(5.0).unwrap(),
});
let filter_box = FilterBox3D::new(Box3D {
center: Point3D {
x: 4.0,
y: 4.0,
z: 4.0,
},
size_x: Positive::new(5.0).unwrap(),
size_y: Positive::new(7.0).unwrap(),
size_z: Positive::new(15.0).unwrap(),
});
let filter = FilterOR::new(filter_sphere, filter_box);
test_filter_3d::<_, Point3D>(filter, "tests/data/expected_filter_or.xyz", "or");
}
#[test]
fn filter_and_test() {
let filter_sphere = FilterSphere::new(Sphere {
center: Point3D {
x: 10.0,
y: 10.0,
z: 10.0,
},
radius: Positive::new(5.0).unwrap(),
});
let filter_box = FilterBox3D::new(Box3D {
center: Point3D {
x: 8.0,
y: 8.0,
z: 8.0,
},
size_x: Positive::new(5.0).unwrap(),
size_y: Positive::new(7.0).unwrap(),
size_z: Positive::new(15.0).unwrap(),
});
let filter = FilterAND::new(filter_sphere, filter_box);
test_filter_3d::<_, Point3D>(filter, "tests/data/expected_filter_and.xyz", "and");
}
#[test]
fn filter_xor_test() {
let filter_sphere = FilterSphere::new(Sphere {
center: Point3D {
x: 13.0,
y: 13.0,
z: 13.0,
},
radius: Positive::new(10.0).unwrap(),
});
let filter_box = FilterBox3D::new(Box3D {
center: Point3D {
x: 8.0,
y: 8.0,
z: 8.0,
},
size_x: Positive::new(5.0).unwrap(),
size_y: Positive::new(7.0).unwrap(),
size_z: Positive::new(30.0).unwrap(),
});
let filter = FilterXOR::new(filter_sphere, filter_box);
test_filter_3d::<_, Point3D>(filter, "tests/data/expected_filter_xor.xyz", "xor");
}
#[test]
fn filter_all_test() {
let filter_sphere = FilterSphere::new(Sphere {
center: Point3D {
x: 10.0,
y: 10.0,
z: 10.0,
},
radius: Positive::new(5.0).unwrap(),
});
let filter_box = FilterBox3D::new(Box3D {
center: Point3D {
x: 8.0,
y: 8.0,
z: 8.0,
},
size_x: Positive::new(5.0).unwrap(),
size_y: Positive::new(7.0).unwrap(),
size_z: Positive::new(15.0).unwrap(),
});
let mut filter = FilterAll::new();
filter.filters.push(Box::new(filter_sphere));
filter.filters.push(Box::new(filter_box));
test_filter_3d::<_, Point3D>(filter, "tests/data/expected_filter_and.xyz", "and");
}
#[test]
fn filter_any_test() {
let filter_sphere = FilterSphere::new(Sphere {
center: Point3D {
x: 14.0,
y: 14.0,
z: 14.0,
},
radius: Positive::new(5.0).unwrap(),
});
let filter_box = FilterBox3D::new(Box3D {
center: Point3D {
x: 4.0,
y: 4.0,
z: 4.0,
},
size_x: Positive::new(5.0).unwrap(),
size_y: Positive::new(7.0).unwrap(),
size_z: Positive::new(15.0).unwrap(),
});
let mut filter = FilterAny::new();
filter.filters.push(Box::new(filter_sphere));
filter.filters.push(Box::new(filter_box));
test_filter_3d::<_, Point3D>(filter, "tests/data/expected_filter_or.xyz", "or");
}
#[test]
fn filter_outer_inner_test() {
let center = Point3D {
x: 10.0,
y: 10.0,
z: 10.0,
};
let filter_outer = FilterSphere::new(Sphere {
center: center.clone(),
radius: Positive::new(4.0).unwrap(),
});
let filter_inner = FilterSphere::new(Sphere {
center: center,
radius: Positive::new(3.0).unwrap(),
});
let filter = FilterOuterInner::new(filter_outer, filter_inner);
test_filter_3d::<_, Point3D>(
filter,
"tests/data/expected_filter_outer_inner.xyz",
"outer_inner",
);
}
#[test]
fn filter_negate_test() {
let center = Point3D {
x: 10.0,
y: 10.0,
z: 10.0,
};
let filter_sphere = FilterSphere::new(Sphere {
center: center.clone(),
radius: Positive::new(10.0).unwrap(),
});
let filter = FilterNegate::new(filter_sphere);
test_filter_3d::<_, Point3D>(filter, "tests/data/expected_filter_negate.xyz", "negate");
}
#[test]
fn filter_allow_test() {
let filter = FilterAllow::new();
test_filter_3d::<_, Point3D>(filter, "tests/data/expected_filter_allow.xyz", "allow");
}
#[test]
fn filter_deny_test() {
let filter = FilterDeny::new();
test_filter_3d::<_, Point3D>(filter, "tests/data/expected_filter_deny.xyz", "deny");
}