From f50b2f69e01212b03cc62d855c4b48f31d4e3117 Mon Sep 17 00:00:00 2001 From: Christian Bauer Date: Sat, 13 Dec 2003 19:04:58 +0000 Subject: [PATCH] synced to HEAD (expand() checks) --- check/exam_paranoia.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/check/exam_paranoia.cpp b/check/exam_paranoia.cpp index b581d87b..55dd9e85 100644 --- a/check/exam_paranoia.cpp +++ b/check/exam_paranoia.cpp @@ -375,7 +375,7 @@ static unsigned exam_paranoia15(void) static unsigned exam_paranoia16(void) { unsigned result = 0; - symbol a("a"), b("b"), c("c"), d("d"); + symbol a("a"), b("b"), c("c"), d("d"), e("e"); ex e1, e2, e3; e1 = pow(1+a*sqrt(b+c), 2); @@ -402,6 +402,30 @@ static unsigned exam_paranoia16(void) ++result; } + e1 = pow(sqrt(a+b)+sqrt(c+d), 3); + e2 = e1.expand(); + + if (e2.has(3*(a+b)*sqrt(c+d)) || e2.has(3*(c+d)*sqrt(a+b))) { + clog << "expand(" << e1 << ") didn't fully expand\n"; + ++result; + } + + e1 = a*(b+c*(d+e)); + e2 = e1.expand(); + + if (e2.has(c*(d+e))) { + clog << "expand(" << e1 << ") didn't fully expand\n"; + ++result; + } + + e1 = 2*pow(1+a, 2)/a; + e2 = e1.expand(); + + if (e2.has(pow(a, 2))) { + clog << "expand(" << e1 << ") didn't fully expand\n"; + ++result; + } + return result; } -- 2.49.0