Browse Source

MeshTools: update an assertion text, add a test for it.

pull/371/head
Vladimír Vondruš 6 years ago
parent
commit
24d01e29c8
  1. 2
      src/Magnum/MeshTools/GenerateNormals.cpp
  2. 12
      src/Magnum/MeshTools/Test/GenerateNormalsTest.cpp

2
src/Magnum/MeshTools/GenerateNormals.cpp

@ -111,7 +111,7 @@ template<class T> inline void generateSmoothNormalsIntoImplementation(const Cont
Containers::arrayCast<UnsignedInt>(normals);
for(UnsignedInt& i: triangleCount) i = 0;
for(const T index: indices) {
CORRADE_ASSERT(index < positions.size(), "MeshTools::generateSmoothNormals(): index" << index << "out of bounds for" << positions.size() << "elements", );
CORRADE_ASSERT(index < positions.size(), "MeshTools::generateSmoothNormalsInto(): index" << index << "out of bounds for" << positions.size() << "elements", );
++triangleCount[index];
}

12
src/Magnum/MeshTools/Test/GenerateNormalsTest.cpp

@ -58,6 +58,7 @@ struct GenerateNormalsTest: TestSuite::Tester {
void smoothZeroAreaTriangle();
void smoothNanPosition();
void smoothWrongCount();
void smoothOutOfBounds();
void smoothIntoWrongSize();
void benchmarkFlat();
@ -81,6 +82,7 @@ GenerateNormalsTest::GenerateNormalsTest() {
&GenerateNormalsTest::smoothZeroAreaTriangle,
&GenerateNormalsTest::smoothNanPosition,
&GenerateNormalsTest::smoothWrongCount,
&GenerateNormalsTest::smoothOutOfBounds,
&GenerateNormalsTest::smoothIntoWrongSize});
addBenchmarks({&GenerateNormalsTest::benchmarkFlat,
@ -386,6 +388,16 @@ void GenerateNormalsTest::smoothWrongCount() {
CORRADE_COMPARE(out.str(), "MeshTools::generateSmoothNormalsInto(): index count not divisible by 3\n");
}
void GenerateNormalsTest::smoothOutOfBounds() {
std::stringstream out;
Error redirectError{&out};
const Vector3 positions[2];
const UnsignedInt indices[] { 0, 1, 2 };
generateSmoothNormals(indices, positions);
CORRADE_COMPARE(out.str(), "MeshTools::generateSmoothNormalsInto(): index 2 out of bounds for 2 elements\n");
}
void GenerateNormalsTest::smoothIntoWrongSize() {
std::stringstream out;
Error redirectError{&out};

Loading…
Cancel
Save