Browse Source

Max out Array test coverage.

Of course the untested part has a bug.
pull/233/head
Vladimír Vondruš 8 years ago
parent
commit
e0be7c14f1
  1. 6
      src/Magnum/Array.h
  2. 14
      src/Magnum/Test/ArrayTest.cpp

6
src/Magnum/Array.h

@ -201,12 +201,12 @@ template<class T> class Array3D: public Array<3, T> {
/** @debugoperator{Array} */
template<UnsignedInt dimensions, class T> Debug& operator<<(Debug& debug, const Array<dimensions, T>& value) {
debug << "Array(" << Corrade::Utility::Debug::nospace;
debug << "Array(" << Debug::nospace;
for(UnsignedInt i = 0; i != dimensions; ++i) {
if(i != 0) debug << ",";
if(i != 0) debug << Debug::nospace << ",";
debug << value[i];
}
return debug << Corrade::Utility::Debug::nospace << ")";
return debug << Debug::nospace << ")";
}
/** @debugoperator{Array1D} */

14
src/Magnum/Test/ArrayTest.cpp

@ -23,6 +23,7 @@
DEALINGS IN THE SOFTWARE.
*/
#include <sstream>
#include <Corrade/TestSuite/Tester.h>
#include "Magnum/Array.h"
@ -35,6 +36,8 @@ struct ArrayTest: TestSuite::Tester {
void construct();
void equality();
void access();
void debug();
};
typedef Magnum::Array1D<Int> Array1D;
@ -44,7 +47,9 @@ typedef Magnum::Array3D<Int> Array3D;
ArrayTest::ArrayTest() {
addTests({&ArrayTest::construct,
&ArrayTest::equality,
&ArrayTest::access});
&ArrayTest::access,
&ArrayTest::debug});
}
void ArrayTest::construct() {
@ -109,6 +114,13 @@ void ArrayTest::access() {
CORRADE_COMPARE(cc.xy(), Array2D(-5, 6));
}
void ArrayTest::debug() {
std::ostringstream out;
Debug{&out} << Array<4, Int>{5, 6, 7, 8} << Array1D{13} << Array2D{71, 2} << Array3D{1, 2, 3};
CORRADE_COMPARE(out.str(), "Array(5, 6, 7, 8) Array(13) Array(71, 2) Array(1, 2, 3)\n");
}
}}
CORRADE_TEST_MAIN(Magnum::Test::ArrayTest)

Loading…
Cancel
Save