diff options
Diffstat (limited to 'src/mongo/db/range_arithmetic_test.cpp')
-rw-r--r-- | src/mongo/db/range_arithmetic_test.cpp | 203 |
1 files changed, 98 insertions, 105 deletions
diff --git a/src/mongo/db/range_arithmetic_test.cpp b/src/mongo/db/range_arithmetic_test.cpp index 79632689bb7..074e9efe0cb 100644 --- a/src/mongo/db/range_arithmetic_test.cpp +++ b/src/mongo/db/range_arithmetic_test.cpp @@ -31,131 +31,124 @@ namespace { - using mongo::MINKEY; - using mongo::MAXKEY; - using mongo::rangeOverlaps; - using mongo::rangeMapOverlaps; - using mongo::RangeMap; - using mongo::RangeVector; - using std::make_pair; - - TEST(BSONRange, SmallerLowerRangeNonSubset) { - ASSERT_TRUE(rangeOverlaps(BSON("x" << 100), BSON("x" << 200), - BSON("x" << 50), BSON("x" << 200))); - ASSERT_TRUE(rangeOverlaps(BSON("x" << 100), BSON("x" << 200), - BSON("x" << 60), BSON("x" << 199))); - - ASSERT_FALSE(rangeOverlaps(BSON("x" << 100), BSON("x" << 200), - BSON("x" << 70), BSON("x" << 99))); - ASSERT_FALSE(rangeOverlaps(BSON("x" << 100), BSON("x" << 200), - BSON("x" << 80), BSON("x" << 100))); - } - - TEST(BSONRange, BiggerUpperRangeNonSubset) { - ASSERT_TRUE(rangeOverlaps(BSON("x" << 100), BSON("x" << 200), - BSON("x" << 150), BSON("x" << 200))); - ASSERT_TRUE(rangeOverlaps(BSON("x" << 100), BSON("x" << 200), - BSON("x" << 160), BSON("x" << 201))); - ASSERT_TRUE(rangeOverlaps(BSON("x" << 100), BSON("x" << 200), - BSON("x" << 170), BSON("x" << 220))); - - ASSERT_FALSE(rangeOverlaps(BSON("x" << 100), BSON("x" << 200), - BSON("x" << 200), BSON("x" << 240))); - } - - TEST(BSONRange, RangeIsSubsetOfOther) { - ASSERT_TRUE(rangeOverlaps(BSON("x" << 100), BSON("x" << 200), - BSON("x" << 70), BSON("x" << 300))); - ASSERT_TRUE(rangeOverlaps(BSON("x" << 100), BSON("x" << 200), - BSON("x" << 140), BSON("x" << 180))); - } - - TEST(BSONRange, EqualRange) { - ASSERT_TRUE(rangeOverlaps(BSON("x" << 100), BSON("x" << 200), - BSON("x" << 100), BSON("x" << 200))); - } - - TEST(RangeMap, RangeMapOverlap) { - - RangeMap rangeMap; - rangeMap.insert( make_pair( BSON( "x" << 100 ), BSON( "x" << 200 ) ) ); - rangeMap.insert( make_pair( BSON( "x" << 200 ), BSON( "x" << 300 ) ) ); - rangeMap.insert( make_pair( BSON( "x" << 300 ), BSON( "x" << 400 ) ) ); - - RangeVector overlap; - getRangeMapOverlap( rangeMap, BSON( "x" << 50 ), BSON( "x" << 350 ), &overlap ); +using mongo::MINKEY; +using mongo::MAXKEY; +using mongo::rangeOverlaps; +using mongo::rangeMapOverlaps; +using mongo::RangeMap; +using mongo::RangeVector; +using std::make_pair; + +TEST(BSONRange, SmallerLowerRangeNonSubset) { + ASSERT_TRUE( + rangeOverlaps(BSON("x" << 100), BSON("x" << 200), BSON("x" << 50), BSON("x" << 200))); + ASSERT_TRUE( + rangeOverlaps(BSON("x" << 100), BSON("x" << 200), BSON("x" << 60), BSON("x" << 199))); + + ASSERT_FALSE( + rangeOverlaps(BSON("x" << 100), BSON("x" << 200), BSON("x" << 70), BSON("x" << 99))); + ASSERT_FALSE( + rangeOverlaps(BSON("x" << 100), BSON("x" << 200), BSON("x" << 80), BSON("x" << 100))); +} - ASSERT( !overlap.empty() ); - ASSERT_EQUALS( overlap.size(), 3u ); - } +TEST(BSONRange, BiggerUpperRangeNonSubset) { + ASSERT_TRUE( + rangeOverlaps(BSON("x" << 100), BSON("x" << 200), BSON("x" << 150), BSON("x" << 200))); + ASSERT_TRUE( + rangeOverlaps(BSON("x" << 100), BSON("x" << 200), BSON("x" << 160), BSON("x" << 201))); + ASSERT_TRUE( + rangeOverlaps(BSON("x" << 100), BSON("x" << 200), BSON("x" << 170), BSON("x" << 220))); - TEST(RangeMap, RangeMapOverlapPartial) { + ASSERT_FALSE( + rangeOverlaps(BSON("x" << 100), BSON("x" << 200), BSON("x" << 200), BSON("x" << 240))); +} - RangeMap rangeMap; - rangeMap.insert( make_pair( BSON( "x" << 100 ), BSON( "x" << 200 ) ) ); - rangeMap.insert( make_pair( BSON( "x" << 200 ), BSON( "x" << 300 ) ) ); +TEST(BSONRange, RangeIsSubsetOfOther) { + ASSERT_TRUE( + rangeOverlaps(BSON("x" << 100), BSON("x" << 200), BSON("x" << 70), BSON("x" << 300))); + ASSERT_TRUE( + rangeOverlaps(BSON("x" << 100), BSON("x" << 200), BSON("x" << 140), BSON("x" << 180))); +} - RangeVector overlap; - getRangeMapOverlap( rangeMap, BSON( "x" << 150 ), BSON( "x" << 250 ), &overlap ); +TEST(BSONRange, EqualRange) { + ASSERT_TRUE( + rangeOverlaps(BSON("x" << 100), BSON("x" << 200), BSON("x" << 100), BSON("x" << 200))); +} - ASSERT( !overlap.empty() ); - ASSERT_EQUALS( overlap.size(), 2u ); - } +TEST(RangeMap, RangeMapOverlap) { + RangeMap rangeMap; + rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200))); + rangeMap.insert(make_pair(BSON("x" << 200), BSON("x" << 300))); + rangeMap.insert(make_pair(BSON("x" << 300), BSON("x" << 400))); - TEST(RangeMap, RangeMapOverlapInner) { + RangeVector overlap; + getRangeMapOverlap(rangeMap, BSON("x" << 50), BSON("x" << 350), &overlap); - RangeMap rangeMap; - rangeMap.insert( make_pair( BSON( "x" << 100 ), BSON( "x" << 200 ) ) ); + ASSERT(!overlap.empty()); + ASSERT_EQUALS(overlap.size(), 3u); +} - RangeVector overlap; - getRangeMapOverlap( rangeMap, BSON( "x" << 125 ), BSON( "x" << 150 ), &overlap ); +TEST(RangeMap, RangeMapOverlapPartial) { + RangeMap rangeMap; + rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200))); + rangeMap.insert(make_pair(BSON("x" << 200), BSON("x" << 300))); - ASSERT( !overlap.empty() ); - ASSERT_EQUALS( overlap.size(), 1u ); - } + RangeVector overlap; + getRangeMapOverlap(rangeMap, BSON("x" << 150), BSON("x" << 250), &overlap); - TEST(RangeMap, RangeMapNoOverlap) { + ASSERT(!overlap.empty()); + ASSERT_EQUALS(overlap.size(), 2u); +} - RangeMap rangeMap; - rangeMap.insert( make_pair( BSON( "x" << 100 ), BSON( "x" << 200 ) ) ); - rangeMap.insert( make_pair( BSON( "x" << 300 ), BSON( "x" << 400 ) ) ); +TEST(RangeMap, RangeMapOverlapInner) { + RangeMap rangeMap; + rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200))); - RangeVector overlap; - getRangeMapOverlap( rangeMap, BSON( "x" << 200 ), BSON( "x" << 300 ), &overlap ); + RangeVector overlap; + getRangeMapOverlap(rangeMap, BSON("x" << 125), BSON("x" << 150), &overlap); - ASSERT( overlap.empty() ); - } + ASSERT(!overlap.empty()); + ASSERT_EQUALS(overlap.size(), 1u); +} - TEST(RangeMap, RangeMapOverlaps) { +TEST(RangeMap, RangeMapNoOverlap) { + RangeMap rangeMap; + rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200))); + rangeMap.insert(make_pair(BSON("x" << 300), BSON("x" << 400))); - RangeMap rangeMap; - rangeMap.insert( make_pair( BSON( "x" << 100 ), BSON( "x" << 200 ) ) ); + RangeVector overlap; + getRangeMapOverlap(rangeMap, BSON("x" << 200), BSON("x" << 300), &overlap); - ASSERT( rangeMapOverlaps( rangeMap, BSON( "x" << 100 ), BSON( "x" << 200 ) ) ); - ASSERT( rangeMapOverlaps( rangeMap, BSON( "x" << 99 ), BSON( "x" << 200 ) ) ); - ASSERT( rangeMapOverlaps( rangeMap, BSON( "x" << 100 ), BSON( "x" << 201 ) ) ); - ASSERT( rangeMapOverlaps( rangeMap, BSON( "x" << 100 ), BSON( "x" << 200 ) ) ); - ASSERT( !rangeMapOverlaps( rangeMap, BSON( "x" << 99 ), BSON( "x" << 100 ) ) ); - ASSERT( !rangeMapOverlaps( rangeMap, BSON( "x" << 200 ), BSON( "x" << 201 ) ) ); - } + ASSERT(overlap.empty()); +} - TEST(RangeMap, RangeMapContains) { +TEST(RangeMap, RangeMapOverlaps) { + RangeMap rangeMap; + rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200))); - RangeMap rangeMap; - rangeMap.insert( make_pair( BSON( "x" << 100 ), BSON( "x" << 200 ) ) ); + ASSERT(rangeMapOverlaps(rangeMap, BSON("x" << 100), BSON("x" << 200))); + ASSERT(rangeMapOverlaps(rangeMap, BSON("x" << 99), BSON("x" << 200))); + ASSERT(rangeMapOverlaps(rangeMap, BSON("x" << 100), BSON("x" << 201))); + ASSERT(rangeMapOverlaps(rangeMap, BSON("x" << 100), BSON("x" << 200))); + ASSERT(!rangeMapOverlaps(rangeMap, BSON("x" << 99), BSON("x" << 100))); + ASSERT(!rangeMapOverlaps(rangeMap, BSON("x" << 200), BSON("x" << 201))); +} - ASSERT( rangeMapContains( rangeMap, BSON( "x" << 100 ), BSON( "x" << 200 ) ) ); - ASSERT( !rangeMapContains( rangeMap, BSON( "x" << 99 ), BSON( "x" << 200 ) ) ); - ASSERT( !rangeMapContains( rangeMap, BSON( "x" << 100 ), BSON( "x" << 201 ) ) ); - } +TEST(RangeMap, RangeMapContains) { + RangeMap rangeMap; + rangeMap.insert(make_pair(BSON("x" << 100), BSON("x" << 200))); - TEST(RangeMap, RangeMapContainsMinMax) { + ASSERT(rangeMapContains(rangeMap, BSON("x" << 100), BSON("x" << 200))); + ASSERT(!rangeMapContains(rangeMap, BSON("x" << 99), BSON("x" << 200))); + ASSERT(!rangeMapContains(rangeMap, BSON("x" << 100), BSON("x" << 201))); +} - RangeMap rangeMap; - rangeMap.insert( make_pair( BSON( "x" << MINKEY ), BSON( "x" << MAXKEY ) ) ); +TEST(RangeMap, RangeMapContainsMinMax) { + RangeMap rangeMap; + rangeMap.insert(make_pair(BSON("x" << MINKEY), BSON("x" << MAXKEY))); - ASSERT( rangeMapContains( rangeMap, BSON( "x" << MINKEY ), BSON( "x" << MAXKEY ) ) ); - ASSERT( !rangeMapContains( rangeMap, BSON( "x" << 1 ), BSON( "x" << MAXKEY ) ) ); - ASSERT( !rangeMapContains( rangeMap, BSON( "x" << MINKEY ), BSON( "x" << 1 ) ) ); - } + ASSERT(rangeMapContains(rangeMap, BSON("x" << MINKEY), BSON("x" << MAXKEY))); + ASSERT(!rangeMapContains(rangeMap, BSON("x" << 1), BSON("x" << MAXKEY))); + ASSERT(!rangeMapContains(rangeMap, BSON("x" << MINKEY), BSON("x" << 1))); +} } |