48 using DataSeq = vector<string>;
50 #define TOK(id) id(STRINGIFY(id)) 52 string TOK(a1), TOK(a2), TOK(a3), TOK(a4), TOK(a5);
53 string TOK(b1), TOK(b2), TOK(b3), TOK(b4);
69 return snapshot({del(a1)
108 DataSeq src({a1,a2,a3,a4,a5});
109 DiffSeq diff = generateTestDiff();
110 CHECK (!isnil (diff));
112 DataSeq target = src;
114 application.consume(diff);
116 CHECK (isnil (diff));
117 CHECK (!isnil (target));
118 CHECK (src != target);
119 CHECK (target == DataSeq({b1,a3,a5,b2,b3,a4,b4}));
Apply a "list diff" to a concrete sequence of elements in a container.
Interpreter interface to define the operations ("verbs"), which describe differences or changes in a ...
iter_stl::IterSnapshot< VAL > snapshot(std::initializer_list< VAL > const &&ili)
Take a snapshot of the given std::initializer_list.
Implementation namespace for support and library code.
Simple test class runner.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...
materialised iterator contents.
Preconfigured adapters for some STL container standard usage situations.
#define DiffStep_CTOR(_ID_)
shortcut to define tokens of the diff language.
generic builder to apply a diff description to a given target data structure.