+BOOST_AUTO_TEST_CASE(Pow2)
+{
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(-2, 0), -2);
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(-1, 0), -1);
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(0, 0), 0);
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(1, 0), 1);
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(2, 0), 2);
+
+ BOOST_CHECK_EQUAL(
+ LogicDataSnapshot::pow2_ceil(INT64_MIN, 0), INT64_MIN);
+ BOOST_CHECK_EQUAL(
+ LogicDataSnapshot::pow2_ceil(INT64_MAX, 0), INT64_MAX);
+
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(-3, 1), -2);
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(-2, 1), -2);
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(-1, 1), 0);
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(0, 1), 0);
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(1, 1), 2);
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(2, 1), 2);
+ BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(3, 1), 4);
+}
+