72 lines
1.8 KiB
C++
72 lines
1.8 KiB
C++
#include <cxxtest/TestSuite.h>
|
|
#include "engines/ultima/ultima8/misc/box.h"
|
|
/**
|
|
* Test suite for the functions in engines/ultima/ultima8/misc/box.h
|
|
*/
|
|
|
|
class U8BoxTestSuite : public CxxTest::TestSuite {
|
|
public:
|
|
U8BoxTestSuite() {
|
|
}
|
|
|
|
void test_simple_box() {
|
|
// Note: These tests expect Box has reversed coordinates in x and y.
|
|
Ultima::Ultima8::Box box;
|
|
TS_ASSERT(box.isEmpty());
|
|
TS_ASSERT(box.isValid());
|
|
TS_ASSERT(!box.overlaps(box));
|
|
TS_ASSERT(box == box);
|
|
TS_ASSERT(!box.contains(0, 0, 0));
|
|
TS_ASSERT(!box.contains(0, 0, 1));
|
|
TS_ASSERT(!box.contains(0, -1, 0));
|
|
TS_ASSERT(!box.contains(-1, 0, 0));
|
|
|
|
box.resize(1, 1, 1);
|
|
TS_ASSERT(!box.isEmpty());
|
|
TS_ASSERT(box.isValid());
|
|
TS_ASSERT(box.contains(0, 0, 0));
|
|
TS_ASSERT(!box.contains(-1, 0, 0));
|
|
TS_ASSERT(!box.contains(0, -1, 0));
|
|
TS_ASSERT(!box.contains(0, 0, 1));
|
|
TS_ASSERT(box.overlaps(box));
|
|
TS_ASSERT(box == box);
|
|
|
|
box.resize(2, 2, 2);
|
|
TS_ASSERT(!box.isEmpty());
|
|
TS_ASSERT(box.isValid());
|
|
TS_ASSERT(box.overlaps(box));
|
|
TS_ASSERT(box == box);
|
|
TS_ASSERT(box.contains(-1, -1, 1));
|
|
TS_ASSERT(box.contains(-1, -1, 0));
|
|
|
|
box.moveTo(0, 0, 1);
|
|
TS_ASSERT(!box.contains(-1, -1, 0));
|
|
TS_ASSERT(box.contains(-1, -1, 2));
|
|
|
|
Ultima::Ultima8::Box box2(box);
|
|
TS_ASSERT(box == box2);
|
|
TS_ASSERT(box.overlaps(box2));
|
|
TS_ASSERT(box2 == box);
|
|
TS_ASSERT(box2.overlaps(box));
|
|
|
|
Ultima::Ultima8::Box box3(0, 0, 0, 2, 2, 3);
|
|
TS_ASSERT(box2 != box3);
|
|
TS_ASSERT(box2.overlaps(box3));
|
|
TS_ASSERT(box3.overlaps(box2));
|
|
box3.resize(1, 1, 1);
|
|
TS_ASSERT(!box3.overlaps(box2));
|
|
|
|
box3.moveTo(2, 2, 2);
|
|
box.extend(box3);
|
|
TS_ASSERT(!box.isEmpty());
|
|
TS_ASSERT(box.isValid());
|
|
TS_ASSERT(box._x == 2);
|
|
TS_ASSERT(box._y == 2);
|
|
TS_ASSERT(box._z == 1);
|
|
TS_ASSERT(box._xd == 4);
|
|
TS_ASSERT(box._yd == 4);
|
|
TS_ASSERT(box._zd == 2);
|
|
}
|
|
|
|
};
|