#include "boost/limits.hpp"
#include "boost/config.hpp"
-
template <typename Block>
void run_test_cases( BOOST_EXPLICIT_TEMPLATE_TYPE(Block) )
{
boost::dynamic_bitset<Block> a(std::string("10")), b(std::string("11"));
Tests::operator_less_than(a, b);
}
+ {
+ boost::dynamic_bitset<Block> a(std::string("101")), b(std::string("11"));
+ Tests::operator_less_than(a, b);
+ }
+ {
+ boost::dynamic_bitset<Block> a(std::string("10")), b(std::string("111"));
+ Tests::operator_less_than(a, b);
+ }
{
boost::dynamic_bitset<Block> a(long_string), b(long_string);
Tests::operator_less_than(a, b);
b[long_string.size()/2].flip();
Tests::operator_less_than(a, b);
}
- // check for consistency with ulong behaviour
+ // check for consistency with ulong behaviour when the sizes are equal
{
boost::dynamic_bitset<Block> a(3, 4ul), b(3, 5ul);
assert(a < b);
boost::dynamic_bitset<Block> a(3, 5ul), b(3, 4ul);
assert(!(a < b));
}
+ // when the sizes are not equal lexicographic compare does not necessarily correspond to ulong behavior
+ {
+ boost::dynamic_bitset<Block> a(4, 4ul), b(3, 5ul);
+ assert(a < b);
+ }
+ {
+ boost::dynamic_bitset<Block> a(3, 4ul), b(4, 5ul);
+ assert(!(a < b));
+ }
+ {
+ boost::dynamic_bitset<Block> a(4, 4ul), b(3, 4ul);
+ assert(a < b);
+ }
+ {
+ boost::dynamic_bitset<Block> a(3, 4ul), b(4, 4ul);
+ assert(!(a < b));
+ }
+ {
+ boost::dynamic_bitset<Block> a(4, 5ul), b(3, 4ul);
+ assert(a < b);
+ }
+ {
+ boost::dynamic_bitset<Block> a(3, 5ul), b(4, 4ul);
+ assert(!(a < b));
+ }
//=====================================================================
// Test operator<=
{
}
}
+
int
test_main(int, char*[])
{