]> sigrok.org Git - pulseview.git/blobdiff - test/logicdatasnapshot.cpp
Corrected signed/unsigned inconsistencies in LogicDataSnapshot
[pulseview.git] / test / logicdatasnapshot.cpp
index 32bbe81aefbee117cfcfd0fc89d12d595aa05aad..8891ba9f22a09fda10386951453ecf0cf37abc46 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * This file is part of the sigrok project.
+ * This file is part of the PulseView project.
  *
  * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
  *
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
+#include <extdef.h>
+
 #define __STDC_LIMIT_MACROS
 #include <stdint.h>
 
 #include <boost/test/unit_test.hpp>
 
-#include "../extdef.h"
-#include "../logicdatasnapshot.h"
+#include "../pv/logicdatasnapshot.h"
 
 using namespace std;
 
+using pv::LogicDataSnapshot;
+
 BOOST_AUTO_TEST_SUITE(LogicDataSnapshotTest)
 
 void push_logic(LogicDataSnapshot &s, unsigned int length, uint8_t value)
@@ -43,8 +46,6 @@ void push_logic(LogicDataSnapshot &s, unsigned int length, uint8_t value)
 
 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);
@@ -54,9 +55,6 @@ BOOST_AUTO_TEST_CASE(Pow2)
        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);
@@ -255,8 +253,8 @@ BOOST_AUTO_TEST_CASE(LargeData)
        }
 
        //----- Test LogicDataSnapshot::get_subsampled_edges -----//
+       // Check in normal case
        vector<LogicDataSnapshot::EdgePair> edges;
-
        s.get_subsampled_edges(edges, 0, Length-1, 1, 7);
 
        BOOST_CHECK_EQUAL(edges.size(), 32);
@@ -268,6 +266,12 @@ BOOST_AUTO_TEST_CASE(LargeData)
        }
 
        BOOST_CHECK_EQUAL(edges[31].first, 999999);
+
+       // Check in very low zoom case
+       edges.clear();
+       s.get_subsampled_edges(edges, 0, Length-1, 50e6f, 7);
+
+       BOOST_CHECK_EQUAL(edges.size(), 2);
 }
 
 BOOST_AUTO_TEST_CASE(Pulses)