13TEST(SnesTileTest, UnpackBppTile) {
15 std::vector<uint8_t> data1bpp = {0x80, 0x40, 0x20, 0x10,
16 0x08, 0x04, 0x02, 0x01};
18 EXPECT_EQ(tile1bpp.data[0], 1);
19 EXPECT_EQ(tile1bpp.data[7], 0);
20 EXPECT_EQ(tile1bpp.data[56], 0);
21 EXPECT_EQ(tile1bpp.data[63], 1);
29 std::vector<uint8_t> data2bpp = {
40 EXPECT_EQ(tile2bpp.data[0], 3);
41 EXPECT_EQ(tile2bpp.data[7], 1);
42 EXPECT_EQ(tile2bpp.data[56], 2);
43 EXPECT_EQ(tile2bpp.data[63], 3);
48 std::vector<uint8_t> data4bpp = {
69 EXPECT_EQ(tile4bpp.data[0], 0xF);
70 EXPECT_EQ(tile4bpp.data[7], 0x5);
71 EXPECT_EQ(tile4bpp.data[56], 0xA);
72 EXPECT_EQ(tile4bpp.data[63], 0xF);
75TEST(SnesTileTest, PackBppTile) {
78 std::fill(tile1bpp.
data, tile1bpp.
data + 64, 0);
80 tile1bpp.
data[63] = 1;
82 EXPECT_EQ(packed1bpp[0], 0x80);
83 EXPECT_EQ(packed1bpp[7], 0x01);
87 std::fill(tile2bpp.
data, tile2bpp.
data + 64, 0);
90 tile2bpp.
data[56] = 2;
91 tile2bpp.
data[63] = 3;
93 EXPECT_EQ(packed2bpp[0], 0x81);
94 EXPECT_EQ(packed2bpp[1], 0x80);
95 EXPECT_EQ(packed2bpp[14], 0x01);
96 EXPECT_EQ(packed2bpp[15], 0x81);
99TEST(SnesTileTest, ConvertBpp) {
101 std::vector<uint8_t> data2bpp = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04,
102 0x02, 0x01, 0x01, 0x02, 0x04, 0x08,
103 0x10, 0x20, 0x40, 0x80};
105 EXPECT_EQ(converted4bpp.size(), 32);
108 std::vector<uint8_t> data4bpp = {
110 0x80, 0x80, 0x40, 0x00, 0x20, 0x40, 0x10, 0x80,
111 0x08, 0x00, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00,
113 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
114 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
117 EXPECT_EQ(converted2bpp.size(), 16);
141TEST(SnesTileTest, TileInfoToWord) {
147 EXPECT_EQ(word & 0x3FF, 0x123);
148 EXPECT_TRUE(word & 0x8000);
149 EXPECT_TRUE(word & 0x4000);
150 EXPECT_TRUE(word & 0x2000);
151 EXPECT_EQ((word >> 10) & 0x07, 3);
167 gfx::Tile32 tile32(0x1234, 0x5678, 0x9ABC, 0xDEF0);
168 EXPECT_EQ(tile32.
tile0_, 0x1234);
169 EXPECT_EQ(tile32.
tile1_, 0x5678);
170 EXPECT_EQ(tile32.
tile2_, 0x9ABC);
171 EXPECT_EQ(tile32.
tile3_, 0xDEF0);
175 EXPECT_EQ(packed, 0xDEF09ABC56781234);
179 EXPECT_EQ(tile32FromPacked.
tile0_, 0x1234);
180 EXPECT_EQ(tile32FromPacked.
tile1_, 0x5678);
181 EXPECT_EQ(tile32FromPacked.
tile2_, 0x9ABC);
182 EXPECT_EQ(tile32FromPacked.
tile3_, 0xDEF0);
185 EXPECT_TRUE(tile32 == tile32FromPacked);