summaryrefslogtreecommitdiff
path: root/src/unit_tests.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2014-05-22 09:52:22 +0100
committerMaxime Coste <frrrwww@gmail.com>2014-05-24 02:14:28 +0100
commit695c85f4513241c55296a37d2cf6cf0cd25dbecf (patch)
tree007404cc54a173a8478f4954037e394ca445ec80 /src/unit_tests.cc
parenta7540962cc90266f4f46858184b89f048364f9b2 (diff)
Fix, cleanup and refactor compute_modifications
Diffstat (limited to 'src/unit_tests.cc')
-rw-r--r--src/unit_tests.cc41
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];