X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=test%2Fdata%2Flogicsnapshot.cpp;h=5fc17213ba1ca06e2a2d5d0b84686ee0b60957a3;hp=3e3ff2f959da2577b2e21d3083c44146bbeddc34;hb=6d8b05622f1e422c7193656c9eac3ebae5b6b934;hpb=37fdce0ac5e92fe0dfdee42f80e4dfe2eab332f0 diff --git a/test/data/logicsnapshot.cpp b/test/data/logicsnapshot.cpp index 3e3ff2f9..5fc17213 100644 --- a/test/data/logicsnapshot.cpp +++ b/test/data/logicsnapshot.cpp @@ -20,16 +20,14 @@ #include -#define __STDC_LIMIT_MACROS #include #include #include "../../pv/data/logicsnapshot.h" -using namespace std; - using pv::data::LogicSnapshot; +using std::vector; BOOST_AUTO_TEST_SUITE(LogicSnapshotTest) @@ -142,7 +140,7 @@ BOOST_AUTO_TEST_CASE(Basic) BOOST_CHECK_EQUAL(edges[0].first, 0); BOOST_CHECK_EQUAL(edges[1].first, 8); BOOST_CHECK_EQUAL(edges[2].first, 16); - BOOST_CHECK_EQUAL(edges[3].first, 255); + BOOST_CHECK_EQUAL(edges[3].first, 256); // Test a subset at high zoom edges.clear(); @@ -152,7 +150,7 @@ BOOST_AUTO_TEST_CASE(Basic) BOOST_CHECK_EQUAL(edges[0].first, 6); BOOST_CHECK_EQUAL(edges[1].first, 8); BOOST_CHECK_EQUAL(edges[2].first, 16); - BOOST_CHECK_EQUAL(edges[3].first, 17); + BOOST_CHECK_EQUAL(edges[3].first, 18); } BOOST_AUTO_TEST_CASE(LargeData) @@ -265,7 +263,7 @@ BOOST_AUTO_TEST_CASE(LargeData) BOOST_CHECK_EQUAL(edges[i].second, i & 1); } - BOOST_CHECK_EQUAL(edges[31].first, 999999); + BOOST_CHECK_EQUAL(edges[31].first, 1000000); // Check in very low zoom case edges.clear(); @@ -403,7 +401,7 @@ BOOST_AUTO_TEST_CASE(LongPulses) BOOST_CHECK_EQUAL(edges[i*2+1].second, false); } - BOOST_CHECK_EQUAL(edges.back().first, Length-1); + BOOST_CHECK_EQUAL(edges.back().first, Length); BOOST_CHECK_EQUAL(edges.back().second, false); //----- Test get_subsampled_edges at a simplified scale -----// @@ -420,7 +418,7 @@ BOOST_AUTO_TEST_CASE(LongPulses) BOOST_CHECK_EQUAL(edges[i+1].second, false); } - BOOST_CHECK_EQUAL(edges.back().first, Length-1); + BOOST_CHECK_EQUAL(edges.back().first, Length); BOOST_CHECK_EQUAL(edges.back().second, false); } @@ -490,7 +488,7 @@ BOOST_AUTO_TEST_CASE(WideData) logic.length = Length * sizeof(data[0]); logic.data = data; - for(int i = 0; i < Length; i++) + for (int i = 0; i < Length; i++) data[i] = 0x0FF0; LogicSnapshot s(logic); @@ -509,4 +507,28 @@ BOOST_AUTO_TEST_CASE(WideData) delete [] data; } +/* + * This test is a replica of sixteen.sr attached to Bug #33. + */ +BOOST_AUTO_TEST_CASE(Sixteen) +{ + const int Length = 8; + uint16_t data[Length]; + + sr_datafeed_logic logic; + logic.unitsize = sizeof(data[0]); + logic.length = Length * sizeof(data[0]); + logic.data = data; + + for (int i = 0; i < Length; i++) + data[i] = 0xFFFE; + + LogicSnapshot s(logic); + + vector edges; + s.get_subsampled_edges(edges, 0, 2, 0.0004, 1); + + BOOST_CHECK_EQUAL(edges.size(), 2); +} + BOOST_AUTO_TEST_SUITE_END()