Now that the package is a stable state, it would be a good idea to do a performance audit and track the performance of the package over each version. This could also be run in the CI, although I'm not sure how to set that up and I'm not particularly bothered one way or about this. This tracking could be at a high level to start with, and then as problematic functions are identified I could add tests of those lower-level functions into the test suite. Some good benchmarks to track would be:
[ ] Unconstrained triangulations of random point sets
[ ] Unconstrained triangulations of highly collinear point sets
[ ] Constrained triangulations with only interior segments
[ ] Constrained triangulations with only boundary nodes
[ ] Constrained triangulations with interior segments and boundary nodes
[ ] Constrained triangulations with holes
[ ] Constrained triangulations of a disjoint domain
[ ] Point location in an unconstrained triangulation for points in the interior, on the boundary, or outside of the triangulation
[ ] Point location in an unconstrained triangulation of a highly collinear set for points in the interior, on the boundary, or outside of the triangulation
[ ] Point location in a disjoint domain for points in the interior, on the boundary, or outside of the triangulation
[ ] Triangulations of a convex polygon
[ ] Mesh refinement of an unconstrained triangulation
[ ] Mesh refinement of a constrained triangulation
[ ] Mesh refinement of a constrained triangulation for a domain with many small angles
[ ] Mesh refinement of a disjoint domain
[ ] Triangulation and refinement of a curve-bounded domain
[ ] Triangulation and refinement of a curve-bounded domain with many different types of curves and a piecewise linear portion
[ ] Voronoi tessellation of random point sets
[ ] Voronoi tessellations of triangles with many shared circumcenters, e.g. of a lattice
[ ] Clipped Voronoi tessellations
[ ] Centroidal Voronoi tessellations
[ ] Point location in a Voronoi tessellation, i.e. nearest neighbour queries
[ ] Computing the pole of inaccessibility
[ ] Computing convex hulls from point sets directly
[ ] Finding what polygon contains a given point (find_polygon)
[ ] Predicates (might be hard to test this since the runtimes are so small)
[ ] Computing the statistics of a triangulation
[ ] Triangulations of domains with many boundary points
Now that the package is a stable state, it would be a good idea to do a performance audit and track the performance of the package over each version. This could also be run in the CI, although I'm not sure how to set that up and I'm not particularly bothered one way or about this. This tracking could be at a high level to start with, and then as problematic functions are identified I could add tests of those lower-level functions into the test suite. Some good benchmarks to track would be:
find_polygon
)statistics
of a triangulation