X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=test%2Flogicdatasnapshot.cpp;h=c05b13f9302641b1eb67136acdbed4b83d14f7a0;hp=67e7dc10fe2179469644c156236485d6b15420d1;hb=0b02e0578cf750906b20848d98e73b21c23eda42;hpb=4ceab49abb3c0160cfefdefa6a9c84284d30f850;ds=sidebyside diff --git a/test/logicdatasnapshot.cpp b/test/logicdatasnapshot.cpp index 67e7dc10..c05b13f9 100644 --- a/test/logicdatasnapshot.cpp +++ b/test/logicdatasnapshot.cpp @@ -22,6 +22,8 @@ #include "../logicdatasnapshot.h" +using namespace std; + void push_logic(LogicDataSnapshot &s, unsigned int length, uint8_t value) { sr_datafeed_logic logic; @@ -43,6 +45,8 @@ BOOST_AUTO_TEST_CASE(LogicDataSnapshotTest) LogicDataSnapshot s(logic); + //----- Test LogicDataSnapshot::push_logic -----// + BOOST_CHECK(s.get_sample_count() == 0); for(int i = 0; i < LogicDataSnapshot::ScaleStepCount; i++) { @@ -101,4 +105,26 @@ BOOST_AUTO_TEST_CASE(LogicDataSnapshotTest) BOOST_CHECK_EQUAL(m1.data_length, LogicDataSnapshot::MipMapDataUnit); BOOST_REQUIRE(m1.data != NULL); BOOST_CHECK_EQUAL(((uint8_t*)m1.data)[0], 0x11); + + //----- Test LogicDataSnapshot::get_subsampled_edges -----// + + // Test a full view at full zoom. + vector edges; + s.get_subsampled_edges(edges, 0, 255, 1, 0); + BOOST_REQUIRE_EQUAL(edges.size(), 4); + + 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); + + // Test a subset at high zoom + edges.clear(); + s.get_subsampled_edges(edges, 6, 17, 0.05f, 0); + BOOST_REQUIRE_EQUAL(edges.size(), 4); + + 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); }