+// Bug in add ctor
+unsigned exam_paranoia24()
+{
+ symbol a("a"), b("b"), c("c");
+ ex e = -a + 2*b + c;
+
+ if (e.diff(c).nops() > 1) {
+ clog << "diff(" << e << ",c) was not fully evaluated.\n";
+ return 1;
+ }
+ return 0;
+}
+
+// Bug in partial fraction expansion
+unsigned exam_paranoia25()
+{
+ symbol x("x");
+ ex ex1=pow(x,4)/(x-1)/4;
+ ex ex2=sqrfree_parfrac(ex1,x);
+ ex e = (ex1-ex2).normal();
+
+ if (! e.is_zero()) {
+ clog << "partial fraction expansion of " << ex1 << " produces error.\n";
+ return 1;
+ }
+ return 0;
+}
+
+// Bug in power expansion
+unsigned exam_paranoia26()
+{
+ unsigned result = 0;
+ symbol x("x"), y("y"), a("a");
+ possymbol s("s"), t("t");
+ exmap pwrs =
+ { {pow((x+1)*(y-2)*(s-3)*(t+4), a), pow((x+1)*(y-2)*(s-3), a)*pow(t+4, a)},
+ {pow(2*(x+1)*(y-2)*(s-3)*(t+4), a), pow(2,a)*pow((x+1)*(y-2)*(s-3), a)*pow(t+4, a)},
+ {pow(-(x+1)*(y-2)*(s-3)*(t+4), a), pow(-(x+1)*(y-2)*(s-3), a)*pow(t+4, a)},
+ {pow(-2*(x+1)*(y-2)*(s-3)*(t+4), a), pow(2,a)*pow(-(x+1)*(y-2)*(s-3), a)*pow(t+4, a)} };
+
+ for (auto e : pwrs) {
+ if (! (e.first.expand()).is_equal(e.second) ) {
+ clog << "power expansion of " << e.first << " produces error.\n";
+ ++result;
+ }
+ }
+
+ return result;
+}
+
+// Bug in collect()
+// cf. https://www.ginac.de/pipermail/ginac-list/2021-March/002337.html
+static unsigned exam_collect_multiply_referenced_lst()
+{
+ unsigned result = 0;
+ symbol x("x"), y("y");
+ ex a = x + y;
+ ex l = lst{x, y};
+ ex l2 = l; // make l a multiply referenced object
+
+ try {
+ ex b = collect(a, l);
+ } catch (const std::runtime_error & e) {
+ clog << "collect(" << ", " << l << ") threw a runtime_error("
+ << e.what() << ")" << endl;
+ ++result;
+ }
+
+ return result;
+}
+