@@ -284,13 +284,15 @@ TEST(metadata, extent_edge_cases) {
284
284
optional<std::string>(), std::vector<GeographicExtentNNPtr>(),
285
285
std::vector<VerticalExtentNNPtr>(), std::vector<TemporalExtentNNPtr>());
286
286
287
- auto A = Extent::createFromBBOX (-180 , -90 , 180 , 90 );
288
- auto B = Extent::createFromBBOX (180 , -90 , 180 , 90 );
289
- EXPECT_FALSE (A->intersects (B));
290
- EXPECT_FALSE (B->intersects (A));
291
- EXPECT_FALSE (A->contains (B));
292
- EXPECT_TRUE (A->intersection (B) == nullptr );
293
- EXPECT_TRUE (B->intersection (A) == nullptr );
287
+ {
288
+ auto A = Extent::createFromBBOX (-180 , -90 , 180 , 90 );
289
+ auto B = Extent::createFromBBOX (180 , -90 , 180 , 90 );
290
+ EXPECT_FALSE (A->intersects (B));
291
+ EXPECT_FALSE (B->intersects (A));
292
+ EXPECT_FALSE (A->contains (B));
293
+ EXPECT_TRUE (A->intersection (B) == nullptr );
294
+ EXPECT_TRUE (B->intersection (A) == nullptr );
295
+ }
294
296
295
297
EXPECT_THROW (Extent::createFromBBOX (
296
298
std::numeric_limits<double >::quiet_NaN (), -90 , 180 , 90 ),
@@ -304,6 +306,20 @@ TEST(metadata, extent_edge_cases) {
304
306
EXPECT_THROW (Extent::createFromBBOX (
305
307
-180 , -90 , 180 , std::numeric_limits<double >::quiet_NaN ()),
306
308
InvalidValueTypeException);
309
+
310
+ // Scenario of https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=57328
311
+ {
312
+ auto A = Extent::createFromBBOX (0 , 1 , 2 , 3 );
313
+ auto B = Extent::createFromBBOX (200 , -80 , -100 , 80 );
314
+ EXPECT_TRUE (A->intersection (B) == nullptr );
315
+ EXPECT_TRUE (B->intersection (A) == nullptr );
316
+ }
317
+ {
318
+ auto A = Extent::createFromBBOX (0 , 1 , 2 , 3 );
319
+ auto B = Extent::createFromBBOX (100 , -80 , -200 , 80 );
320
+ EXPECT_TRUE (A->intersection (B) == nullptr );
321
+ EXPECT_TRUE (B->intersection (A) == nullptr );
322
+ }
307
323
}
308
324
309
325
// ---------------------------------------------------------------------------
0 commit comments