File indexing completed on 2024-05-05 04:04:23

0001 /*
0002     KShisen - A japanese game similar to Mahjongg
0003     SPDX-FileCopyrightText: 2016 Frederik Schwarzer <schwarzer@kde.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef MOVETEST_H
0009 #define MOVETEST_H
0010 
0011 #include <QTest>
0012 
0013 #include "../move.h"
0014 #include "../types.h"
0015 
0016 class MoveTest : public QObject
0017 {
0018     Q_OBJECT
0019 private Q_SLOTS:
0020     void initTestCase();
0021 
0022     void x1() const;
0023     void y1() const;
0024     void x2() const;
0025     void y2() const;
0026     void tile1() const;
0027     void tile2() const;
0028     void hasSlide() const;
0029     void slide() const;
0030     void slideX1() const;
0031     void slideY1() const;
0032     void slideX2() const;
0033     void slideY2() const;
0034     void swapTiles();
0035 
0036     void cleanupTestCase();
0037 
0038 private:
0039     KShisen::TilePos m_tile1{1, 2};
0040     KShisen::TilePos m_tile2{3, 4};
0041     KShisen::TilePos m_tile3{5, 6};
0042     KShisen::TilePos m_tile4{7, 8};
0043     KShisen::TilePos m_slidePos1{15, 16};
0044     KShisen::TilePos m_slidePos2{17, 18};
0045     KShisen::Move m_moveWithoutSlide{m_tile1, m_tile2, 12, 34};
0046     KShisen::Move m_moveWithSlide{m_tile3, m_tile4, 56, 78, KShisen::Slide() << m_slidePos1 << m_slidePos2};
0047 };
0048 
0049 #endif // MOVETEST_H