]> www.ginac.de Git - ginac.git/blobdiff - check/bugme_chinrem_gcd.cpp
Finalize 1.7.6 release.
[ginac.git] / check / bugme_chinrem_gcd.cpp
index 87c718c7114cf4ceff3ad617b092ab959c0454b3..b3161e8a341d6dbef7fd18a8e41b487f10c1f8cb 100644 (file)
@@ -3,7 +3,7 @@
  * A small program exposing historical bug in poly_cra function. */
 
 /*
- *  GiNaC Copyright (C) 1999-2010 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2019 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
@@ -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*x^2 + 1");
+       ex B = readme("9*x^2 + 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;
 }