aboutsummaryrefslogtreecommitdiffstats
path: root/libtests/nntree.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libtests/nntree.cc')
-rw-r--r--libtests/nntree.cc142
1 files changed, 58 insertions, 84 deletions
diff --git a/libtests/nntree.cc b/libtests/nntree.cc
index 1579ab46..4a874578 100644
--- a/libtests/nntree.cc
+++ b/libtests/nntree.cc
@@ -1,12 +1,13 @@
-#include <qpdf/QPDFNumberTreeObjectHelper.hh>
-#include <qpdf/QPDFNameTreeObjectHelper.hh>
#include <qpdf/QPDF.hh>
+#include <qpdf/QPDFNameTreeObjectHelper.hh>
+#include <qpdf/QPDFNumberTreeObjectHelper.hh>
#include <qpdf/QUtil.hh>
#include <iostream>
static bool any_failures = false;
-bool report(QPDF& q, QPDFObjectHandle oh, long long item, long long exp_item)
+bool
+report(QPDF& q, QPDFObjectHandle oh, long long item, long long exp_item)
{
QPDFNumberTreeObjectHelper nh(oh, q);
QPDFObjectHandle o1;
@@ -16,61 +17,54 @@ bool report(QPDF& q, QPDFObjectHandle oh, long long item, long long exp_item)
bool f2 = nh.findObject(item, o2);
bool failed = false;
- auto show = [&failed, &oh, &item] () {
- if (! failed)
- {
+ auto show = [&failed, &oh, &item]() {
+ if (!failed) {
failed = true;
- std::cout << "key = " << item << ", oh = "
- << oh.unparseResolved() << std::endl;
+ std::cout << "key = " << item << ", oh = " << oh.unparseResolved()
+ << std::endl;
}
};
auto mk_wanted = [](long long i) {
- return ((i == -1)
- ? "end"
- : (QUtil::int_to_string(i) +
- "/(-" + QUtil::int_to_string(i) + "-)"));
+ return (
+ (i == -1) ? "end"
+ : (QUtil::int_to_string(i) + "/(-" +
+ QUtil::int_to_string(i) + "-)"));
};
std::string i1_wanted = mk_wanted(exp_item);
std::string i2_wanted = mk_wanted(item == exp_item ? item : -1);
auto mk_actual = [](bool found, long long v, QPDFObjectHandle& o) {
- return (found
- ? QUtil::int_to_string(v) + "/" + o.unparse()
- : "end");
+ return (found ? QUtil::int_to_string(v) + "/" + o.unparse() : "end");
};
std::string i1_actual = mk_actual(f1, item - offset, o1);
std::string i2_actual = mk_actual(f2, item, o2);
- if (i1_wanted != i1_actual)
- {
+ if (i1_wanted != i1_actual) {
show();
- std::cout << "i1: wanted " << i1_wanted
- << ", got " << i1_actual
+ std::cout << "i1: wanted " << i1_wanted << ", got " << i1_actual
<< std::endl;
}
- if (i2_wanted != i2_actual)
- {
+ if (i2_wanted != i2_actual) {
show();
- std::cout << "i2: wanted " << i2_wanted
- << ", got " << i2_actual
+ std::cout << "i2: wanted " << i2_wanted << ", got " << i2_actual
<< std::endl;
}
return failed;
}
-void test_bsearch()
+void
+test_bsearch()
{
QPDF q;
q.emptyPDF();
- auto mk = [&q] (std::vector<int> const& v) {
+ auto mk = [&q](std::vector<int> const& v) {
auto nums = QPDFObjectHandle::newArray();
- for (auto i: v)
- {
+ for (auto i : v) {
nums.appendItem(QPDFObjectHandle::newInteger(i));
nums.appendItem(QPDFObjectHandle::newString(
- "-" + QUtil::int_to_string(i) + "-"));
+ "-" + QUtil::int_to_string(i) + "-"));
}
auto limits = QPDFObjectHandle::newArray();
limits.appendItem(QPDFObjectHandle::newInteger(v.at(0)));
@@ -82,8 +76,7 @@ void test_bsearch()
};
auto r = [&q](QPDFObjectHandle& oh, int item, int exp) {
- if (report(q, oh, item, exp))
- {
+ if (report(q, oh, item, exp)) {
any_failures = true;
}
};
@@ -119,36 +112,37 @@ void test_bsearch()
r(d, 20, 20);
r(d, 25, 20);
- if (! any_failures)
- {
+ if (!any_failures) {
std::cout << "bsearch tests passed" << std::endl;
}
}
-QPDFObjectHandle new_node(QPDF& q, std::string const& key)
+QPDFObjectHandle
+new_node(QPDF& q, std::string const& key)
{
auto dict = QPDFObjectHandle::newDictionary();
dict.replaceKey(key, QPDFObjectHandle::newArray());
return q.makeIndirectObject(dict);
}
-static void check_find(QPDFNameTreeObjectHelper& nh,
- std::string const& key, bool prev_if_not_found)
+static void
+check_find(
+ QPDFNameTreeObjectHelper& nh,
+ std::string const& key,
+ bool prev_if_not_found)
{
auto i = nh.find(key, prev_if_not_found);
std::cout << "find " << key << " (" << prev_if_not_found << "): ";
- if (i == nh.end())
- {
+ if (i == nh.end()) {
std::cout << "not found";
- }
- else
- {
+ } else {
std::cout << (*i).first << " -> " << (*i).second.unparse();
}
std::cout << std::endl;
}
-void test_depth()
+void
+test_depth()
{
int constexpr NITEMS = 3;
QPDF q;
@@ -157,40 +151,29 @@ void test_depth()
auto n0 = new_node(q, "/Kids");
root.replaceKey("/NT", n0);
auto k0 = root.getKey("/NT").getKey("/Kids");
- for (int i1 = 0; i1 < NITEMS; ++i1)
- {
+ for (int i1 = 0; i1 < NITEMS; ++i1) {
auto n1 = new_node(q, "/Kids");
k0.appendItem(n1);
auto k1 = n1.getKey("/Kids");
- for (int i2 = 0; i2 < NITEMS; ++i2)
- {
+ for (int i2 = 0; i2 < NITEMS; ++i2) {
auto n2 = new_node(q, "/Kids");
k1.appendItem(n2);
auto k2 = n2.getKey("/Kids");
- for (int i3 = 0; i3 < NITEMS; ++i3)
- {
+ for (int i3 = 0; i3 < NITEMS; ++i3) {
auto n3 = new_node(q, "/Names");
k2.appendItem(n3);
auto items = n3.getKey("/Names");
std::string first;
std::string last;
- for (int i4 = 0; i4 < NITEMS; ++i4)
- {
- int val = (((((i1
- * NITEMS) + i2)
- * NITEMS) + i3)
- * NITEMS) + i4;
+ for (int i4 = 0; i4 < NITEMS; ++i4) {
+ int val =
+ (((((i1 * NITEMS) + i2) * NITEMS) + i3) * NITEMS) + i4;
std::string str = QUtil::int_to_string(10 * val, 6);
- items.appendItem(
- QPDFObjectHandle::newString(str));
- items.appendItem(
- QPDFObjectHandle::newString("val " + str));
- if (i4 == 0)
- {
+ items.appendItem(QPDFObjectHandle::newString(str));
+ items.appendItem(QPDFObjectHandle::newString("val " + str));
+ if (i4 == 0) {
first = str;
- }
- else if (i4 == NITEMS - 1)
- {
+ } else if (i4 == NITEMS - 1) {
last = str;
}
}
@@ -201,35 +184,26 @@ void test_depth()
}
auto limits = QPDFObjectHandle::newArray();
n2.replaceKey("/Limits", limits);
- limits.appendItem(k2.getArrayItem(0)
- .getKey("/Limits")
- .getArrayItem(0));
- limits.appendItem(k2.getArrayItem(NITEMS - 1)
- .getKey("/Limits")
- .getArrayItem(1));
+ limits.appendItem(
+ k2.getArrayItem(0).getKey("/Limits").getArrayItem(0));
+ limits.appendItem(
+ k2.getArrayItem(NITEMS - 1).getKey("/Limits").getArrayItem(1));
}
auto limits = QPDFObjectHandle::newArray();
n1.replaceKey("/Limits", limits);
- limits.appendItem(k1.getArrayItem(0)
- .getKey("/Limits")
- .getArrayItem(0));
- limits.appendItem(k1.getArrayItem(NITEMS - 1)
- .getKey("/Limits")
- .getArrayItem(1));
+ limits.appendItem(k1.getArrayItem(0).getKey("/Limits").getArrayItem(0));
+ limits.appendItem(
+ k1.getArrayItem(NITEMS - 1).getKey("/Limits").getArrayItem(1));
}
QPDFNameTreeObjectHelper nh(n0, q);
std::cout << "--- forward ---" << std::endl;
- for (auto i: nh)
- {
- std::cout << i.first << " -> "
- << i.second.unparse() << std::endl;
+ for (auto i : nh) {
+ std::cout << i.first << " -> " << i.second.unparse() << std::endl;
}
std::cout << "--- backward ---" << std::endl;
- for (auto i = nh.last(); i.valid(); --i)
- {
- std::cout << (*i).first << " -> "
- << (*i).second.unparse() << std::endl;
+ for (auto i = nh.last(); i.valid(); --i) {
+ std::cout << (*i).first << " -> " << (*i).second.unparse() << std::endl;
}
// Find
@@ -243,11 +217,11 @@ void test_depth()
check_find(nh, "000805", true);
}
-int main()
+int
+main()
{
test_bsearch();
test_depth();
return 0;
}
-