BufferView: cursor_move() takes a character argument

This commit is contained in:
josh committed 2017-11-15 20:32:01 -05:00
1 parent 739edfd6f7
commit 2d559db7d0
6 files changed
+91 -91

No files matched your search

+71 -71
View File
@@ -164,46 +164,46 @@ TEST(BufferViewTest, adjusts_cursor_row_as_cursor_moves)
bv.resize(5, 5);
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 1
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 1
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 2
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 2
bv.update();
EXPECT_EQ(2, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 3
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 3
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 4
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 4
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 5
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 5
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 6
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 6
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 7
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 7
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 6
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 6
bv.update();
EXPECT_EQ(2, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 5
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 5
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 4
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 4
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 3
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 3
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 2
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 2
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 1
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 1
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 0
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 0
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
}
@@ -217,46 +217,46 @@ TEST(BufferViewTest, adjusts_cursor_row_as_cursor_moves_with_scroll_offset_1)
bv.set_scroll_offset(1);
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 1
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 1
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 2
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 2
bv.update();
EXPECT_EQ(2, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 3
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 3
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 4
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 4
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 5
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 5
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 6
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 6
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 7
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 7
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 6
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 6
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 5
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 5
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 4
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 4
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 3
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 3
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 2
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 2
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 1
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 1
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 0
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 0
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
}
@@ -269,7 +269,7 @@ TEST(BufferViewTest, moves_view_down_while_traversing_a_wrapped_line_right)
bv.resize(4, 10);
for (int i = 0; i < 9; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
bv.update();
}
EXPECT_EQ(9, bv.cursor_screen_row());
@@ -278,7 +278,7 @@ TEST(BufferViewTest, moves_view_down_while_traversing_a_wrapped_line_right)
EXPECT_EQ(C('9'), **iterator);
for (int i = 0; i < 3; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_EQ(9, bv.cursor_screen_row());
EXPECT_EQ(1 + i, bv.cursor_screen_column());
@@ -286,7 +286,7 @@ TEST(BufferViewTest, moves_view_down_while_traversing_a_wrapped_line_right)
}
for (int i = 0; i < 4; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_EQ(9, bv.cursor_screen_row());
EXPECT_EQ(i, bv.cursor_screen_column());
@@ -294,7 +294,7 @@ TEST(BufferViewTest, moves_view_down_while_traversing_a_wrapped_line_right)
}
for (int i = 0; i < 4; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_EQ(9, bv.cursor_screen_row());
EXPECT_EQ(i, bv.cursor_screen_column());
@@ -311,14 +311,14 @@ TEST(BufferViewTest, moves_view_down_while_jumping_to_the_end_of_a_wrapped_line)
bv.resize(4, 10);
for (int i = 0; i < 9; i++)
{
bv.cursor_move(BufferView::CursorMovement::DOWN, false);
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false);
bv.update();
}
EXPECT_EQ(9, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
EXPECT_EQ(0, bv.cursor_virtual_column());
EXPECT_EQ(C('9'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::EOL, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::EOL, 0u, false));
bv.update();
EXPECT_EQ(9, bv.cursor_screen_row());
EXPECT_EQ(3, bv.cursor_screen_column());
@@ -334,7 +334,7 @@ TEST(BufferViewTest, moves_view_up_while_traversing_a_wrapped_line_left)
bv.resize(2, 3);
for (int i = 0; i < 4; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
bv.update();
}
EXPECT_EQ(2, bv.cursor_screen_row());
@@ -351,25 +351,25 @@ TEST(BufferViewTest, moves_view_up_while_traversing_a_wrapped_line_left)
EXPECT_EQ(1, bv.cursor_screen_column());
EXPECT_EQ(3, bv.cursor_virtual_column());
EXPECT_EQ(C('c'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, 0u, false));
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
EXPECT_EQ(2, bv.cursor_virtual_column());
EXPECT_EQ(C('b'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, 0u, false));
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(1, bv.cursor_screen_column());
EXPECT_EQ(1, bv.cursor_virtual_column());
EXPECT_EQ(C('a'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, 0u, false));
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
EXPECT_EQ(0, bv.cursor_virtual_column());
EXPECT_EQ(C('2'), **iterator);
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::LEFT, false));
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::LEFT, 0u, false));
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
@@ -385,7 +385,7 @@ TEST(BufferViewTest, moves_view_up_while_jumping_to_start_of_a_wrapped_line)
bv.resize(2, 3);
for (int i = 0; i < 4; i++)
{
bv.cursor_move(BufferView::CursorMovement::DOWN, false);
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false);
bv.update();
}
EXPECT_EQ(2, bv.cursor_screen_row());
@@ -402,7 +402,7 @@ TEST(BufferViewTest, moves_view_up_while_jumping_to_start_of_a_wrapped_line)
EXPECT_EQ(1, bv.cursor_screen_column());
EXPECT_EQ(3, bv.cursor_virtual_column());
EXPECT_EQ(C('c'), **iterator);
bv.cursor_move(BufferView::CursorMovement::SOL, false);
bv.cursor_move(BufferView::CursorMovement::SOL, 0u, false);
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
@@ -416,20 +416,20 @@ TEST(BufferViewTest, warps_view_when_jumping_to_beginning_and_end_of_buffer)
auto iterator = b->add_iterator();
BufferView bv(b, iterator, Cwd);
bv.resize(4, 4);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LAST_LINE, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LAST_LINE, 0u, false));
bv.update();
EXPECT_EQ(12, LineNumber(iterator));
EXPECT_EQ(3, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
EXPECT_EQ(0, bv.cursor_virtual_column());
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::LAST_LINE, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::FIRST_LINE, false));
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::LAST_LINE, 0u, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::FIRST_LINE, 0u, false));
bv.update();
EXPECT_EQ(0, LineNumber(iterator));
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
EXPECT_EQ(0, bv.cursor_virtual_column());
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::FIRST_LINE, false));
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::FIRST_LINE, 0u, false));
}
TEST(BufferViewTest, sets_target_column_to_eol_when_jumping_to_SOL_and_EOL)
@@ -438,18 +438,18 @@ TEST(BufferViewTest, sets_target_column_to_eol_when_jumping_to_SOL_and_EOL)
auto iterator = b->add_iterator();
BufferView bv(b, iterator, Cwd);
bv.resize(4, 4);
bv.cursor_move(BufferView::CursorMovement::EOL, false);
bv.cursor_move(BufferView::CursorMovement::EOL, 0u, false);
bv.update();
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
EXPECT_EQ(C('b'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::UP, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::UP, 0u, false));
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::SOL, false);
bv.cursor_move(BufferView::CursorMovement::SOL, 0u, false);
bv.update();
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
EXPECT_EQ(C('1'), **iterator);
EXPECT_EQ(1, bv.cursor_screen_row());
}
@@ -460,24 +460,24 @@ TEST(BufferViewTest, sets_target_column_when_traversing_left_and_right)
auto iterator = b->add_iterator();
BufferView bv(b, iterator, Cwd);
bv.resize(4, 4);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
bv.update();
EXPECT_EQ(1, LineNumber(iterator));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_EQ(1, LineNumber(iterator));
EXPECT_EQ(C('b'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
bv.update();
EXPECT_EQ(2, LineNumber(iterator));
EXPECT_EQ(C('b'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, 0u, false));
bv.update();
EXPECT_EQ(2, LineNumber(iterator));
EXPECT_EQ(C('a'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::UP, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::UP, 0u, false));
bv.update();
EXPECT_EQ(1, LineNumber(iterator));
EXPECT_EQ(C('a'), **iterator);
@@ -491,30 +491,30 @@ TEST(BufferViewTest, moves_cursor_by_screen_row)
bv.resize(4, 4);
for (int i = 0; i < 6; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false));
bv.update();
EXPECT_EQ(1 + i, LineNumber(iterator));
}
EXPECT_EQ(C('6'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false));
bv.update();
EXPECT_EQ(6, LineNumber(iterator));
EXPECT_EQ(C('d'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_EQ(C('f'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false));
bv.update();
EXPECT_EQ(C('7'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, 0u, false));
bv.update();
EXPECT_EQ(C('f'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, 0u, false));
bv.update();
EXPECT_EQ(C('b'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, 0u, false));
bv.update();
EXPECT_EQ(C('5'), **iterator);
}
@@ -525,15 +525,15 @@ TEST(BufferViewTest, cursor_move_screen_row_up_and_down_returns_false_at_top_and
auto iterator = b->add_iterator();
BufferView bv(b, iterator, Cwd);
bv.resize(4, 4);
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, 0u, false));
bv.update();
EXPECT_EQ(0, LineNumber(iterator));
for (int i = 0; i < 16; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false));
bv.update();
}
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false));
}
TEST(BufferViewTest, scrolls_the_view_up_and_down)
@@ -623,7 +623,7 @@ TEST(BufferViewTest, scrolls_the_view_up_and_down_with_wrapped_lines)
EXPECT_EQ(10, LineNumber(iterator));
EXPECT_EQ(C('1'), **iterator);
bv.cursor_move(BufferView::CursorMovement::RIGHT, false);
bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false);
bv.update();
bv.scroll_view_up(3, false);
bv.update();
@@ -787,15 +787,15 @@ TEST(BufferViewTest, moving_cursor_screen_row_down_jumps_past_wrapped_tab)
bv.update();
EXPECT_EQ(C('0'), **iterator);
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false);
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false);
bv.update();
EXPECT_EQ(C('1'), **iterator);
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false);
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false);
bv.update();
EXPECT_EQ(C('d'), **iterator);
EXPECT_EQ(2, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false);
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false);
bv.update();
EXPECT_EQ(C('f'), **iterator);
EXPECT_EQ(3, bv.cursor_screen_row());