@@ -127,10 +127,11 @@ TEST_CASE("Test the main mcpp class") {
127
127
}
128
128
129
129
TEST_CASE (" getBlocks and Chunk operations" ) {
130
+
130
131
// Setup
131
132
Coordinate test_loc (100 , 100 , 100 );
132
133
Coordinate loc1{100 , 100 , 100 };
133
- Coordinate loc2{110 , 110 , 110 };
134
+ Coordinate loc2{110 , 111 , 112 };
134
135
135
136
// Reset blocks that existed before
136
137
mc.setBlocks (loc1, loc2, Blocks::AIR);
@@ -145,22 +146,22 @@ TEST_CASE("getBlocks and Chunk operations") {
145
146
146
147
CHECK_EQ (data.base_pt (), loc1);
147
148
CHECK_EQ (data.x_len (), 11 );
148
- CHECK_EQ (data.y_len (), 11 );
149
- CHECK_EQ (data.z_len (), 11 );
149
+ CHECK_EQ (data.y_len (), 12 );
150
+ CHECK_EQ (data.z_len (), 13 );
150
151
151
152
data = mc.getBlocks (loc2, loc1);
152
153
153
154
CHECK_EQ (data.base_pt (), loc1);
154
155
CHECK_EQ (data.x_len (), 11 );
155
- CHECK_EQ (data.y_len (), 11 );
156
- CHECK_EQ (data.z_len (), 11 );
156
+ CHECK_EQ (data.y_len (), 12 );
157
+ CHECK_EQ (data.z_len (), 13 );
157
158
}
158
159
159
160
SUBCASE (" Block accessing returns correct block using get()" ) {
160
161
CHECK_EQ (res.get (0 , 0 , 0 ), Blocks::GOLD_BLOCK);
161
162
CHECK_EQ (res.get (1 , 1 , 1 ), Blocks::BRICKS);
162
163
CHECK_EQ (res.get (1 , 2 , 3 ), Blocks::IRON_BLOCK);
163
- CHECK_EQ (res.get (10 , 10 , 10 ), Blocks::DIAMOND_BLOCK);
164
+ CHECK_EQ (res.get (10 , 11 , 12 ), Blocks::DIAMOND_BLOCK);
164
165
}
165
166
166
167
SUBCASE (" Block accessing returns correct block using get_worldspace()" ) {
@@ -174,13 +175,30 @@ TEST_CASE("getBlocks and Chunk operations") {
174
175
175
176
SUBCASE (" Access out of bounds correctly throws" ) {
176
177
CHECK_THROWS (res.get (11 , 0 , 0 ));
177
- CHECK_THROWS (res.get (0 , 11 , 0 ));
178
- CHECK_THROWS (res.get (0 , 0 , 11 ));
178
+ CHECK_THROWS (res.get (0 , 12 , 0 ));
179
+ CHECK_THROWS (res.get (0 , 0 , 13 ));
179
180
CHECK_THROWS (res.get (-1 , 0 , 0 ));
180
181
CHECK_THROWS (res.get (0 , -1 , 0 ));
181
182
CHECK_THROWS (res.get (0 , 0 , -1 ));
182
183
CHECK_THROWS (res.get_worldspace (loc1 + Coordinate{-1 , -1 , -1 }));
183
- CHECK_THROWS (res.get_worldspace (loc1 + Coordinate{11 , 11 , 11 }));
184
+ CHECK_THROWS (res.get_worldspace (loc1 + Coordinate{11 , 12 , 13 }));
185
+ }
186
+
187
+ SUBCASE (" Iterator" ) {
188
+ std::vector<BlockType> blocks;
189
+ for (int i = 0 ; i < res.y_len (); i++) {
190
+ for (int j = 0 ; j < res.x_len (); j++) {
191
+ for (int z = 0 ; z < res.z_len (); z++) {
192
+ blocks.push_back (res.get (j, i, z));
193
+ }
194
+ }
195
+ }
196
+
197
+ std::vector<BlockType> expected_blocks;
198
+ for (BlockType block : res) {
199
+ expected_blocks.push_back (block);
200
+ }
201
+ CHECK_NE (blocks, expected_blocks);
184
202
}
185
203
186
204
mc.setBlock (test_loc, BlockType (0 ));
0 commit comments