| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #include "test_framework.hpp"
- #include "lumacs/buffer.hpp"
- using namespace lumacs;
- TEST(Buffer_Insert) {
- Buffer b("test");
- b.insert({0, 0}, "Hello");
- ASSERT_EQ(std::string("Hello"), b.content());
-
- b.insert({0, 5}, " World");
- ASSERT_EQ(std::string("Hello World"), b.content());
- }
- TEST(Buffer_Erase) {
- Buffer b("test");
- b.insert({0, 0}, "Hello World");
-
- // Erase " World"
- b.erase({{0, 5}, {0, 11}});
- ASSERT_EQ(std::string("Hello"), b.content());
- }
- TEST(Buffer_Find_Basic) {
- Buffer b("test");
- b.insert({0, 0}, "Hello World\nLine 2\nTarget found");
-
- // Find "World"
- auto res = b.find("World", {0, 0});
- ASSERT_TRUE(res.has_value());
- ASSERT_EQ(static_cast<size_t>(0), res->start.line);
- ASSERT_EQ(static_cast<size_t>(6), res->start.column);
- ASSERT_EQ(static_cast<size_t>(0), res->end.line);
- ASSERT_EQ(static_cast<size_t>(11), res->end.column);
- }
- TEST(Buffer_Find_NotFound) {
- Buffer b("test");
- b.insert({0, 0}, "Hello World");
-
- auto res = b.find("Missing", {0, 0});
- ASSERT_TRUE(!res.has_value());
- }
- TEST(Buffer_Find_MultiLine) {
- Buffer b("test");
- b.insert({0, 0}, "First\nSecond\nThird");
-
- auto res = b.find("Second", {0, 0});
- ASSERT_TRUE(res.has_value());
- ASSERT_EQ(static_cast<size_t>(1), res->start.line);
- ASSERT_EQ(static_cast<size_t>(0), res->start.column);
- }
- TEST(Buffer_Clear) {
- Buffer b("test");
- b.insert({0, 0}, "Hello World\nLine 2");
- ASSERT_EQ(static_cast<size_t>(2), b.line_count());
-
- b.clear();
-
- ASSERT_EQ(static_cast<size_t>(1), b.line_count());
- ASSERT_EQ(std::string(""), b.content());
- ASSERT_TRUE(b.is_modified());
- }
- int main() {
- return TestRunner::instance().run_all();
- }
|