aboutsummaryrefslogtreecommitdiffstats
path: root/examples/qtest
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2021-01-30 13:34:08 +0100
committerJay Berkenbilt <ejb@ql.org>2021-01-30 21:52:16 +0100
commit1fec40454ef72c6e2f079b599e9c807ce69a4bec (patch)
treecb260b509667287d5bb20bdb9f37d8964a5cfa2b /examples/qtest
parentce19ec5c4b0ae88592289bf3c5b32b71b9c22eaa (diff)
downloadqpdf-1fec40454ef72c6e2f079b599e9c807ce69a4bec.tar.zst
Add example of name/number trees and dictionary/array iteration
Diffstat (limited to 'examples/qtest')
-rw-r--r--examples/qtest/name-number-tree.test30
-rw-r--r--examples/qtest/name-number-tree/nn.out59
-rw-r--r--examples/qtest/name-number-tree/out.pdf179
3 files changed, 268 insertions, 0 deletions
diff --git a/examples/qtest/name-number-tree.test b/examples/qtest/name-number-tree.test
new file mode 100644
index 00000000..f3e433fd
--- /dev/null
+++ b/examples/qtest/name-number-tree.test
@@ -0,0 +1,30 @@
+#!/usr/bin/env perl
+require 5.008;
+BEGIN { $^W = 1; }
+use strict;
+
+chdir("name-number-tree") or die "chdir testdir failed: $!\n";
+
+require TestDriver;
+
+my $td = new TestDriver('name-number-tree');
+
+cleanup();
+
+$td->runtest("name/number tree",
+ {$td->COMMAND => 'pdf-name-number-tree a.pdf'},
+ {$td->FILE => 'nn.out', $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+
+$td->runtest("check output",
+ {$td->FILE => "a.pdf"},
+ {$td->FILE => "out.pdf"});
+
+cleanup();
+
+$td->report(2);
+
+sub cleanup
+{
+ unlink 'a.pdf';
+}
diff --git a/examples/qtest/name-number-tree/nn.out b/examples/qtest/name-number-tree/nn.out
new file mode 100644
index 00000000..d1093462
--- /dev/null
+++ b/examples/qtest/name-number-tree/nn.out
@@ -0,0 +1,59 @@
+just inserted P -> (pawn)
+predecessor: N -> (knight)
+successor: Q -> (queen)
+Name tree items:
+ B -> (bishop)
+ K -> (king)
+ N -> (knight)
+ P -> (pawn)
+ Q -> (queen)
+ R -> (rook)
+Keys in name tree object:
+/Names
+Values in names:
+ (B)
+ (bishop)
+ (K)
+ (king)
+ (N)
+ (knight)
+ (P)
+ (pawn)
+ (Q)
+ (queen)
+ (R)
+ (rook)
+Has Q?: 1
+Has W?: 0
+Found W?: 0
+Found Q?: 1
+Q: (queen)
+Q: Q -> (queen)
+W found: 0
+W's predecessor: R -> (rook)
+Remove P: 1
+Value removed: (pawn)
+Has P?: 0
+Find K: (king)
+Iter after removing K: N -> (knight)
+Has K?: 0
+Numbers:
+7 -> -7-, 14 -> -14-, 21 -> -21-, 28 -> -28-, 35 -> -35-
+42 -> -42-, 49 -> -49-, 56 -> -56-, 63 -> -63-, 70 -> -70-
+77 -> -77-, 84 -> -84-, 91 -> -91-, 98 -> -98-, 105 -> -105-
+112 -> -112-, 119 -> -119-, 126 -> -126-, 133 -> -133-, 140 -> -140-
+147 -> -147-, 154 -> -154-, 161 -> -161-, 168 -> -168-, 175 -> -175-
+182 -> -182-, 189 -> -189-, 196 -> -196-, 203 -> -203-, 210 -> -210-
+217 -> -217-, 224 -> -224-, 231 -> -231-, 238 -> -238-, 245 -> -245-
+252 -> -252-, 259 -> -259-, 266 -> -266-, 273 -> -273-, 280 -> -280-
+287 -> -287-, 294 -> -294-, 301 -> -301-, 308 -> -308-, 315 -> -315-
+322 -> -322-, 329 -> -329-, 336 -> -336-, 343 -> -343-, 350 -> -350-
+Numbers after filtering:
+7 -> -7-, 14 -> -14-, 21 -> -21-, 28 -> -28-, 42 -> -42-
+49 -> -49-, 56 -> -56-, 63 -> -63-, 77 -> -77-, 84 -> -84-
+91 -> -91-, 98 -> -98-, 112 -> -112-, 119 -> -119-, 126 -> -126-
+133 -> -133-, 147 -> -147-, 154 -> -154-, 161 -> -161-, 168 -> -168-
+182 -> -182-, 189 -> -189-, 196 -> -196-, 203 -> -203-, 217 -> -217-
+224 -> -224-, 231 -> -231-, 238 -> -238-, 252 -> -252-, 259 -> -259-
+266 -> -266-, 273 -> -273-, 287 -> -287-, 294 -> -294-, 301 -> -301-
+308 -> -308-, 322 -> -322-, 329 -> -329-, 336 -> -336-, 343 -> -343-
diff --git a/examples/qtest/name-number-tree/out.pdf b/examples/qtest/name-number-tree/out.pdf
new file mode 100644
index 00000000..69496619
--- /dev/null
+++ b/examples/qtest/name-number-tree/out.pdf
@@ -0,0 +1,179 @@
+%PDF-1.3
+%¿÷¢þ
+%QDF-1.0
+
+%% Original object ID: 1 0
+1 0 obj
+<<
+ /Example <<
+ /NameTree <<
+ /Names [
+ (B)
+ (bishop)
+ (N)
+ (knight)
+ (Q)
+ (queen)
+ (R)
+ (rook)
+ ]
+ >>
+ /NumberTree <<
+ /Kids [
+ 2 0 R
+ 3 0 R
+ 4 0 R
+ ]
+ /Limits [
+ 7
+ 343
+ ]
+ >>
+ >>
+ /Pages 5 0 R
+ /Type /Catalog
+>>
+endobj
+
+%% Original object ID: 3 0
+2 0 obj
+<<
+ /Limits [
+ 7
+ 112
+ ]
+ /Nums [
+ 7
+ (-7-)
+ 14
+ (-14-)
+ 21
+ (-21-)
+ 28
+ (-28-)
+ 42
+ (-42-)
+ 49
+ (-49-)
+ 56
+ (-56-)
+ 63
+ (-63-)
+ 77
+ (-77-)
+ 84
+ (-84-)
+ 91
+ (-91-)
+ 98
+ (-98-)
+ 112
+ (-112-)
+ ]
+>>
+endobj
+
+%% Original object ID: 4 0
+3 0 obj
+<<
+ /Limits [
+ 119
+ 224
+ ]
+ /Nums [
+ 119
+ (-119-)
+ 126
+ (-126-)
+ 133
+ (-133-)
+ 147
+ (-147-)
+ 154
+ (-154-)
+ 161
+ (-161-)
+ 168
+ (-168-)
+ 182
+ (-182-)
+ 189
+ (-189-)
+ 196
+ (-196-)
+ 203
+ (-203-)
+ 217
+ (-217-)
+ 224
+ (-224-)
+ ]
+>>
+endobj
+
+%% Original object ID: 5 0
+4 0 obj
+<<
+ /Limits [
+ 231
+ 343
+ ]
+ /Nums [
+ 231
+ (-231-)
+ 238
+ (-238-)
+ 252
+ (-252-)
+ 259
+ (-259-)
+ 266
+ (-266-)
+ 273
+ (-273-)
+ 287
+ (-287-)
+ 294
+ (-294-)
+ 301
+ (-301-)
+ 308
+ (-308-)
+ 322
+ (-322-)
+ 329
+ (-329-)
+ 336
+ (-336-)
+ 343
+ (-343-)
+ ]
+>>
+endobj
+
+%% Original object ID: 2 0
+5 0 obj
+<<
+ /Count 0
+ /Kids [
+ ]
+ /Type /Pages
+>>
+endobj
+
+xref
+0 6
+0000000000 65535 f
+0000000052 00000 n
+0000000448 00000 n
+0000000775 00000 n
+0000001130 00000 n
+0000001505 00000 n
+trailer <<
+ /Root 1 0 R
+ /Size 6
+ /ID [<31415926535897932384626433832795><31415926535897932384626433832795>]
+>>
+startxref
+1567
+%%EOF