diff --git a/Polynomial/dont_submit b/Polynomial/dont_submit index b563c791229..190c377049b 100644 --- a/Polynomial/dont_submit +++ b/Polynomial/dont_submit @@ -6,3 +6,4 @@ include/CGAL/Polynomial/modular_gcd_utcf_pure_wang.h test/Polynomial/modular_gcd_utcf_pure_wang.cpp include/CGAL/Polynomial/modular_gcd_utcf_with_wang.h test/Polynomial/modular_gcd_utcf_with_wang.cpp +test/Polynomial/Polynomial_traits_d.cpp diff --git a/Polynomial/test/Polynomial/Polynomial_traits_d_Integer.cpp b/Polynomial/test/Polynomial/Polynomial_traits_d_Integer.cpp new file mode 100755 index 00000000000..cdab6da1351 --- /dev/null +++ b/Polynomial/test/Polynomial/Polynomial_traits_d_Integer.cpp @@ -0,0 +1,40 @@ +#include +#include + +#include +#include + +#ifdef CGAL_HAS_DEFAULT_ARITHMETIC_KERNEL + +#include +#include + +#include + +int main() +{ + // Set wrong rounding mode to test modular arithmetic + CGAL::Protect_FPU_rounding pfr(CGAL_FE_UPWARD); + + typedef CGAL::Arithmetic_kernel AK; + CGAL::set_pretty_mode(std::cerr); + + typedef AK::Integer Integer; + + typedef CGAL::Polynomial Poly; + typedef CGAL::Polynomial_traits_d PT; + std::cerr << std::endl; + std::cerr << "Test for coefficient type Integer" << std::endl; + std::cerr << "--------------------------------------" << std::endl; + CGAL::Test_Pol::test_multiple_dimensions(PT()); + + return 0; +} + +#else +int main() +{ + std::cout << "No default arithmetic kernel has been found.\nNothing was tested" << std::endl; + return 0; +} +#endif // CGAL_HAS_DEFAULT_ARITHMETIC_KERNEL diff --git a/Polynomial/test/Polynomial/Polynomial_traits_d_Rational.cpp b/Polynomial/test/Polynomial/Polynomial_traits_d_Rational.cpp new file mode 100755 index 00000000000..0b1f1b6b0ed --- /dev/null +++ b/Polynomial/test/Polynomial/Polynomial_traits_d_Rational.cpp @@ -0,0 +1,42 @@ +#include +#include + +#include +#include + +#ifdef CGAL_HAS_DEFAULT_ARITHMETIC_KERNEL + +#include +#include + +#include + +int main() +{ + // Set wrong rounding mode to test modular arithmetic + CGAL::Protect_FPU_rounding pfr(CGAL_FE_UPWARD); + + typedef CGAL::Arithmetic_kernel AK; + + CGAL::set_pretty_mode(std::cerr); + + typedef AK::Rational Rational; + + typedef CGAL::Polynomial Poly; + typedef CGAL::Polynomial_traits_d PT; + std::cerr << std::endl; + std::cerr << "Test for coefficient type Rational" << std::endl; + std::cerr << "---------------------------------------" << std::endl; + CGAL::Test_Pol::test_multiple_dimensions(PT()); + + return 0; +} +#else + +int main() +{ + std::cout << "No default arithmetic kernel has been found.\nNothing was tested" << std::endl; + return 0; +} + +#endif // CGAL_HAS_DEFAULT_ARITHMETIC_KERNEL diff --git a/Polynomial/test/Polynomial/Polynomial_traits_d_Rational_Integer.cpp b/Polynomial/test/Polynomial/Polynomial_traits_d_Rational_Integer.cpp new file mode 100755 index 00000000000..2514ecfb7d2 --- /dev/null +++ b/Polynomial/test/Polynomial/Polynomial_traits_d_Rational_Integer.cpp @@ -0,0 +1,47 @@ +#include +#include + +#include +#include + +#ifdef CGAL_HAS_DEFAULT_ARITHMETIC_KERNEL + +#include +#include +#include + +#include + +int main() +{ + // Set wrong rounding mode to test modular arithmetic + CGAL::Protect_FPU_rounding pfr(CGAL_FE_UPWARD); + + typedef CGAL::Arithmetic_kernel AK; + + CGAL::set_pretty_mode(std::cerr); + + typedef AK::Integer Integer; + typedef AK::Rational Rational; + + + typedef CGAL::Polynomial< CGAL::Sqrt_extension< Rational, Integer > > Poly; + typedef CGAL::Polynomial_traits_d PT; + std::cerr << std::endl; + std::cerr << "Test for coefficient type Sqrt_extension< Rational, Integer >" + << std::endl; + std::cerr << + "----------------------------------------------------------------------" + << std::endl; + CGAL::Test_Pol::test_multiple_dimensions(PT()); + + return 0; +} + +#else +int main() +{ + std::cout << "No default arithmetic kernel has been found.\nNothing was tested" << std::endl; + return 0; +} +#endif // CGAL_HAS_DEFAULT_ARITHMETIC_KERNEL diff --git a/Polynomial/test/Polynomial/Polynomial_traits_d_Rational_Rational.cpp b/Polynomial/test/Polynomial/Polynomial_traits_d_Rational_Rational.cpp new file mode 100755 index 00000000000..15f3bdbb5ee --- /dev/null +++ b/Polynomial/test/Polynomial/Polynomial_traits_d_Rational_Rational.cpp @@ -0,0 +1,46 @@ +#include +#include + +#include +#include + +#ifdef CGAL_HAS_DEFAULT_ARITHMETIC_KERNEL + +#include +#include +#include + +#include + +int main() +{ + // Set wrong rounding mode to test modular arithmetic + CGAL::Protect_FPU_rounding pfr(CGAL_FE_UPWARD); + + typedef CGAL::Arithmetic_kernel AK; + + CGAL::set_pretty_mode(std::cerr); + + typedef AK::Rational Rational; + + typedef CGAL::Polynomial< CGAL::Sqrt_extension< Rational, Rational > > Poly; + typedef CGAL::Polynomial_traits_d PT; + std::cerr << std::endl; + std::cerr << + "Test for coefficient type Sqrt_extension< Rational, Rational >" + << std::endl; + std::cerr << + "----------------------------------------------------------------------" + << std::endl; + CGAL::Test_Pol::test_multiple_dimensions(PT()); + return 0; +} + +#else +int main() +{ + std::cout << "No default arithmetic kernel has been found.\nNothing was tested" << std::endl; + return 0; +} + +#endif // CGAL_HAS_DEFAULT_ARITHMETIC_KERNEL diff --git a/Polynomial/test/Polynomial/Polynomial_traits_d_Residue.cpp b/Polynomial/test/Polynomial/Polynomial_traits_d_Residue.cpp new file mode 100755 index 00000000000..49d899dedb6 --- /dev/null +++ b/Polynomial/test/Polynomial/Polynomial_traits_d_Residue.cpp @@ -0,0 +1,51 @@ +#include +#include + +#include +#include + +#ifdef CGAL_HAS_DEFAULT_ARITHMETIC_KERNEL + +//#include +#include +#include + +#include + +int main() +{ + // Set wrong rounding mode to test modular arithmetic + CGAL::Protect_FPU_rounding pfr(CGAL_FE_UPWARD); + + typedef CGAL::Arithmetic_kernel AK; + + CGAL::set_pretty_mode(std::cerr); + + { + // Enforce IEEE double precision and to nearest before + // using modular arithmetic + CGAL::Protect_FPU_rounding pfr(CGAL_FE_TONEAREST); + + typedef CGAL::Polynomial< CGAL::Residue > Poly; + typedef CGAL::Polynomial_traits_d PT; + std::cerr << std::endl; + std::cerr << + "Test for coefficient type CGAL::Residue" + << std::endl; + std::cerr << + "----------------------------------------------------------------------" + << std::endl; + CGAL::Test_Pol::test_multiple_dimensions(PT()); + } + return 0; +} +#else + +int main() +{ + std::cout << "No default arithmetic kernel has been found.\nNothing was tested" << std::endl; + return 0; +} + +#endif // CGAL_HAS_DEFAULT_ARITHMETIC_KERNEL + diff --git a/Polynomial/test/Polynomial/Polynomial_traits_d_test_AK_3.cpp b/Polynomial/test/Polynomial/Polynomial_traits_d_test_AK_3.cpp index 1c1e99127a3..dc2798b28a5 100755 --- a/Polynomial/test/Polynomial/Polynomial_traits_d_test_AK_3.cpp +++ b/Polynomial/test/Polynomial/Polynomial_traits_d_test_AK_3.cpp @@ -21,7 +21,7 @@ void test_AK_3(){ CGAL::set_pretty_mode(std::cerr); typedef typename AK::Integer Integer; - typedef typename AK::Rational Rational; + typedef CGAL::Polynomial< CGAL::Sqrt_extension< Integer, Integer > > Poly;