From 5c3f3d4a8655fffd2f5e9f60b47d23db719aa452 Mon Sep 17 00:00:00 2001 From: Christian Bauer Date: Sat, 13 Dec 2003 19:04:38 +0000 Subject: [PATCH 1/1] added more checks for expand() --- 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 1104ebe9..21d40c9a 100644 --- a/check/exam_paranoia.cpp +++ b/check/exam_paranoia.cpp @@ -375,7 +375,7 @@ static unsigned exam_paranoia15() static unsigned exam_paranoia16() { 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() ++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.44.0