diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2014-05-22 09:52:22 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2014-05-24 02:14:28 +0100 |
| commit | 695c85f4513241c55296a37d2cf6cf0cd25dbecf (patch) | |
| tree | 007404cc54a173a8478f4954037e394ca445ec80 /src/unit_tests.cc | |
| parent | a7540962cc90266f4f46858184b89f048364f9b2 (diff) | |
Fix, cleanup and refactor compute_modifications
Diffstat (limited to 'src/unit_tests.cc')
| -rw-r--r-- | src/unit_tests.cc | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/src/unit_tests.cc b/src/unit_tests.cc index fa21b736..6bae7a80 100644 --- a/src/unit_tests.cc +++ b/src/unit_tests.cc @@ -154,6 +154,16 @@ void test_modification() kak_assert(pos == ByteCoord{7 COMMA 10}); } { + Modification modif = { {8, 0}, {8, 0}, {1, 0}, {1, 0} }; + auto pos = modif.get_new_coord({12, 31}); + kak_assert(pos == ByteCoord{12 COMMA 31}); + } + { + Modification modif = { {0, 7}, {0, 8}, {0, 0}, {0, 1} }; + auto pos = modif.get_new_coord({1, 0}); + kak_assert(pos == ByteCoord{1 COMMA 0}); + } + { std::vector<Buffer::Change> change = { { Buffer::Change::Insert, {1, 0}, {5, 161}, false }, { Buffer::Change::Insert, {5, 161}, {30, 0}, false }, @@ -167,6 +177,33 @@ void test_modification() kak_assert(modif.num_added == ByteCoord{34 COMMA 0}); kak_assert(modif.num_removed == ByteCoord{0 COMMA 0}); } + { + std::vector<Buffer::Change> change = { + { Buffer::Change::Insert, {1, 20}, {2, 0}, false }, + { Buffer::Change::Insert, {1, 10}, {2, 0}, false }, + { Buffer::Change::Insert, {1, 0}, {2, 0}, false }, + }; + auto modifs = compute_modifications(change); + kak_assert(modifs.size() == 3); + auto& modif = modifs[2]; + kak_assert(modif.old_coord == ByteCoord{1 COMMA 20}); + kak_assert(modif.new_coord == ByteCoord{3 COMMA 10}); + kak_assert(modif.num_added == ByteCoord{1 COMMA 0}); + kak_assert(modif.num_removed == ByteCoord{0 COMMA 0}); + } + { + std::vector<Buffer::Change> change = { + { Buffer::Change::Erase, {1, 10}, {2, 0}, false }, + { Buffer::Change::Erase, {0, 10}, {1, 0}, false }, + }; + auto modifs = compute_modifications(change); + kak_assert(modifs.size() == 2); + auto& modif = modifs[1]; + kak_assert(modif.old_coord == ByteCoord{1 COMMA 10}); + kak_assert(modif.new_coord == ByteCoord{0 COMMA 20}); + kak_assert(modif.num_added == ByteCoord{0 COMMA 0}); + kak_assert(modif.num_removed == ByteCoord{1 COMMA 0}); + } Buffer buffer("test", Buffer::Flags::None, { "tchou mutch\n", @@ -190,10 +227,8 @@ void test_modification() kak_assert(modif.new_coord == ByteCoord{0 COMMA 0}); kak_assert(modif.num_added == ByteCoord{1 COMMA 7}); kak_assert(modif.num_removed == ByteCoord{3 COMMA 0}); - bool deleted; - auto new_coord = modif.get_new_coord({1, 10}, deleted); + auto new_coord = modif.get_new_coord({1, 10}); kak_assert(new_coord == ByteCoord{1 COMMA 7}); - kak_assert(deleted); } { auto& modif = modifs[1]; |
