示例#1
0
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);
}
示例#2
0
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)));
}