diff --git a/02-splay_operation/cpp/Makefile b/02-splay_operation/cpp/Makefile
index 4ca82749b82280d73f3eb750ae3167fa1fbafd4f..b55e10d9e8e8109e172b504adcf2e783c65623e1 100644
--- a/02-splay_operation/cpp/Makefile
+++ b/02-splay_operation/cpp/Makefile
@@ -1,11 +1,15 @@
-test: splay_operation_test
+test: splay_operation_test splay_operation_more_tests
 	./$<
+	./splay_operation_more_tests
 
 CXXFLAGS=-std=c++11 -O2 -Wall -Wextra -g -Wno-sign-compare
 
 splay_operation_test: splay_operation.h splay_operation_test.cpp test_main.cpp
 	$(CXX) $(CXXFLAGS) $^ -o $@
 
+splay_operation_more_tests: splay_operation.h splay_operation_more_tests.cpp test_main.cpp
+	$(CXX) $(CXXFLAGS) $^ -o $@
+
 clean::
 	rm -f splay_operation_test
 
diff --git a/02-splay_operation/cpp/splay_operation_more_tests.cpp b/02-splay_operation/cpp/splay_operation_more_tests.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..3255c921871a5b876d6e6e398185f134dbeeba5a
--- /dev/null
+++ b/02-splay_operation/cpp/splay_operation_more_tests.cpp
@@ -0,0 +1,30 @@
+#include <algorithm>
+#include <cassert>
+#include <fstream>
+#include <functional>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "splay_operation.h"
+
+using namespace std;
+
+const int elements = 5000000;
+
+void test_failed_insert() {
+
+    // Test speed
+    {
+        Tree tree;
+        for (int i = 0; i < elements; i++)
+            tree.insert(i);
+        
+        for (int i = 0; i < 2*elements; i++)
+            tree.insert(0);
+    }
+}
+
+vector<pair<string, function<void()>>> tests = {
+    { "failed_insert", test_failed_insert },
+};
diff --git a/02-splay_operation/python/splay_operation_more_tests.py b/02-splay_operation/python/splay_operation_more_tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..b3a3c9d761a17c16247b919a685ad9a62a7ef9c6
--- /dev/null
+++ b/02-splay_operation/python/splay_operation_more_tests.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python3
+import itertools
+import math
+import sys
+
+from splay_operation import Tree, Node
+
+def test_failed_insert():
+    elements = 100000
+    tree = Tree()
+
+    for elem in range(elements):
+        tree.insert(elem)
+
+    for _ in range(2*elements):
+        tree.insert(0)
+
+tests = [
+    ("failed_insert", test_failed_insert),
+]
+
+if __name__ == "__main__":
+    for required_test in sys.argv[1:] or [name for name, _ in tests]:
+        for name, test in tests:
+            if name == required_test:
+                print("Running test {}".format(name), file=sys.stderr)
+                test()
+                break
+        else:
+            raise ValueError("Unknown test {}".format(name))