mirror of https://github.com/CGAL/cgal
Fix by Daniel Russel to make testsuite greener
Raise "NUMERICAL ISSUE" instead of "WARNING". The latter made some rows of the testsuite completely yellow. Fix has been tested locally.
This commit is contained in:
parent
9b72601224
commit
681f282d77
|
|
@ -14,7 +14,7 @@
|
||||||
//
|
//
|
||||||
// $URL$
|
// $URL$
|
||||||
// $Id$
|
// $Id$
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Author(s) : Daniel Russel <drussel@alumni.princeton.edu>
|
// Author(s) : Daniel Russel <drussel@alumni.princeton.edu>
|
||||||
|
|
||||||
|
|
@ -54,7 +54,7 @@ template <class Traits, class Visitor=Sort_visitor_base> class Sort:
|
||||||
typedef typename Traits::Active_points_1_table TTable;
|
typedef typename Traits::Active_points_1_table TTable;
|
||||||
typedef typename Traits::Kinetic_kernel::Compare_x_1 KLess;
|
typedef typename Traits::Kinetic_kernel::Compare_x_1 KLess;
|
||||||
typedef typename Traits::Instantaneous_kernel::Compare_x_1 IComp;
|
typedef typename Traits::Instantaneous_kernel::Compare_x_1 IComp;
|
||||||
|
|
||||||
//typedef typename Traits::Instantaneous_kernel::Compare_x_1 ILess;
|
//typedef typename Traits::Instantaneous_kernel::Compare_x_1 ILess;
|
||||||
|
|
||||||
typedef Sort<Traits, Visitor> This;
|
typedef Sort<Traits, Visitor> This;
|
||||||
|
|
@ -69,7 +69,7 @@ template <class Traits, class Visitor=Sort_visitor_base> class Sort:
|
||||||
// STL algorithms want less rather than compare. So we need to convert.
|
// STL algorithms want less rather than compare. So we need to convert.
|
||||||
struct ILess {
|
struct ILess {
|
||||||
ILess(IComp ic): ic_(ic){}
|
ILess(IComp ic): ic_(ic){}
|
||||||
|
|
||||||
bool operator()(Object_key a, Object_key b) const {
|
bool operator()(Object_key a, Object_key b) const {
|
||||||
bool ret=( ic_(a,b) == CGAL::SMALLER);
|
bool ret=( ic_(a,b) == CGAL::SMALLER);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
@ -113,16 +113,16 @@ template <class Traits, class Visitor=Sort_visitor_base> class Sort:
|
||||||
}
|
}
|
||||||
Less less_;
|
Less less_;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
typedef Swap_event<This,iterator, typename KLess::result_type> Event;
|
typedef Swap_event<This,iterator, typename KLess::result_type> Event;
|
||||||
friend class Swap_event<This,iterator, typename KLess::result_type>;
|
friend class Swap_event<This,iterator, typename KLess::result_type>;
|
||||||
// Redirects the Simulator notifications to function calls
|
// Redirects the Simulator notifications to function calls
|
||||||
CGAL_KINETIC_DECLARE_LISTENERS(typename Traits::Simulator,
|
CGAL_KINETIC_DECLARE_LISTENERS(typename Traits::Simulator,
|
||||||
typename Active_objects_table)
|
typename Active_objects_table)
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// Register this KDS with the MovingObjectTable and the Simulator
|
// Register this KDS with the MovingObjectTable and the Simulator
|
||||||
Sort(Traits tr, Visitor v=Visitor()/*,
|
Sort(Traits tr, Visitor v=Visitor()/*,
|
||||||
typedef Active_objects_table::Handle aot,
|
typedef Active_objects_table::Handle aot,
|
||||||
Kinetic_less kless=tr.kinetic_kernel_object().is_less_x_1_object(),
|
Kinetic_less kless=tr.kinetic_kernel_object().is_less_x_1_object(),
|
||||||
Instantaneous_less iless*/): compare_(tr.kinetic_kernel_object().compare_x_1_object()),
|
Instantaneous_less iless*/): compare_(tr.kinetic_kernel_object().compare_x_1_object()),
|
||||||
|
|
@ -161,9 +161,9 @@ public:
|
||||||
k, iless_);
|
k, iless_);
|
||||||
CGAL_LOG(Log::LOTS, "\nInserting " << k);
|
CGAL_LOG(Log::LOTS, "\nInserting " << k);
|
||||||
if (it != sorted_.end()) {
|
if (it != sorted_.end()) {
|
||||||
CGAL_LOG(Log::LOTS, " before " << it->object() <<std::endl);
|
CGAL_LOG(Log::LOTS, " before " << it->object() <<std::endl);
|
||||||
} else {
|
} else {
|
||||||
CGAL_LOG(Log::LOTS, " before end" <<std::endl);
|
CGAL_LOG(Log::LOTS, " before end" <<std::endl);
|
||||||
}
|
}
|
||||||
/*if (it != sorted_.end()) {
|
/*if (it != sorted_.end()) {
|
||||||
v_.remove_edge(prior(it), it);
|
v_.remove_edge(prior(it), it);
|
||||||
|
|
@ -172,7 +172,7 @@ public:
|
||||||
sorted_.insert(it, OD(k));
|
sorted_.insert(it, OD(k));
|
||||||
|
|
||||||
|
|
||||||
rebuild_certificate(prior(it));
|
rebuild_certificate(prior(it));
|
||||||
//v_.create_edge(prior(it), it);
|
//v_.create_edge(prior(it), it);
|
||||||
if (prior(it) != sorted_.begin()) {
|
if (prior(it) != sorted_.begin()) {
|
||||||
rebuild_certificate(prior(prior(it)));
|
rebuild_certificate(prior(prior(it)));
|
||||||
|
|
@ -227,9 +227,9 @@ public:
|
||||||
simulator_->delete_event(n->event());
|
simulator_->delete_event(n->event());
|
||||||
n->set_event(Event_key());
|
n->set_event(Event_key());
|
||||||
}
|
}
|
||||||
|
|
||||||
it->swap(*n);
|
it->swap(*n);
|
||||||
|
|
||||||
CGAL_LOG(Log::LOTS, "Updating next certificate " << std::endl);
|
CGAL_LOG(Log::LOTS, "Updating next certificate " << std::endl);
|
||||||
if (n != sorted_.end()) {
|
if (n != sorted_.end()) {
|
||||||
rebuild_certificate(n);
|
rebuild_certificate(n);
|
||||||
|
|
@ -241,14 +241,14 @@ public:
|
||||||
} else {
|
} else {
|
||||||
it->set_event(simulator_->null_event());
|
it->set_event(simulator_->null_event());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CGAL_LOG(Log::LOTS, "Updating prev certificate " << std::endl);
|
CGAL_LOG(Log::LOTS, "Updating prev certificate " << std::endl);
|
||||||
if (it != sorted_.begin()) {
|
if (it != sorted_.begin()) {
|
||||||
rebuild_certificate(prior(it));
|
rebuild_certificate(prior(it));
|
||||||
}
|
}
|
||||||
v_.post_swap(it, n);
|
v_.post_swap(it, n);
|
||||||
|
|
||||||
CGAL_LOG_WRITE(Log::LOTS, write(LOG_STREAM));
|
CGAL_LOG_WRITE(Log::LOTS, write(LOG_STREAM));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -261,18 +261,18 @@ public:
|
||||||
std::cerr << "ERROR: objects " << it->object() << " and "
|
std::cerr << "ERROR: objects " << it->object() << " and "
|
||||||
<< next(it)->object() << " are out of order.\n";
|
<< next(it)->object() << " are out of order.\n";
|
||||||
std::cerr << "Kinetic are " << aot_->at(it->object()) << " and " << aot_->at(*next(it)) << std::endl;
|
std::cerr << "Kinetic are " << aot_->at(it->object()) << " and " << aot_->at(*next(it)) << std::endl;
|
||||||
std::cerr << "Time is " << ik_.time() << std::endl;
|
std::cerr << "Time is " << ik_.time() << std::endl;
|
||||||
/*std::cerr << "Static are " << ik_.current_coordinates_object()(it->object()) << " and "
|
/*std::cerr << "Static are " << ik_.current_coordinates_object()(it->object()) << " and "
|
||||||
<< ik_.current_coordinates_object()(next(it)->object()) << std::endl;*/
|
<< ik_.current_coordinates_object()(next(it)->object()) << std::endl;*/
|
||||||
std::cerr << "ERROR: order is ";
|
std::cerr << "ERROR: order is ";
|
||||||
#else
|
#else
|
||||||
if (warned_.find(*it) == warned_.end() ||
|
if (warned_.find(*it) == warned_.end() ||
|
||||||
warned_[*it].find(*next(it)) == warned_[*it].end()) {
|
warned_[*it].find(*next(it)) == warned_[*it].end()) {
|
||||||
std::cerr << "WARNING: objects " << it->object() << " and "
|
std::cerr << "NUMERIC ISSUE: objects " << it->object() << " and "
|
||||||
<< next(it)->object() << " are out of order.\n";
|
<< next(it)->object() << " are out of order.\n";
|
||||||
std::cerr << aot_->at(it->object()) << " and " << aot_->at(next(it)->object()) << std::endl;
|
std::cerr << aot_->at(it->object()) << " and " << aot_->at(next(it)->object()) << std::endl;
|
||||||
std::cerr << "Time is " << ik_.time() << std::endl;
|
std::cerr << "Time is " << ik_.time() << std::endl;
|
||||||
std::cerr << "WARNING: order is ";
|
std::cerr << "NUMERIC ISSUE: order is ";
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
write(std::cerr);
|
write(std::cerr);
|
||||||
|
|
@ -288,25 +288,25 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (compare_.sign_at( aot_->at(it->object()),
|
if (compare_.sign_at( aot_->at(it->object()),
|
||||||
aot_->at(next(it)->object()),
|
aot_->at(next(it)->object()),
|
||||||
simulator_->current_time()) == CGAL::LARGER) {
|
simulator_->current_time()) == CGAL::LARGER) {
|
||||||
#ifdef CGAL_KINETIC_CHECK_EXACTNESS
|
#ifdef CGAL_KINETIC_CHECK_EXACTNESS
|
||||||
std::cerr << "ERROR: kinetic objects " << it->object() << " and "
|
std::cerr << "ERROR: kinetic objects " << it->object() << " and "
|
||||||
<< next(it)->object() << " are out of order.\n";
|
<< next(it)->object() << " are out of order.\n";
|
||||||
std::cerr << "Kinetic are " << aot_->at(it->object()) << " and " << aot_->at(*next(it)) << std::endl;
|
std::cerr << "Kinetic are " << aot_->at(it->object()) << " and " << aot_->at(*next(it)) << std::endl;
|
||||||
std::cerr << "Time is " <<ik_.time() << std::endl;
|
std::cerr << "Time is " <<ik_.time() << std::endl;
|
||||||
/*std::cerr << "Static are " << ik_.current_coordinates_object()(it->object()) << " and "
|
/*std::cerr << "Static are " << ik_.current_coordinates_object()(it->object()) << " and "
|
||||||
<< ik_.current_coordinates_object()(next(it)->object()) << std::endl;*/
|
<< ik_.current_coordinates_object()(next(it)->object()) << std::endl;*/
|
||||||
std::cerr << "ERROR: order is ";
|
std::cerr << "ERROR: order is ";
|
||||||
#else
|
#else
|
||||||
if (warned_.find(*it) == warned_.end() ||
|
if (warned_.find(*it) == warned_.end() ||
|
||||||
warned_[*it].find(*next(it)) == warned_[*it].end()) {
|
warned_[*it].find(*next(it)) == warned_[*it].end()) {
|
||||||
std::cerr << "WARNING: objects " << it->object() << " and "
|
std::cerr << "NUMERIC ISSUE: objects " << it->object() << " and "
|
||||||
<< next(it)->object() << " are out of order.\n";
|
<< next(it)->object() << " are out of order.\n";
|
||||||
std::cerr << aot_->at(it->object()) << " and " << aot_->at(next(it)->object()) << std::endl;
|
std::cerr << aot_->at(it->object()) << " and " << aot_->at(next(it)->object()) << std::endl;
|
||||||
std::cerr << "Time is " <<ik_.time() << std::endl;
|
std::cerr << "Time is " <<ik_.time() << std::endl;
|
||||||
std::cerr << "WARNING: order is ";
|
std::cerr << "NUMERIC ISSUE: order is ";
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
write(std::cerr);
|
write(std::cerr);
|
||||||
|
|
@ -336,7 +336,7 @@ public:
|
||||||
CGAL_LOG_WRITE(Log::LOTS, write(LOG_STREAM));
|
CGAL_LOG_WRITE(Log::LOTS, write(LOG_STREAM));
|
||||||
CGAL_LOG(Log::LOTS, std::endl);
|
CGAL_LOG(Log::LOTS, std::endl);
|
||||||
|
|
||||||
|
|
||||||
//typename Instantaneous_kernel::Less_x_1 less= ik_.less_x_1_object();
|
//typename Instantaneous_kernel::Less_x_1 less= ik_.less_x_1_object();
|
||||||
for (typename std::list<OD>::const_iterator it
|
for (typename std::list<OD>::const_iterator it
|
||||||
= sorted_.begin(); it->object() != sorted_.back().object(); ++it) {
|
= sorted_.begin(); it->object() != sorted_.back().object(); ++it) {
|
||||||
|
|
@ -371,7 +371,7 @@ public:
|
||||||
//iterator it = std::equal_range(sorted_.begin(), sorted_.end(),k).first;
|
//iterator it = std::equal_range(sorted_.begin(), sorted_.end(),k).first;
|
||||||
CGAL_precondition(it != sorted_.end());
|
CGAL_precondition(it != sorted_.end());
|
||||||
CGAL_precondition(it->object() == k);
|
CGAL_precondition(it->object() == k);
|
||||||
|
|
||||||
v_.pre_remove_vertex(it);
|
v_.pre_remove_vertex(it);
|
||||||
if (next(it) != Iterator(end())) {
|
if (next(it) != Iterator(end())) {
|
||||||
simulator_->delete_event(it->event());
|
simulator_->delete_event(it->event());
|
||||||
|
|
@ -453,7 +453,7 @@ public:
|
||||||
if (s_.will_fail()) out << " next is " << s_.failure_time();
|
if (s_.will_fail()) out << " next is " << s_.failure_time();
|
||||||
else out << " out of failures";
|
else out << " out of failures";
|
||||||
}
|
}
|
||||||
void audit(typename Sort::Event_key
|
void audit(typename Sort::Event_key
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
tk
|
tk
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ public:
|
||||||
/*void time_estimate(const Fn &, const Rt& , False){
|
/*void time_estimate(const Fn &, const Rt& , False){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void time_estimate(const Fn &q, const Rt& start, True){
|
void time_estimate(const Fn &q, const Rt& start, True){
|
||||||
Root_stack s= k_.root_stack_object(q, start, std::numeric_limits<Rt>::infinity());
|
Root_stack s= k_.root_stack_object(q, start, std::numeric_limits<Rt>::infinity());
|
||||||
CGAL::Timer timer;
|
CGAL::Timer timer;
|
||||||
|
|
@ -92,7 +92,7 @@ public:
|
||||||
if (reps==0 && verbose) {
|
if (reps==0 && verbose) {
|
||||||
//comp.push_back(CGAL::to_double(r));
|
//comp.push_back(CGAL::to_double(r));
|
||||||
if (last_root > s.top()) {
|
if (last_root > s.top()) {
|
||||||
std::cerr << "WARNING last root was " << last_root << " and current root is "
|
std::cerr << "NUMERIC ISSUE last root was " << last_root << " and current root is "
|
||||||
<< s.top() << std::endl;
|
<< s.top() << std::endl;
|
||||||
}
|
}
|
||||||
CGAL_assertion(last_root<= s.top());
|
CGAL_assertion(last_root<= s.top());
|
||||||
|
|
@ -103,13 +103,13 @@ public:
|
||||||
int i=0;
|
int i=0;
|
||||||
}*/
|
}*/
|
||||||
roots.push_back(s.top());
|
roots.push_back(s.top());
|
||||||
|
|
||||||
std::cout << "<" << CGAL::to_double(s.top());
|
std::cout << "<" << CGAL::to_double(s.top());
|
||||||
//if (iem(s.top())) { std::cout <<"E";}
|
//if (iem(s.top())) { std::cout <<"E";}
|
||||||
std::cout << "> " << std::flush;
|
std::cout << "> " << std::flush;
|
||||||
/*}
|
/*}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
s.pop();
|
s.pop();
|
||||||
|
|
@ -152,11 +152,11 @@ public:
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
for (unsigned int i=0; i< taken_maple.size(); ++i) {
|
for (unsigned int i=0; i< taken_maple.size(); ++i) {
|
||||||
if (!taken_maple[i])
|
if (!taken_maple[i])
|
||||||
std::cerr << "WARNING Missing " << roots_b[i] << std::endl;
|
std::cerr << "NUMERIC ISSUE Missing " << roots_b[i] << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (unsigned int i=0; i< taken_solver.size(); ++i) {
|
for (unsigned int i=0; i< taken_solver.size(); ++i) {
|
||||||
if (!taken_solver[i]) std::cerr << "WARNING Extra " << roots[i] << std::endl;
|
if (!taken_solver[i]) std::cerr << "NUMERIC ISSUE Extra " << roots[i] << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue