mirror of https://github.com/CGAL/cgal
Re-enable a test
This commit is contained in:
parent
9e2a59ee6a
commit
dade66d8c4
|
|
@ -1,7 +1,7 @@
|
||||||
#include "test_util.h"
|
#include "test_util.h"
|
||||||
|
|
||||||
#include <CGAL/Simple_cartesian.h>
|
#include <CGAL/Simple_cartesian.h>
|
||||||
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
|
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
#include <CGAL/Surface_mesh.h>
|
#include <CGAL/Surface_mesh.h>
|
||||||
|
|
||||||
#include <CGAL/Isosurfacing_3/internal/implicit_shapes_helper.h>
|
#include <CGAL/Isosurfacing_3/internal/implicit_shapes_helper.h>
|
||||||
|
|
@ -76,13 +76,13 @@ void test_cube()
|
||||||
std::cout << "Output #vertices: " << points.size() << std::endl;
|
std::cout << "Output #vertices: " << points.size() << std::endl;
|
||||||
std::cout << "Output #polygons: " << polygons.size() << std::endl;
|
std::cout << "Output #polygons: " << polygons.size() << std::endl;
|
||||||
|
|
||||||
CGAL::IO::write_polygon_soup("MC.off", points, polygons, CGAL::parameters::stream_precision(17));
|
CGAL::IO::write_OFF("MC.off", points, polygons, CGAL::parameters::stream_precision(17));
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int, char**)
|
int main(int, char**)
|
||||||
{
|
{
|
||||||
test_cube<CGAL::Simple_cartesian<double> >();
|
test_cube<CGAL::Simple_cartesian<double> >();
|
||||||
//test_cube<CGAL::Epeck >();
|
test_cube<CGAL::Exact_predicates_inexact_constructions_kernel>();
|
||||||
|
|
||||||
std::cout << "Done" << std::endl;
|
std::cout << "Done" << std::endl;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,8 @@ void verify_euler() {
|
||||||
|
|
||||||
using Mesh = CGAL::Surface_mesh<Point>;
|
using Mesh = CGAL::Surface_mesh<Point>;
|
||||||
|
|
||||||
|
std::cout << " == Verify Euler ==" << std::endl;
|
||||||
|
|
||||||
const std::size_t num_tests = 10000;
|
const std::size_t num_tests = 10000;
|
||||||
|
|
||||||
for (std::size_t i = 0; i < num_tests; i++) {
|
for (std::size_t i = 0; i < num_tests; i++) {
|
||||||
|
|
@ -110,12 +112,18 @@ void verify_euler() {
|
||||||
Values values { grid };
|
Values values { grid };
|
||||||
Domain domain { grid, values };
|
Domain domain { grid, values };
|
||||||
|
|
||||||
read_iso_volume("data/MarchingCubes_cases/Grids/" + std::to_string(i) + "-scalar_field.iso", grid, values);
|
std::string filename = "/path/to/data/MarchingCubes_cases/Grids/" + std::to_string(i) + "-scalar_field.iso";
|
||||||
|
|
||||||
|
std::cout << "Verify " << filename << "..." << std::endl;
|
||||||
|
|
||||||
|
read_iso_volume(filename, grid, values);
|
||||||
|
|
||||||
Point_range points;
|
Point_range points;
|
||||||
Polygon_range triangles;
|
Polygon_range triangles;
|
||||||
IS::marching_cubes<CGAL::Sequential_tag>(domain, 0, points, triangles, CGAL::parameters::use_topologically_correct_marching_cubes(true));
|
IS::marching_cubes<CGAL::Sequential_tag>(domain, 0, points, triangles, CGAL::parameters::use_topologically_correct_marching_cubes(true));
|
||||||
|
|
||||||
|
CGAL::IO::write_polygon_soup("last_result.off", points, triangles);
|
||||||
|
|
||||||
assert(points.size() && triangles.size());
|
assert(points.size() && triangles.size());
|
||||||
assert(!has_duplicate_points(points, triangles));
|
assert(!has_duplicate_points(points, triangles));
|
||||||
assert(!has_duplicate_polygons(points, triangles));
|
assert(!has_duplicate_polygons(points, triangles));
|
||||||
|
|
@ -126,7 +134,7 @@ void verify_euler() {
|
||||||
CGAL::Polygon_mesh_processing::polygon_soup_to_polygon_mesh(points, triangles, m);
|
CGAL::Polygon_mesh_processing::polygon_soup_to_polygon_mesh(points, triangles, m);
|
||||||
|
|
||||||
const int euler = euler_characteristic(m);
|
const int euler = euler_characteristic(m);
|
||||||
const int solution = read_euler("data/MarchingCubes_cases/Grid_invariants/" + std::to_string(i) + "-euler_number.txt");
|
const int solution = read_euler("/path/to/data/MarchingCubes_cases/Grid_invariants/" + std::to_string(i) + "-euler_number.txt");
|
||||||
|
|
||||||
if (euler != solution)
|
if (euler != solution)
|
||||||
std::cout << "error in test " << i << ": euler " << euler << " != " << solution << std::endl;
|
std::cout << "error in test " << i << ": euler " << euler << " != " << solution << std::endl;
|
||||||
|
|
@ -149,6 +157,8 @@ void verify_betti() {
|
||||||
|
|
||||||
using Mesh = CGAL::Surface_mesh<Point>;
|
using Mesh = CGAL::Surface_mesh<Point>;
|
||||||
|
|
||||||
|
std::cout << " == Verify Betti ==" << std::endl;
|
||||||
|
|
||||||
const std::size_t num_tests = 10000;
|
const std::size_t num_tests = 10000;
|
||||||
|
|
||||||
for (std::size_t i = 0; i < num_tests; i++) {
|
for (std::size_t i = 0; i < num_tests; i++) {
|
||||||
|
|
@ -157,12 +167,18 @@ void verify_betti() {
|
||||||
Values values { grid };
|
Values values { grid };
|
||||||
Domain domain { grid, values };
|
Domain domain { grid, values };
|
||||||
|
|
||||||
read_iso_volume("data/Closed_Surfaces/Grids/" + std::to_string(i) + "-scalar_field.iso", grid, values);
|
std::string filename = "/path/to/data/Closed_Surfaces/Grids/" + std::to_string(i) + "-scalar_field.iso";
|
||||||
|
|
||||||
|
std::cout << "Verify " << filename << "..." << std::endl;
|
||||||
|
|
||||||
|
read_iso_volume(filename, grid, values);
|
||||||
|
|
||||||
Point_range points;
|
Point_range points;
|
||||||
Polygon_range triangles;
|
Polygon_range triangles;
|
||||||
IS::marching_cubes<CGAL::Sequential_tag>(domain, 0, points, triangles, CGAL::parameters::use_topologically_correct_marching_cubes(true));
|
IS::marching_cubes<CGAL::Sequential_tag>(domain, 0, points, triangles, CGAL::parameters::use_topologically_correct_marching_cubes(true));
|
||||||
|
|
||||||
|
CGAL::IO::write_polygon_soup("last_result.off", points, triangles);
|
||||||
|
|
||||||
assert(points.size() && triangles.size());
|
assert(points.size() && triangles.size());
|
||||||
assert(!has_duplicate_points(points, triangles));
|
assert(!has_duplicate_points(points, triangles));
|
||||||
assert(!has_duplicate_polygons(points, triangles));
|
assert(!has_duplicate_polygons(points, triangles));
|
||||||
|
|
@ -174,7 +190,7 @@ void verify_betti() {
|
||||||
|
|
||||||
const int b0 = betti_0(m);
|
const int b0 = betti_0(m);
|
||||||
const int b1 = betti_1(m);
|
const int b1 = betti_1(m);
|
||||||
const auto solution = read_betti("data/Closed_Surfaces/InvariantsGrid/" + std::to_string(i) + "-invariant_grid.txt");
|
const auto solution = read_betti("/path/to/data/Closed_Surfaces/InvariantsGrid/" + std::to_string(i) + "-invariant_grid.txt");
|
||||||
|
|
||||||
if (b0 != solution[0])
|
if (b0 != solution[0])
|
||||||
std::cout << "error in test " << i << ": b0 " << b0 << " != " << solution[0] << std::endl;
|
std::cout << "error in test " << i << ": b0 " << b0 << " != " << solution[0] << std::endl;
|
||||||
|
|
@ -232,6 +248,6 @@ int main(int, char**)
|
||||||
|
|
||||||
verify_euler<K>();
|
verify_euler<K>();
|
||||||
verify_betti<K>();
|
verify_betti<K>();
|
||||||
//compare_to_reference<K>("data/MarchingCubes_cases/Grids/" + std::to_string(100) + "-scalar_field.iso");
|
//compare_to_reference<K>("/path/to/data/MarchingCubes_cases/Grids/" + std::to_string(100) + "-scalar_field.iso");
|
||||||
// compare_to_reference<K>("data/Closed_Surfaces/Grids/" + std::to_string(0) + "-scalar_field.iso");
|
// compare_to_reference<K>("/path/to/data/Closed_Surfaces/Grids/" + std::to_string(0) + "-scalar_field.iso");
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue