* these oopses for good, so we run those stupid tests... */
/*
- * GiNaC Copyright (C) 1999-2020 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2021 Johannes Gutenberg University Mainz, Germany
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
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;
+}
+
unsigned exam_paranoia()
{
unsigned result = 0;
result += exam_paranoia24(); cout << '.' << flush;
result += exam_paranoia25(); cout << '.' << flush;
result += exam_paranoia26(); cout << '.' << flush;
+ result += exam_collect_multiply_referenced_lst(); cout << '.' << flush;
return result;
}