Browse Source

MeshTools: add benchmark for boundingBoxAxisAligned()

pull/557/head
Pablo Escobar 4 years ago
parent
commit
5725761ba1
  1. 19
      src/Magnum/MeshTools/Test/BoundingVolumeTest.cpp

19
src/Magnum/MeshTools/Test/BoundingVolumeTest.cpp

@ -49,6 +49,7 @@ struct BoundingVolumeTest: TestSuite::Tester {
void boxAxisAligned();
void sphereBouncingBubble();
void benchmarkBoxAxisAligned();
void benchmarkSphereBouncingBubble();
};
@ -56,7 +57,8 @@ BoundingVolumeTest::BoundingVolumeTest() {
addTests({&BoundingVolumeTest::boxAxisAligned,
&BoundingVolumeTest::sphereBouncingBubble});
addBenchmarks({&BoundingVolumeTest::benchmarkSphereBouncingBubble}, 150);
addBenchmarks({&BoundingVolumeTest::benchmarkBoxAxisAligned,
&BoundingVolumeTest::benchmarkSphereBouncingBubble}, 150);
}
void BoundingVolumeTest::boxAxisAligned() {
@ -195,6 +197,21 @@ void BoundingVolumeTest::sphereBouncingBubble() {
}
}
void BoundingVolumeTest::benchmarkBoxAxisAligned() {
Containers::Array<Vector3> points{NoInit, 500};
for(size_t i = 0; i < points.size(); ++i) {
points[i] = Vector3{Float(i)*0.01f};
}
Float r = 0.0f;
CORRADE_BENCHMARK(50) {
const Range3D box = MeshTools::boundingBoxAxisAligned(points);
r += box.size().x();
}
CORRADE_COMPARE_AS(r, 1.0f, TestSuite::Compare::Greater);
}
void BoundingVolumeTest::benchmarkSphereBouncingBubble() {
Containers::Array<Vector3> points{NoInit, 500};
for(size_t i = 0; i < points.size(); ++i) {

Loading…
Cancel
Save