]> sigrok.org Git - pulseview.git/blobdiff - test/logicdatasnapshot.cpp
Added tests, and corrected behaviour of LogicDataSnapshot::pow2_ceil
[pulseview.git] / test / logicdatasnapshot.cpp
index 6e1f26364d778feb7e16a0e1a8edb306c1d6410a..66232cd6975be057bb6f9fa3d1cf7b4e027da037 100644 (file)
@@ -18,6 +18,9 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
+#define __STDC_LIMIT_MACROS
+#include <stdint.h>
+
 #include <boost/test/unit_test.hpp>
 
 #include "../logicdatasnapshot.h"
@@ -37,6 +40,28 @@ void push_logic(LogicDataSnapshot &s, unsigned int length, uint8_t value)
        delete[] (uint8_t*)logic.data;
 }
 
+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);
+}
+
 BOOST_AUTO_TEST_CASE(Basic)
 {
        // Create an empty LogicDataSnapshot object