Range32 ReduceParams::sizeInit(const SharedContext& ctx) const { if (!growSched.disabled() || growSched.defaulted()) { uint32 base = getBase(ctx); uint32 lo = std::min(getLimit(base, fInit, initRange), maxRange); uint32 hi = getLimit(base, fMax, Range32(lo, maxRange)); return Range32(lo, hi); } return Range32(maxRange, maxRange); }
void test_even_more() { RangeList16 rl; rl.merge(0, 100); rl.erase(0, 50); BOOST_CHECK(rl.size() == 1); BOOST_CHECK(rl.front().begin() == 51); BOOST_CHECK(rl.front().end() == 100); rl.clear(); rl.merge(0, 29); rl.merge(34, 50); rl.merge(53, 100); BOOST_CHECK(rl.getContains(30, 33) == rl.end()); BOOST_CHECK(rl.getContains(30, 60)->begin() == 34); BOOST_CHECK(rl.getContains(30, 60)->end() == 50); BOOST_CHECK(rl.getContains(30, 100) != rl.end()); rl.erase(rl.getContains(30, 60)); BOOST_CHECK(rl.getContains(30, 60)->begin() == 53); BOOST_CHECK(rl.getContains(30, 60)->end() == 100); rl.erase(rl.getContains(55, 55)); BOOST_CHECK(rl.size() == 1); BOOST_CHECK(rl.begin()->begin() == 0); BOOST_CHECK(rl.begin()->end() == 29); RangeList32 rl2; rl2.merge(0ul, 1044496385ul); rl2.merge(1044496387ul, 4294967290ul); BOOST_CHECK(rl2.contains(Range32(123567ul))); BOOST_CHECK(rl2.contains(Range32(1044496385ul))); BOOST_CHECK(rl2.contains(Range32(123123245ul))); BOOST_CHECK(rl2.contains(Range32(1044496384ul))); BOOST_CHECK(rl2.contains(Range32(1044496387ul))); BOOST_CHECK(rl2.contains(Range32(2669731838ul))); BOOST_CHECK(rl2.contains(Range32(2669731840ul))); BOOST_CHECK(rl2.contains(Range32(2669731700ul))); BOOST_CHECK(!rl2.contains(Range32(1044496386ul))); }