summaryrefslogtreecommitdiffstats
path: root/tests/PieceRotation/PieceRotationTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/PieceRotation/PieceRotationTest.cpp')
-rw-r--r--tests/PieceRotation/PieceRotationTest.cpp170
1 files changed, 0 insertions, 170 deletions
diff --git a/tests/PieceRotation/PieceRotationTest.cpp b/tests/PieceRotation/PieceRotationTest.cpp
deleted file mode 100644
index ace3bd489..000000000
--- a/tests/PieceRotation/PieceRotationTest.cpp
+++ /dev/null
@@ -1,170 +0,0 @@
-// PieceRotation.cpp
-
-// Implements the tests for cPiece::cConnector::eDirection rotations
-
-#include "Globals.h"
-#include <exception>
-#include <map>
-#include "Generating/PiecePool.h"
-
-
-
-
-
-static cPiece::cConnector::eDirection g_AllDirections[] =
-{
- cPiece::cConnector::dirXM,
- cPiece::cConnector::dirXP,
- cPiece::cConnector::dirYM,
- cPiece::cConnector::dirYP,
- cPiece::cConnector::dirZM,
- cPiece::cConnector::dirZP,
- cPiece::cConnector::dirYM_XM_ZM,
- cPiece::cConnector::dirYM_XM_ZP,
- cPiece::cConnector::dirYM_XP_ZM,
- cPiece::cConnector::dirYM_XP_ZP,
- cPiece::cConnector::dirYP_XM_ZM,
- cPiece::cConnector::dirYP_XM_ZP,
- cPiece::cConnector::dirYP_XP_ZM,
- cPiece::cConnector::dirYP_XP_ZP,
-};
-
-
-
-
-
-class cTestFailure: public std::exception
-{
-public:
- cTestFailure(const char * a_Expression, const char * a_FileName, const int a_Line):
- std::exception(),
- m_Expression(a_Expression),
- m_FileName(a_FileName),
- m_Line(a_Line)
- {
- }
-
- const std::string m_Expression;
- const std::string m_FileName;
- const int m_Line;
-};
-
-
-
-
-
-#define EXPECT(X) if (!(X)) \
- { \
- ASSERT(X); \
- throw cTestFailure(#X, __FILE__, __LINE__); \
- }
-
-
-
-
-
-/** Tests that rotating a direction in one way and then the opposite way produces the original direction. */
-static void testBackAndForth()
-{
- for (size_t i = 0; i < ARRAYCOUNT(g_AllDirections); ++i)
- {
- auto rotated = cPiece::cConnector::RotateDirectionCW(g_AllDirections[i]);
- auto back = cPiece::cConnector::RotateDirectionCCW(rotated);
- EXPECT(back == g_AllDirections[i]);
- }
- for (size_t i = 0; i < ARRAYCOUNT(g_AllDirections); ++i)
- {
- auto rotated = cPiece::cConnector::RotateDirectionCCW(g_AllDirections[i]);
- auto back = cPiece::cConnector::RotateDirectionCW(rotated);
- EXPECT(back == g_AllDirections[i]);
- }
-}
-
-
-
-
-
-/** Tests rotating the direction 360 degrees. */
-static void testFullRotation()
-{
- // Rotate 90 degrees CCW four times:
- for (size_t i = 0; i < ARRAYCOUNT(g_AllDirections); ++i)
- {
- auto d = g_AllDirections[i];
- for (int j = 0; j < 4; ++j)
- {
- d = cPiece::cConnector::RotateDirectionCCW(d);
- }
- EXPECT(d == g_AllDirections[i]);
- }
-
- // Rotate 90 degrees CW four times:
- for (size_t i = 0; i < ARRAYCOUNT(g_AllDirections); ++i)
- {
- auto d = g_AllDirections[i];
- for (int j = 0; j < 4; ++j)
- {
- d = cPiece::cConnector::RotateDirectionCW(d);
- }
- EXPECT(d == g_AllDirections[i]);
- }
-
- // Rotate 180 degrees twice:
- for (size_t i = 0; i < ARRAYCOUNT(g_AllDirections); ++i)
- {
- auto d = g_AllDirections[i];
- d = cPiece::cConnector::RotateDirection(d);
- d = cPiece::cConnector::RotateDirection(d);
- EXPECT(d == g_AllDirections[i]);
- }
-}
-
-
-
-
-
-/** Tests that no two values are rotated onto the same destination value. */
-template <class Fn>
-static void testPermutation(Fn & a_Fn)
-{
- std::map<cPiece::cConnector::eDirection, int> numDest;
- for (size_t i = 0; i < ARRAYCOUNT(g_AllDirections); ++i)
- {
- auto d = a_Fn(g_AllDirections[i]);
- EXPECT(numDest[d] == 0);
- numDest[d] = 1;
- }
-}
-
-
-
-
-
-int main(void)
-{
- LOG("PieceRotation test starting.");
- try
- {
- testBackAndForth();
- testFullRotation();
- testPermutation(cPiece::cConnector::RotateDirection);
- testPermutation(cPiece::cConnector::RotateDirectionCW);
- testPermutation(cPiece::cConnector::RotateDirectionCCW);
- }
- catch (const cTestFailure & f)
- {
- LOGERROR("Test failed:\tExpression: %s\n\tFile: %s (%d)", f.m_Expression.c_str(), f.m_FileName.c_str(), f.m_Line);
- return 1;
- }
- catch (const std::exception & exc)
- {
- LOGERROR("Exception caught: %s", exc.what());
- return 2;
- }
- LOG("PieceRotation test succeeded.");
- return 0;
-}
-
-
-
-