| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- /*
- * Battlefield.cpp, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
- #include "StdInc.h"
- #include <boost/test/unit_test.hpp>
- #include "../lib/battle/BattleHex.h"
- BOOST_AUTO_TEST_SUITE(BattlefieldHex_Suite)
- BOOST_AUTO_TEST_CASE(getNeighbouringTiles)
- {
- BattleHex mainHex;
- std::vector<BattleHex> neighbouringTiles;
- mainHex.setXY(16, 0);
- neighbouringTiles = mainHex.neighbouringTiles();
- BOOST_TEST(neighbouringTiles.size() == 1);
- mainHex.setXY(0, 0);
- neighbouringTiles = mainHex.neighbouringTiles();
- BOOST_TEST(neighbouringTiles.size() == 2);
- mainHex.setXY(15, 2);
- neighbouringTiles = mainHex.neighbouringTiles();
- BOOST_TEST(neighbouringTiles.size() == 3);
- mainHex.setXY(2, 0);
- neighbouringTiles = mainHex.neighbouringTiles();
- BOOST_TEST(neighbouringTiles.size() == 4);
- mainHex.setXY(1, 2);
- neighbouringTiles = mainHex.neighbouringTiles();
- BOOST_TEST(neighbouringTiles.size() == 5);
- mainHex.setXY(8, 5);
- neighbouringTiles = mainHex.neighbouringTiles();
- BOOST_TEST(neighbouringTiles.size() == 6);
- BOOST_REQUIRE(neighbouringTiles.size() == 6 && mainHex == 93);
- BOOST_TEST(neighbouringTiles.at(0) == 75);
- BOOST_TEST(neighbouringTiles.at(1) == 76);
- BOOST_TEST(neighbouringTiles.at(2) == 94);
- BOOST_TEST(neighbouringTiles.at(3) == 110);
- BOOST_TEST(neighbouringTiles.at(4) == 109);
- BOOST_TEST(neighbouringTiles.at(5) == 92);
- }
- BOOST_AUTO_TEST_CASE(getDistance)
- {
- BattleHex firstHex(0, 0), secondHex(16, 0);
- BOOST_TEST((int)firstHex.getDistance(firstHex, secondHex) == 16);
- firstHex = 0, secondHex = 170;
- BOOST_TEST((int)firstHex.getDistance(firstHex, secondHex) == 10);
- firstHex = 16, secondHex = 181;
- BOOST_TEST((int)firstHex.getDistance(firstHex, secondHex) == 10);
- firstHex = 186, secondHex = 70;
- BOOST_TEST((int)firstHex.getDistance(firstHex, secondHex) == 17);
- firstHex = 166, secondHex = 39;
- BOOST_TEST((int)firstHex.getDistance(firstHex, secondHex) == 11);
- firstHex = 25, secondHex = 103;
- BOOST_TEST((int)firstHex.getDistance(firstHex, secondHex) == 9);
- firstHex = 18, secondHex = 71;
- BOOST_TEST((int)firstHex.getDistance(firstHex, secondHex) == 4);
- }
- BOOST_AUTO_TEST_CASE(mutualPositions)
- {
- BattleHex firstHex(0, 0), secondHex(16, 0);
- firstHex = 86, secondHex = 68;
- BOOST_TEST((int)firstHex.mutualPosition(firstHex, secondHex) == 0);
- secondHex = 69;
- BOOST_TEST((int)firstHex.mutualPosition(firstHex, secondHex) == 1);
- secondHex = 87;
- BOOST_TEST((int)firstHex.mutualPosition(firstHex, secondHex) == 2);
- secondHex = 103;
- BOOST_TEST((int)firstHex.mutualPosition(firstHex, secondHex) == 3);
- secondHex = 102;
- BOOST_TEST((int)firstHex.mutualPosition(firstHex, secondHex) == 4);
- secondHex = 85;
- BOOST_TEST((int)firstHex.mutualPosition(firstHex, secondHex) == 5);
- secondHex = 46;
- BOOST_TEST((int)firstHex.mutualPosition(firstHex, secondHex) == -1);
- }
- BOOST_AUTO_TEST_CASE(getClosestTile)
- {
- BattleHex mainHex(0);
- std::set<BattleHex> possibilities;
- possibilities.insert(3);
- possibilities.insert(170);
- possibilities.insert(100);
- possibilities.insert(119);
- possibilities.insert(186);
- BOOST_TEST(mainHex.getClosestTile(0, mainHex, possibilities) == 3);
- mainHex = 139;
- BOOST_TEST(mainHex.getClosestTile(1, mainHex, possibilities) == 119);
- mainHex = 16;
- BOOST_TEST(mainHex.getClosestTile(1, mainHex, possibilities) == 100);
- mainHex = 166;
- BOOST_TEST(mainHex.getClosestTile(0, mainHex, possibilities) == 186);
- mainHex = 76;
- BOOST_TEST(mainHex.getClosestTile(1, mainHex, possibilities) == 3);
- BOOST_TEST(mainHex.getClosestTile(0, mainHex, possibilities) == 100);
- }
- BOOST_AUTO_TEST_CASE(moveEDir)
- {
- BattleHex mainHex(20);
- mainHex.moveInDirection(BattleHex::EDir::BOTTOM_RIGHT);
- BOOST_TEST(mainHex == 37);
- mainHex.moveInDirection(BattleHex::EDir::RIGHT);
- BOOST_TEST(mainHex == 38);
- mainHex.moveInDirection(BattleHex::EDir::TOP_RIGHT);
- BOOST_TEST(mainHex == 22);
- mainHex.moveInDirection(BattleHex::EDir::TOP_LEFT);
- BOOST_TEST(mainHex == 4);
- mainHex.moveInDirection(BattleHex::EDir::LEFT);
- BOOST_TEST(mainHex == 3);
- mainHex.moveInDirection(BattleHex::EDir::BOTTOM_LEFT);
- BOOST_TEST(mainHex == 20);
- mainHex.moveInDirection(BattleHex::EDir::NONE);
- BOOST_TEST(mainHex == 20);
- }
- BOOST_AUTO_TEST_SUITE_END()
|