diff --git a/tests/datasets/multiple-roots-tree-after-append-exists-another-tree-to.xml b/tests/datasets/multiple-roots-tree-after-append-exists-another-tree-to.xml
new file mode 100644
index 0000000..f1fe95b
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-append-exists-another-tree-to.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/multiple-roots-tree-after-append-exists-down-to.xml b/tests/datasets/multiple-roots-tree-after-append-exists-down-to.xml
new file mode 100644
index 0000000..e865760
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-append-exists-down-to.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/multiple-roots-tree-after-append-exists-up-to.xml b/tests/datasets/multiple-roots-tree-after-append-exists-up-to.xml
new file mode 100644
index 0000000..c1a994e
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-append-exists-up-to.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/multiple-roots-tree-after-insert-exists-after-another-tree.xml b/tests/datasets/multiple-roots-tree-after-insert-exists-after-another-tree.xml
new file mode 100644
index 0000000..30a5dd5
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-insert-exists-after-another-tree.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/multiple-roots-tree-after-insert-exists-after-down.xml b/tests/datasets/multiple-roots-tree-after-insert-exists-after-down.xml
new file mode 100644
index 0000000..64294c1
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-insert-exists-after-down.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/multiple-roots-tree-after-insert-exists-after-up.xml b/tests/datasets/multiple-roots-tree-after-insert-exists-after-up.xml
new file mode 100644
index 0000000..bc92be2
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-insert-exists-after-up.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/multiple-roots-tree-after-insert-exists-before-another-tree.xml b/tests/datasets/multiple-roots-tree-after-insert-exists-before-another-tree.xml
new file mode 100644
index 0000000..f890cba
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-insert-exists-before-another-tree.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/multiple-roots-tree-after-insert-exists-before-down.xml b/tests/datasets/multiple-roots-tree-after-insert-exists-before-down.xml
new file mode 100644
index 0000000..bc92be2
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-insert-exists-before-down.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/multiple-roots-tree-after-insert-exists-before-up.xml b/tests/datasets/multiple-roots-tree-after-insert-exists-before-up.xml
new file mode 100644
index 0000000..975bd23
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-insert-exists-before-up.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/multiple-roots-tree-after-prepend-exists-another-tree-to.xml b/tests/datasets/multiple-roots-tree-after-prepend-exists-another-tree-to.xml
new file mode 100644
index 0000000..1a8f596
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-prepend-exists-another-tree-to.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/multiple-roots-tree-after-prepend-exists-down-to.xml b/tests/datasets/multiple-roots-tree-after-prepend-exists-down-to.xml
new file mode 100644
index 0000000..2c52ad9
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-prepend-exists-down-to.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/multiple-roots-tree-after-prepend-exists-up-to.xml b/tests/datasets/multiple-roots-tree-after-prepend-exists-up-to.xml
new file mode 100644
index 0000000..284dbad
--- /dev/null
+++ b/tests/datasets/multiple-roots-tree-after-prepend-exists-up-to.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/tree-after-append-exists-down-to.xml b/tests/datasets/tree-after-append-exists-down-to.xml
new file mode 100644
index 0000000..f38dcf1
--- /dev/null
+++ b/tests/datasets/tree-after-append-exists-down-to.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/tree-after-append-exists-up-to.xml b/tests/datasets/tree-after-append-exists-up-to.xml
new file mode 100644
index 0000000..e0a034f
--- /dev/null
+++ b/tests/datasets/tree-after-append-exists-up-to.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/tree-after-insert-exists-after-down.xml b/tests/datasets/tree-after-insert-exists-after-down.xml
new file mode 100644
index 0000000..9faf4c5
--- /dev/null
+++ b/tests/datasets/tree-after-insert-exists-after-down.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/tree-after-insert-exists-after-up.xml b/tests/datasets/tree-after-insert-exists-after-up.xml
new file mode 100644
index 0000000..32a03db
--- /dev/null
+++ b/tests/datasets/tree-after-insert-exists-after-up.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/tree-after-insert-exists-before-down.xml b/tests/datasets/tree-after-insert-exists-before-down.xml
new file mode 100644
index 0000000..32a03db
--- /dev/null
+++ b/tests/datasets/tree-after-insert-exists-before-down.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/tree-after-insert-exists-before-up.xml b/tests/datasets/tree-after-insert-exists-before-up.xml
new file mode 100644
index 0000000..203ca7e
--- /dev/null
+++ b/tests/datasets/tree-after-insert-exists-before-up.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/tree-after-prepend-exists-down-to.xml b/tests/datasets/tree-after-prepend-exists-down-to.xml
new file mode 100644
index 0000000..e2fa465
--- /dev/null
+++ b/tests/datasets/tree-after-prepend-exists-down-to.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/datasets/tree-after-prepend-exists-up-to.xml b/tests/datasets/tree-after-prepend-exists-up-to.xml
new file mode 100644
index 0000000..ca0ba11
--- /dev/null
+++ b/tests/datasets/tree-after-prepend-exists-up-to.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+