summaryrefslogtreecommitdiff
path: root/src/unit_tests.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2014-05-26 21:09:12 +0100
committerMaxime Coste <frrrwww@gmail.com>2014-05-26 21:09:12 +0100
commit9870ac22f6a22cc9a87a98a662f1e442500ca256 (patch)
tree2832b916dfc8d3358863499f64770e781dffd503 /src/unit_tests.cc
parentce469398c516420f7ab629006ee02c028e82ebf6 (diff)
Remove Modification
Lets consider that as a failed experiment. You see, I learned something today, for a complicated problem, it is important to keep as much knowledge of the exact problem as possible. the Modification approach failed because it tried to solve the general problem, which is quite complex. The new approach, which keeps the knowledge that selections are sorted is much simpler and faster (see f49bec802157fc592bc6e35755807c6c3a531e78).
Diffstat (limited to 'src/unit_tests.cc')
-rw-r--r--src/unit_tests.cc141
1 files changed, 0 insertions, 141 deletions
diff --git a/src/unit_tests.cc b/src/unit_tests.cc
index c7569804..85038d06 100644
--- a/src/unit_tests.cc
+++ b/src/unit_tests.cc
@@ -4,8 +4,6 @@
#include "selectors.hh"
#include "word_db.hh"
-#include "modification.hh"
-
using namespace Kakoune;
void test_buffer()
@@ -144,144 +142,6 @@ void test_keys()
kak_assert(keys == parsed_keys);
}
-void test_modification()
-{
- {
- Modification modif = { {5, 10}, {5, 10}, {0, 0}, {4, 17} };
- auto pos = modif.get_new_coord({5, 10});
- kak_assert(pos == ByteCoord{9 COMMA 17});
- }
- {
- Modification modif = { {7, 10}, {7, 10}, {0, 5}, {0, 0} };
- auto pos = modif.get_new_coord({7, 10});
- 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 },
- { Buffer::Change::Insert, {30, 0}, {35, 0}, false },
- };
- auto modifs = compute_modifications(change);
- kak_assert(modifs.size() == 1);
- auto& modif = modifs[0];
- kak_assert(modif.old_coord == ByteCoord{1 COMMA 0});
- kak_assert(modif.new_coord == ByteCoord{1 COMMA 0});
- 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});
- }
- {
- std::vector<Buffer::Change> change = {
- { Buffer::Change::Insert, {1, 10}, {2, 0}, false },
- { Buffer::Change::Erase, {1, 20}, {2, 10}, false },
- };
- auto modifs = compute_modifications(change);
- kak_assert(modifs.size() == 1);
- auto& modif = modifs[0];
- kak_assert(modif.old_coord == ByteCoord{1 COMMA 10});
- kak_assert(modif.new_coord == ByteCoord{1 COMMA 10});
- kak_assert(modif.num_added == ByteCoord{0 COMMA 10});
- kak_assert(modif.num_removed == ByteCoord{0 COMMA 10});
- }
- {
- std::vector<Buffer::Change> change = {
- { Buffer::Change::Insert, {1, 10}, {2, 20}, false },
- { Buffer::Change::Erase, {1, 5}, {2, 10}, false },
- };
- auto modifs = compute_modifications(change);
- kak_assert(modifs.size() == 1);
- auto& modif = modifs[0];
- kak_assert(modif.old_coord == ByteCoord{1 COMMA 5});
- kak_assert(modif.new_coord == ByteCoord{1 COMMA 5});
- kak_assert(modif.num_added == ByteCoord{0 COMMA 10});
- kak_assert(modif.num_removed == ByteCoord{0 COMMA 5});
- }
- {
- std::vector<Buffer::Change> change = {
- { Buffer::Change::Insert, {1, 10}, {2, 20}, false },
- { Buffer::Change::Erase, {1, 5}, {2, 10}, false },
- { Buffer::Change::Erase, {1, 10}, {2, 0}, false },
- };
- auto modifs = compute_modifications(change);
- kak_assert(modifs.size() == 1);
- auto& modif = modifs[0];
- kak_assert(modif.old_coord == ByteCoord{1 COMMA 5});
- kak_assert(modif.new_coord == ByteCoord{1 COMMA 5});
- kak_assert(modif.num_added == ByteCoord{0 COMMA 5});
- kak_assert(modif.num_removed == ByteCoord{1 COMMA 0});
- }
-
- Buffer buffer("test", Buffer::Flags::None,
- { "tchou mutch\n",
- "tchou kanaky tchou\n",
- "\n",
- "tchaa tchaa\n",
- "allo\n"});
-
- size_t timestamp = buffer.timestamp();
-
- buffer.erase(buffer.iterator_at({0,0}), buffer.iterator_at({3,0}));
- buffer.insert(buffer.iterator_at({0,0}), "youuhou\nniahaha");
-
- buffer.insert(buffer.iterator_at({2,4}), "yeehaah\n");
-
- auto modifs = compute_modifications(buffer, timestamp);
- kak_assert(modifs.size() == 2);
- {
- auto& modif = modifs[0];
- kak_assert(modif.old_coord == ByteCoord{0 COMMA 0});
- 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});
- auto new_coord = modif.get_new_coord({1, 10});
- kak_assert(new_coord == ByteCoord{1 COMMA 7});
- }
- {
- auto& modif = modifs[1];
- kak_assert(modif.old_coord == ByteCoord{4 COMMA 4});
- kak_assert(modif.new_coord == ByteCoord{2 COMMA 4});
- kak_assert(modif.num_added == ByteCoord{1 COMMA 0});
- kak_assert(modif.num_removed == ByteCoord{0 COMMA 0});
- }
-}
-
void run_unit_tests()
{
test_utf8();
@@ -289,6 +149,5 @@ void run_unit_tests()
test_keys();
test_buffer();
test_undo_group_optimizer();
- test_modification();
test_word_db();
}