]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/dynamic_bitset/test/dyn_bitset_unit_tests3.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / dynamic_bitset / test / dyn_bitset_unit_tests3.cpp
index cde272ab461b2b8db1d3856c9ec8323213b9f398..ad329484f3edfc5072c16c74e365133a1a3ee8cf 100644 (file)
@@ -16,7 +16,6 @@
 #include "boost/limits.hpp"
 #include "boost/config.hpp"
 
-
 template <typename Block>
 void run_test_cases( BOOST_EXPLICIT_TEMPLATE_TYPE(Block) )
 {
@@ -477,6 +476,14 @@ 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);
@@ -491,7 +498,7 @@ void run_test_cases( BOOST_EXPLICIT_TEMPLATE_TYPE(Block) )
     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);
@@ -504,6 +511,31 @@ void run_test_cases( BOOST_EXPLICIT_TEMPLATE_TYPE(Block) )
     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<=
   {
@@ -766,6 +798,7 @@ void run_test_cases( BOOST_EXPLICIT_TEMPLATE_TYPE(Block) )
   }
 }
 
+
 int
 test_main(int, char*[])
 {