cgal/Polynomial/test/Polynomial/Exponent_vector.cpp

109 lines
2.2 KiB
C++

#include <iostream>
#include <cassert>
#include <CGAL/Exponent_vector.h>
#include <boost/concept_check.hpp>
int main() {
typedef CGAL::Exponent_vector T;
boost::function_requires< boost::DefaultConstructibleConcept<T> >();
boost::function_requires< boost::AssignableConcept<T> >();
boost::function_requires< boost::EqualityComparableConcept<T> >();
boost::function_requires< boost::ComparableConcept<T> >();
boost::function_requires< boost::RandomAccessContainerConcept<T> >();
CGAL::Exponent_vector ev1,ev2;
assert(ev1.size()==0);
assert(ev2.size()==0);
assert( (ev1==ev2));
assert(!(ev1!=ev2));
assert(!(ev1<ev2));
assert(!(ev1>ev2));
ev1.push_back(1);
ev1.push_back(0);
ev1.push_back(0);
ev2.push_back(0);
ev2.push_back(1);
ev2.push_back(0);
assert(!(ev2 == ev1)) ;
assert( (ev2 != ev1)) ;
assert(!(ev2 < ev1)) ;
assert( (ev2 > ev1)) ;
assert(CGAL::is_valid(ev1));
std::vector<int> vec;
vec.push_back(0); vec.push_back(1); vec.push_back(5);
ev1 = CGAL::Exponent_vector(vec.begin(),vec.end());
assert(ev1[0] == 0);
assert(ev1[1] == 1);
assert(ev1[2] == 5);
// new constructors
// univariate
{
CGAL::Exponent_vector ev(-1);
assert(!CGAL::is_valid(ev));
}
{
CGAL::Exponent_vector ev(0);
assert(CGAL::is_valid(ev));
assert(ev[0] == 0);
}
{
CGAL::Exponent_vector ev(1);
assert(CGAL::is_valid(ev));
assert(ev[0] == 1);
}
// bivariate
{
CGAL::Exponent_vector ev(0,-1);
assert(!CGAL::is_valid(ev));
}
{
CGAL::Exponent_vector ev(2,1);
assert(CGAL::is_valid(ev));
assert(ev[0] == 2);
assert(ev[1] == 1);
}
// trivariate
{
CGAL::Exponent_vector ev(0,0,-1);
assert(!CGAL::is_valid(ev));
}
{
CGAL::Exponent_vector ev(3,2,1);
assert(CGAL::is_valid(ev));
assert(ev[0] == 3);
assert(ev[1] == 2);
assert(ev[2] == 1);
}
// four-variate
{
CGAL::Exponent_vector ev(0,0,0,-1);
assert(!CGAL::is_valid(ev));
}
{
CGAL::Exponent_vector ev(4,3,2,1);
assert(CGAL::is_valid(ev));
assert(ev[0] == 4);
assert(ev[1] == 3);
assert(ev[2] == 2);
assert(ev[3] == 1);
}
using std::swap; swap(ev1,ev2);
return 0;
}