[run_set] improve run merging

This commit is contained in:
Joe Thornber
2013-07-09 10:36:30 +01:00
parent 31686fbb17
commit 8523314a7f
2 changed files with 39 additions and 2 deletions

View File

@@ -48,6 +48,39 @@ TEST_F(RunSetTests, add_single_blocks)
rs.add(9u);
}
TEST_F(RunSetTests, add_adjacent_single)
{
run_set<unsigned> rs;
rs.add(3);
rs.add(4);
ASSERT_THAT(*rs.begin(), EqRun(3, 5));
ASSERT_THAT(++rs.begin(), Eq(rs.end()));
}
TEST_F(RunSetTests, add_adjacent_single_other_way_round)
{
run_set<unsigned> rs;
rs.add(4);
rs.add(3);
ASSERT_THAT(*rs.begin(), EqRun(3, 5));
ASSERT_THAT(++rs.begin(), Eq(rs.end()));
}
TEST_F(RunSetTests, many_single_blocks)
{
run_set<unsigned> rs;
for (unsigned i = 1; i < 100000; i++)
rs.add(i);
ASSERT_THAT(*rs.begin(), EqRun(1, 100000));
ASSERT_THAT(++rs.begin(), Eq(rs.end()));
}
TEST_F(RunSetTests, add_runs)
{
run_set<unsigned> rs;