| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /*
- * MapComparer.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 "MapComparer.h"
- #define VCMI_CHECK_FIELD_EQUAL_P(field) BOOST_CHECK_EQUAL(actual->field, expected->field)
- #define VCMI_CHECK_FIELD_EQUAL(field) BOOST_CHECK_EQUAL(actual.field, expected.field)
- #define VCMI_REQUIRE_FIELD_EQUAL(field) BOOST_REQUIRE_EQUAL(actual->field, expected->field)
- std::ostream& operator<< (std::ostream& os, const PlayerInfo & value)
- {
- os << "PlayerInfo";
- return os;
- }
- //std::ostream& operator<< (std::ostream& os, const std::set<ui8> & value)
- //{
- // os << "'Set'";
- // return os;
- //}
- bool operator!=(const PlayerInfo & actual, const PlayerInfo & expected)
- {
- VCMI_CHECK_FIELD_EQUAL(canHumanPlay);
- VCMI_CHECK_FIELD_EQUAL(canComputerPlay);
- VCMI_CHECK_FIELD_EQUAL(aiTactic);
- //VCMI_CHECK_FIELD_EQUAL(allowedFactions);
- return false;
- }
- void MapComparer::compareHeader()
- {
- VCMI_CHECK_FIELD_EQUAL_P(name);
- VCMI_CHECK_FIELD_EQUAL_P(description);
- VCMI_CHECK_FIELD_EQUAL_P(difficulty);
- VCMI_CHECK_FIELD_EQUAL_P(levelLimit);
- VCMI_CHECK_FIELD_EQUAL_P(victoryMessage);
- VCMI_CHECK_FIELD_EQUAL_P(defeatMessage);
- VCMI_CHECK_FIELD_EQUAL_P(victoryIconIndex);
- VCMI_CHECK_FIELD_EQUAL_P(defeatIconIndex);
-
- BOOST_CHECK_EQUAL_COLLECTIONS(actual->players.begin(), actual->players.end(), expected->players.begin(), expected->players.end());
- //map size parameters are vital for further checks
- VCMI_REQUIRE_FIELD_EQUAL(height);
- VCMI_REQUIRE_FIELD_EQUAL(width);
- VCMI_REQUIRE_FIELD_EQUAL(twoLevel);
- BOOST_FAIL("Not implemented");
- }
- void MapComparer::compareOptions()
- {
- BOOST_FAIL("Not implemented");
- }
- void MapComparer::compareObjects()
- {
- BOOST_FAIL("Not implemented");
- }
- void MapComparer::compareTerrain()
- {
- BOOST_FAIL("Not implemented");
- }
- void MapComparer::compare()
- {
- BOOST_REQUIRE_NE((void *) actual, (void *) expected); //should not point to the same object
- BOOST_REQUIRE_MESSAGE(actual != nullptr, "Actual map is not defined");
- BOOST_REQUIRE_MESSAGE(actual != nullptr, "Expected map is not defined");
- compareHeader();
- compareOptions();
- compareObjects();
- compareTerrain();
- }
- void MapComparer::operator() (const std::unique_ptr<CMap>& actual, const std::unique_ptr<CMap>& expected)
- {
- this->actual = actual.get();
- this->expected = expected.get();
- compare();
- }
|