From 75da0a577425e8547db5784a737cdde9144605fc Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Sat, 21 Feb 2015 01:28:33 -0800 Subject: [PATCH] Add language specs for removal of characters --- spec/runtime/languages/arithmetic/main.txt | 2 +- spec/runtime/languages/language_specs.cc | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/spec/runtime/languages/arithmetic/main.txt b/spec/runtime/languages/arithmetic/main.txt index fd5c3e04..22a114bb 100644 --- a/spec/runtime/languages/arithmetic/main.txt +++ b/spec/runtime/languages/arithmetic/main.txt @@ -22,7 +22,7 @@ x variables with greek letters ==================================== -φ1 +φ123 --- diff --git a/spec/runtime/languages/language_specs.cc b/spec/runtime/languages/language_specs.cc index 2cd6812e..68416c4a 100644 --- a/spec/runtime/languages/language_specs.cc +++ b/spec/runtime/languages/language_specs.cc @@ -60,6 +60,22 @@ describe("Languages", [&]() { expect_the_correct_tree(); }); + + it(("handles random deletions in " + entry.description).c_str(), [&]() { + SpyReader reader(entry.input, 3); + ts_document_set_input(doc, reader.input()); + + size_t position = entry.input.size() / 2; + string removed = entry.input.substr(position); + + reader.erase(position, removed.size()); + ts_document_edit(doc, { position, 0, removed.size() }); + + reader.insert(position, removed); + ts_document_edit(doc, { position, removed.size(), 0 }); + + expect_the_correct_tree(); + }); } }); };