#include "Line.h"
#include "../src/Document.h"
void test_line_insert() {
Text text;
std::wstring inserted_text = L"abcd\nefg";
text.insert(inserted_text.c_str(), inserted_text.size(), text.size());
// Lines are the same
auto first_line = text.get_line(1);
for(uint i = 0; i < 5; i++) {
TEST_CHECK(first_line[i] == inserted_text[i]);
}
auto second_line = text.get_line(2);
for(uint i = 0; i < 3; i++) {
TEST_CHECK(second_line[i] == inserted_text[i + 5]);
}
}
void test_line_count() {
Text text;
TEST_CHECK(text.get_nb_lines() == 1);
text.insert(L"abcd", 4, text.size());
TEST_CHECK(text.get_nb_lines() == 1);
text.insert(L"\n\ne\nfg", 6, text.size());
TEST_CHECK(text.get_nb_lines() == 4);
text.erase(0, 1);
text.erase(text.size() - 1, 1);
TEST_CHECK(text.get_nb_lines() == 4);
text.erase(0, text.size());
TEST_CHECK(text.size() == 0);
TEST_CHECK(text.get_nb_lines() == 1);
}
void test_prev_next_line() {
Text text;
text.insert(L"abcd", 4, text.size());
TEST_CHECK(text.get_nb_lines() == 1);
text.insert(L"\nefg", 4, text.size());
TEST_CHECK(text.get_nb_lines() == 2);
auto line = text.get_line(1);
TEST_CHECK(line.is_first());
TEST_CHECK(line.length() == 4);
line = line.next();
TEST_CHECK(line.is_last());
TEST_CHECK(line.length() == 3);
line = line.prev();
TEST_CHECK(line.is_first());
TEST_CHECK(line.length() == 4);
}