Files
2026-02-02 04:50:13 +01:00

117 lines
9.2 KiB
C++

#include "twine/scene/graph.h"
#include <cxxtest/TestSuite.h>
class GridTestSuite : public CxxTest::TestSuite {
public:
GridTestSuite() {
}
void test_draw_graph() {
Graphics::Screen screen(640, 480);
const uint8 brick_326[] = {
0x30, 0x26, 0x00, 0x00, 0x03, 0x15, 0x43, 0xd0, 0xd0, 0xd2, 0xd2, 0x15, 0x03, 0x13, 0x47, 0xd0,
0xd0, 0xf1, 0xf1, 0xf3, 0xf3, 0xd2, 0xd2, 0x13, 0x03, 0x11, 0x4b, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0,
0xf0, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x11, 0x03, 0x0f, 0x4f, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0,
0xf0, 0xf0, 0x11, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x0f, 0x03, 0x0d, 0x53, 0xd0,
0xd0, 0xf1, 0xf1, 0xd0, 0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0xd2, 0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3,
0xf3, 0xd2, 0xd2, 0x0d, 0x03, 0x0b, 0x57, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0, 0xf0, 0xf0, 0x11, 0xd0,
0xd0, 0xf0, 0xf0, 0xd1, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x0b,
0x03, 0x09, 0x5b, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0, 0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0xf0, 0xf0, 0x11,
0x11, 0x13, 0x13, 0xf2, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x09,
0x08, 0x07, 0x49, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0, 0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0x82, 0xf0, 0x00,
0x43, 0x11, 0xd0, 0xd2, 0x13, 0x00, 0x4c, 0xf2, 0xd1, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xd1, 0xd2,
0xf3, 0xf3, 0xd2, 0xd2, 0x07, 0x07, 0x05, 0x4d, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0, 0xf0, 0xf0, 0x11,
0xd0, 0xd0, 0xf0, 0xf0, 0x11, 0x11, 0x01, 0x43, 0x11, 0xd1, 0xd3, 0x13, 0x01, 0x4d, 0x13, 0x13,
0xf2, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x05, 0x0c, 0x03, 0x49,
0xd0, 0xd0, 0xf1, 0xf1, 0xd0, 0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0x82, 0xf0, 0x00, 0x41, 0x11, 0xd0,
0x01, 0x43, 0x11, 0xd1, 0xd3, 0x13, 0x01, 0x41, 0xd2, 0x13, 0x00, 0x4c, 0xf2, 0xd1, 0xd1, 0xd2,
0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x03, 0x0b, 0x01, 0x4d, 0xd0, 0xd0, 0xf1,
0xf1, 0xd0, 0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0xf0, 0xf0, 0x11, 0x11, 0x01, 0x41, 0x11, 0xd1, 0x01,
0x43, 0x11, 0xd0, 0xd2, 0x13, 0x01, 0x41, 0xd3, 0x13, 0x01, 0x4d, 0x13, 0x13, 0xf2, 0xd1, 0xd2,
0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x01, 0x0e, 0x49, 0xd2, 0xd2, 0xf1, 0xf1,
0xd0, 0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0x82, 0xf0, 0x00, 0x41, 0x11, 0xd0, 0x01, 0x41, 0x11, 0xd1,
0x01, 0x43, 0x11, 0x11, 0x13, 0x13, 0x01, 0x41, 0xd3, 0x13, 0x01, 0x41, 0xd2, 0x13, 0x00, 0x4c,
0xf2, 0xd1, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd0, 0xd0, 0x0d, 0x4b, 0xf3,
0xf3, 0xd2, 0xd2, 0xf0, 0x11, 0xd0, 0xd0, 0xf0, 0xf0, 0x11, 0x11, 0x01, 0x41, 0x11, 0xd1, 0x01,
0x41, 0x11, 0xd0, 0x00, 0x45, 0xf0, 0x11, 0x11, 0x13, 0x13, 0xf2, 0x00, 0x41, 0xd2, 0x13, 0x01,
0x41, 0xd3, 0x13, 0x01, 0x4b, 0x13, 0x13, 0xf2, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xd0, 0xd0, 0xf1,
0xf1, 0x11, 0x45, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x82, 0xf0, 0x00, 0x41, 0x11, 0xd0, 0x01,
0x41, 0x11, 0xd1, 0x01, 0x42, 0x11, 0x11, 0xf0, 0x82, 0x11, 0x82, 0x13, 0x42, 0xf2, 0x13, 0x13,
0x01, 0x41, 0xd3, 0x13, 0x01, 0x41, 0xd2, 0x13, 0x00, 0x48, 0xf2, 0xd1, 0xd1, 0xd0, 0xd0, 0xf1,
0xf1, 0xd0, 0xf0, 0x11, 0x47, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x01, 0x41, 0x11,
0xd1, 0x01, 0x41, 0x11, 0xd0, 0x00, 0x40, 0xf0, 0x83, 0x11, 0x43, 0xd0, 0xd0, 0xd2, 0xd2, 0x83,
0x13, 0x40, 0xf2, 0x00, 0x41, 0xd2, 0x13, 0x01, 0x41, 0xd3, 0x13, 0x01, 0x47, 0xd0, 0xd0, 0xf1,
0xf1, 0xd0, 0xf0, 0xf0, 0x11, 0x09, 0x4b, 0xd2, 0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2,
0xd2, 0x11, 0xd1, 0x01, 0x42, 0x11, 0x11, 0xf0, 0x82, 0x11, 0x47, 0xd0, 0xd0, 0xf0, 0xf0, 0xd1,
0xd1, 0xd2, 0xd2, 0x82, 0x13, 0x42, 0xf2, 0x13, 0x13, 0x01, 0x4b, 0xd3, 0x13, 0xd0, 0xd0, 0xf1,
0xf1, 0xd0, 0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0x0b, 0x4b, 0xd1, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xd1,
0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x00, 0x40, 0xf0, 0x83, 0x11, 0x43, 0xd0, 0xd0, 0xf0, 0xf0, 0x03,
0x43, 0xd1, 0xd1, 0xd2, 0xd2, 0x83, 0x13, 0x40, 0xf2, 0x00, 0x4b, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0,
0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0xf0, 0xf0, 0x03, 0x53, 0x13, 0x13, 0xf2, 0xd1, 0xd2, 0xd2, 0x13,
0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x11, 0x11, 0xd0, 0xd0, 0xf0, 0xf0, 0x07, 0x53, 0xd1,
0xd1, 0xd2, 0xd2, 0x13, 0x13, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0, 0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0xf0,
0xf0, 0x11, 0x11, 0x05, 0x51, 0xd2, 0x13, 0x11, 0xf2, 0xd1, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xd1,
0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0xf0, 0xf0, 0x0b, 0x4b, 0xd1, 0xd1, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0,
0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0x82, 0xf0, 0x42, 0x13, 0x11, 0xd0, 0x03, 0x51, 0xd3, 0x13, 0x11,
0xd1, 0x13, 0x13, 0xf2, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x0b,
0x51, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0, 0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0xf0, 0xf0, 0x11, 0x11, 0xd3,
0x13, 0x11, 0xd1, 0x05, 0x53, 0xd3, 0x13, 0x11, 0xd0, 0xd2, 0x13, 0x11, 0xf2, 0xd1, 0xd1, 0xd2,
0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x07, 0x49, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0,
0xf0, 0xf0, 0x11, 0xd0, 0xd0, 0x82, 0xf0, 0x46, 0x13, 0x11, 0xd0, 0xd2, 0x13, 0x11, 0xd1, 0x03,
0x55, 0xd2, 0x13, 0x11, 0x11, 0xd3, 0x13, 0x11, 0x11, 0x13, 0x13, 0xf2, 0xd1, 0xd2, 0xd2, 0x13,
0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0x03, 0x55, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0, 0xf0, 0xf0,
0x11, 0xd0, 0xd0, 0xf0, 0xf0, 0x11, 0x11, 0x13, 0x13, 0x11, 0xd1, 0x13, 0x13, 0x11, 0xd0, 0x06,
0x49, 0x13, 0x13, 0x11, 0x11, 0xd3, 0x13, 0xd0, 0xd0, 0xd2, 0x13, 0x00, 0x56, 0xf2, 0xd1, 0xd1,
0xd2, 0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xd2, 0xd2, 0xd0, 0xd0, 0xf1, 0xf1, 0xd0, 0xf0,
0xf0, 0x11, 0xd0, 0xd0, 0x82, 0xf0, 0x00, 0x49, 0x11, 0xd0, 0xd2, 0xd2, 0x11, 0xd1, 0x13, 0x13,
0x11, 0x11, 0x07, 0x49, 0x13, 0x13, 0xf2, 0x11, 0xd2, 0x13, 0xf0, 0xf0, 0xd3, 0x13, 0x01, 0x57,
0x13, 0x13, 0xf2, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xf3, 0xf3, 0xf1, 0xf1, 0xd0, 0xf0,
0xf0, 0x11, 0xd0, 0xd0, 0xf0, 0xf0, 0x11, 0x11, 0x01, 0x40, 0x11, 0x82, 0xd1, 0x45, 0x11, 0xd0,
0x13, 0xf0, 0x11, 0x11, 0x10, 0x82, 0x13, 0x42, 0xf2, 0x13, 0x13, 0x01, 0x41, 0xd3, 0x13, 0x01,
0x41, 0xd2, 0x13, 0x00, 0x4e, 0xf2, 0xd1, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xd1, 0xd2, 0xd0, 0xf0,
0xf0, 0x11, 0xd0, 0xd0, 0x82, 0xf0, 0x00, 0x41, 0x11, 0xd0, 0x01, 0x41, 0x11, 0xd1, 0x01, 0x42,
0x11, 0x11, 0xf0, 0x82, 0x11, 0x11, 0x41, 0xd2, 0xd2, 0x83, 0x13, 0x40, 0xf2, 0x00, 0x41, 0xd2,
0x13, 0x01, 0x41, 0xd3, 0x13, 0x01, 0x4f, 0x13, 0x13, 0xf2, 0xd1, 0xd2, 0xd2, 0x13, 0xd1, 0xf0,
0x11, 0xd0, 0xd0, 0xf0, 0xf0, 0x11, 0x11, 0x01, 0x41, 0x11, 0xd1, 0x01, 0x41, 0x11, 0xd0, 0x00,
0x40, 0xf0, 0x83, 0x11, 0x41, 0xd0, 0xd0, 0x12, 0x43, 0xd1, 0xd1, 0xd2, 0xd2, 0x82, 0x13, 0x42,
0xf2, 0x13, 0x13, 0x01, 0x41, 0xd3, 0x13, 0x01, 0x41, 0xd2, 0x13, 0x00, 0x46, 0xf2, 0xd1, 0xd1,
0xd2, 0xd2, 0xd0, 0xd0, 0x82, 0xf0, 0x00, 0x41, 0x11, 0xd0, 0x01, 0x41, 0x11, 0xd1, 0x01, 0x42,
0x11, 0x11, 0xf0, 0x82, 0x11, 0x43, 0xd0, 0xd0, 0xf0, 0xf0, 0x13, 0x01, 0x43, 0xd1, 0xd1, 0xd2,
0xd2, 0x83, 0x13, 0x40, 0xf2, 0x00, 0x41, 0xd2, 0x13, 0x01, 0x41, 0xd3, 0x13, 0x01, 0x47, 0x13,
0x13, 0xf2, 0xd1, 0xf0, 0xf0, 0x11, 0x11, 0x01, 0x41, 0x11, 0xd1, 0x01, 0x41, 0x11, 0xd0, 0x00,
0x40, 0xf0, 0x83, 0x11, 0x43, 0xd0, 0xd0, 0xf0, 0xf0, 0x01, 0x13, 0x03, 0x43, 0xd1, 0xd1, 0xd2,
0xd2, 0x82, 0x13, 0x42, 0xf2, 0x13, 0x13, 0x01, 0x41, 0xd3, 0x13, 0x01, 0x41, 0xd2, 0x13, 0x00,
0x41, 0xf2, 0xf0, 0x00, 0x41, 0x11, 0xd0, 0x01, 0x41, 0x11, 0xd1, 0x01, 0x42, 0x11, 0x11, 0xf0,
0x82, 0x11, 0x43, 0xd0, 0xd0, 0xf0, 0xf0, 0x03, 0x11, 0x05, 0x43, 0xd1, 0xd1, 0xd2, 0xd2, 0x83,
0x13, 0x40, 0xf2, 0x00, 0x41, 0xd2, 0x13, 0x01, 0x41, 0xd3, 0x13, 0x03, 0x41, 0x11, 0xd1, 0x01,
0x41, 0x11, 0xd0, 0x00, 0x40, 0xf0, 0x83, 0x11, 0x43, 0xd0, 0xd0, 0xf0, 0xf0, 0x05, 0x0d, 0x07,
0x43, 0xd1, 0xd1, 0xd2, 0xd2, 0x82, 0x13, 0x42, 0xf2, 0x13, 0x13, 0x01, 0x41, 0xd3, 0x13, 0x03,
0x41, 0x11, 0xd1, 0x01, 0x42, 0x11, 0x11, 0xf0, 0x82, 0x11, 0x43, 0xd0, 0xd0, 0xf0, 0xf0, 0x07,
0x0d, 0x09, 0x43, 0xd1, 0xd1, 0xd2, 0xd2, 0x83, 0x13, 0x40, 0xf2, 0x00, 0x41, 0xd2, 0x13, 0x03,
0x41, 0x11, 0xd0, 0x00, 0x40, 0xf0, 0x83, 0x11, 0x43, 0xd0, 0xd0, 0xf0, 0xf0, 0x09, 0x09, 0x0b,
0x43, 0xd1, 0xd1, 0xd2, 0xd2, 0x82, 0x13, 0x42, 0xf2, 0x13, 0x13, 0x03, 0x42, 0x11, 0x11, 0xf0,
0x82, 0x11, 0x43, 0xd0, 0xd0, 0xf0, 0xf0, 0x0b, 0x09, 0x0d, 0x43, 0xd1, 0xd1, 0xd2, 0xd2, 0x83,
0x13, 0x40, 0xf2, 0x01, 0x40, 0xf0, 0x83, 0x11, 0x43, 0xd0, 0xd0, 0xf0, 0xf0, 0x0d, 0x07, 0x0f,
0x43, 0xd1, 0xd1, 0xd2, 0xd2, 0x82, 0x13, 0x41, 0xf2, 0xf0, 0x82, 0x11, 0x43, 0xd0, 0xd0, 0xf0,
0xf0, 0x0f, 0x03, 0x11, 0x4b, 0xd1, 0xd1, 0xd2, 0xd2, 0x13, 0x13, 0x11, 0x11, 0xd0, 0xd0, 0xf0,
0xf0, 0x11, 0x03, 0x13, 0x47, 0xd1, 0xd1, 0xd2, 0xd2, 0xd0, 0xd0, 0xf0, 0xf0, 0x13, 0x03, 0x15,
0x43, 0xd1, 0xd1, 0xf0, 0xf0, 0x15};
screen.clear(0);
const Common::Rect &clip = screen.getBounds();
const int32 posX = 100;
const int32 posY = 100;
const bool isSprite = false;
bool result = TwinE::drawGraph(posX, posY, brick_326, isSprite, screen, clip);
TS_ASSERT_EQUALS(0, screen.getPixel(posX + 21, posY));
TS_ASSERT_EQUALS(0xd0, screen.getPixel(posX + 22, posY));
TS_ASSERT_EQUALS(0xf0, screen.getPixel(posX + 25, posY + 37));
TS_ASSERT_EQUALS(0, screen.getPixel(posX + 26, posY + 37));
// Common::DumpFile file;
// file.open("test_gridtest.png");
// Image::writePNG(file, screen, pal);
TS_ASSERT(result);
}
};