about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/orgparse/tests/test_hugedata.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/orgparse/tests/test_hugedata.py')
-rw-r--r--.venv/lib/python3.12/site-packages/orgparse/tests/test_hugedata.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/orgparse/tests/test_hugedata.py b/.venv/lib/python3.12/site-packages/orgparse/tests/test_hugedata.py
new file mode 100644
index 00000000..f7248ca7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/orgparse/tests/test_hugedata.py
@@ -0,0 +1,30 @@
+import pickle
+
+from .. import loadi
+
+
+def generate_org_lines(num_top_nodes, depth=3, nodes_per_level=1, _level=1):
+    if depth == 0:
+        return
+    for i in range(num_top_nodes):
+        yield ("*" * _level) + ' {0}-th heading of level {1}'.format(i, _level)
+        for child in generate_org_lines(
+                nodes_per_level, depth - 1, nodes_per_level, _level + 1):
+            yield child
+
+
+def num_generate_org_lines(num_top_nodes, depth=3, nodes_per_level=1):
+    if depth == 0:
+        return 0
+    return num_top_nodes * (
+        1 + num_generate_org_lines(
+            nodes_per_level, depth - 1, nodes_per_level))
+
+
+def test_picklable() -> None:
+    num = 1000
+    depth = 3
+    nodes_per_level = 1
+    root = loadi(generate_org_lines(num, depth, nodes_per_level))
+    assert sum(1 for _ in root) == num_generate_org_lines(num, depth, nodes_per_level) + 1
+    pickle.dumps(root)  # should not fail