[PATCH 2/2] chinrem_gcd: return correct integer content when GCD is a number.
[ginac.git] / check / bugme_chinrem_gcd.cpp
index 87c718c7114cf4ceff3ad617b092ab959c0454b3..9325e338710c20eaf6387342ccebe418fc049e68 100644 (file)
@@ -54,11 +54,24 @@ static void check_extract_integer_content()
        ex g = chinrem_gcd(A, B);
 }
 
+static void integer_coeff_braindamage()
+{
+       parser readme;
+       ex A = readme("3*x2 + 1");
+       ex B = readme("9*x2 + 1");
+       ex g = chinrem_gcd(A, B);
+       if (!g.is_equal(ex(1))) {
+               std::cerr << "expected 1, got " << g << std::endl;
+               throw std::logic_error("chinrem_gcd miscomputed integer content");
+       }
+}
+
 int main(int argc, char** argv)
 {
        cout << "checking for bugs in poly_cra() and friends " << flush;
        check_poly_cra();
        check_extract_integer_content();
+       integer_coeff_braindamage();
        cout << "not found.";
        return 0;
 }