20 #include <boost/version.hpp> 21 #if BOOST_VERSION >= 107100 // 1.71 deprecated the old header location. 22 #include <boost/test/tools/floating_point_comparison.hpp> 24 #include <boost/test/floating_point_comparison.hpp> 26 #include <boost/test/unit_test.hpp> 39 const double e = 0.0001;
48 const double scale(0.001);
50 const unsigned int minor_tick_count(4);
53 major_period, offset, scale, width, minor_tick_count,
format);
55 BOOST_REQUIRE_EQUAL(ts.
major.size(), 6);
57 BOOST_CHECK_CLOSE(ts.
major[0].first, 0,
e);
58 BOOST_CHECK_CLOSE(ts.
major[1].first, 100,
e);
59 BOOST_CHECK_CLOSE(ts.
major[2].first, 200,
e);
60 BOOST_CHECK_CLOSE(ts.
major[3].first, 300,
e);
61 BOOST_CHECK_CLOSE(ts.
major[4].first, 400,
e);
62 BOOST_CHECK_CLOSE(ts.
major[5].first, 500,
e);
64 BOOST_CHECK_EQUAL(ts.
major[0].second,
"0.000000 s");
65 BOOST_CHECK_EQUAL(ts.
major[1].second,
"+0.100000 s");
66 BOOST_CHECK_EQUAL(ts.
major[2].second,
"+0.200000 s");
67 BOOST_CHECK_EQUAL(ts.
major[3].second,
"+0.300000 s");
68 BOOST_CHECK_EQUAL(ts.
major[4].second,
"+0.400000 s");
69 BOOST_CHECK_EQUAL(ts.
major[5].second,
"+0.500000 s");
71 BOOST_REQUIRE_EQUAL(ts.
minor.size(), 16);
73 BOOST_CHECK_CLOSE(ts.
minor[ 0], -25,
e);
74 BOOST_CHECK_CLOSE(ts.
minor[ 1], 25,
e);
75 BOOST_CHECK_CLOSE(ts.
minor[ 2], 50,
e);
76 BOOST_CHECK_CLOSE(ts.
minor[ 3], 75,
e);
77 BOOST_CHECK_CLOSE(ts.
minor[ 4], 125,
e);
78 BOOST_CHECK_CLOSE(ts.
minor[ 5], 150,
e);
79 BOOST_CHECK_CLOSE(ts.
minor[ 6], 175,
e);
80 BOOST_CHECK_CLOSE(ts.
minor[ 7], 225,
e);
81 BOOST_CHECK_CLOSE(ts.
minor[ 8], 250,
e);
82 BOOST_CHECK_CLOSE(ts.
minor[ 9], 275,
e);
83 BOOST_CHECK_CLOSE(ts.
minor[10], 325,
e);
84 BOOST_CHECK_CLOSE(ts.
minor[11], 350,
e);
85 BOOST_CHECK_CLOSE(ts.
minor[12], 375,
e);
86 BOOST_CHECK_CLOSE(ts.
minor[13], 425,
e);
87 BOOST_CHECK_CLOSE(ts.
minor[14], 450,
e);
88 BOOST_CHECK_CLOSE(ts.
minor[15], 475,
e);
95 const double scale(0.001);
97 const unsigned int minor_tick_count(4);
100 major_period, offset, scale, width, minor_tick_count,
format);
102 BOOST_REQUIRE_EQUAL(ts.
major.size(), 5);
104 BOOST_CHECK_CLOSE(ts.
major[0].first, 63,
e);
105 BOOST_CHECK_CLOSE(ts.
major[1].first, 163,
e);
106 BOOST_CHECK_CLOSE(ts.
major[2].first, 263,
e);
107 BOOST_CHECK_CLOSE(ts.
major[3].first, 363,
e);
108 BOOST_CHECK_CLOSE(ts.
major[4].first, 463,
e);
110 BOOST_CHECK_EQUAL(ts.
major[0].second,
"-0.400000 s");
111 BOOST_CHECK_EQUAL(ts.
major[1].second,
"-0.300000 s");
112 BOOST_CHECK_EQUAL(ts.
major[2].second,
"-0.200000 s");
113 BOOST_CHECK_EQUAL(ts.
major[3].second,
"-0.100000 s");
114 BOOST_CHECK_EQUAL(ts.
major[4].second,
"0.000000 s");
116 BOOST_REQUIRE_EQUAL(ts.
minor.size(), 17);
117 BOOST_CHECK_CLOSE(ts.
minor[ 0], -12,
e);
118 BOOST_CHECK_CLOSE(ts.
minor[ 1], 13,
e);
119 BOOST_CHECK_CLOSE(ts.
minor[ 2], 38,
e);
120 BOOST_CHECK_CLOSE(ts.
minor[ 3], 88,
e);
121 BOOST_CHECK_CLOSE(ts.
minor[ 4], 113,
e);
122 BOOST_CHECK_CLOSE(ts.
minor[ 5], 138,
e);
123 BOOST_CHECK_CLOSE(ts.
minor[ 6], 188,
e);
124 BOOST_CHECK_CLOSE(ts.
minor[ 7], 213,
e);
125 BOOST_CHECK_CLOSE(ts.
minor[ 8], 238,
e);
126 BOOST_CHECK_CLOSE(ts.
minor[ 9], 288,
e);
127 BOOST_CHECK_CLOSE(ts.
minor[10], 313,
e);
128 BOOST_CHECK_CLOSE(ts.
minor[11], 338,
e);
129 BOOST_CHECK_CLOSE(ts.
minor[12], 388,
e);
130 BOOST_CHECK_CLOSE(ts.
minor[13], 413,
e);
131 BOOST_CHECK_CLOSE(ts.
minor[14], 438,
e);
132 BOOST_CHECK_CLOSE(ts.
minor[15], 488,
e);
133 BOOST_CHECK_CLOSE(ts.
minor[16], 513,
e);
140 const double scale(0.129746);
141 const int width(580);
142 const unsigned int minor_tick_count(4);
145 major_period, offset, scale, width, minor_tick_count,
format);
150 BOOST_REQUIRE_EQUAL(ts.
major.size(), 4);
152 BOOST_CHECK_CLOSE(ts.
major[0].first, ( 4 * mp - off) / scale,
e);
153 BOOST_CHECK_CLOSE(ts.
major[1].first, ( 8 * mp - off) / scale,
e);
154 BOOST_CHECK_CLOSE(ts.
major[2].first, (12 * mp - off) / scale,
e);
155 BOOST_CHECK_CLOSE(ts.
major[3].first, (16 * mp - off) / scale,
e);
157 BOOST_CHECK_EQUAL(ts.
major[0].second,
"+20.000000 s");
158 BOOST_CHECK_EQUAL(ts.
major[1].second,
"+40.000000 s");
159 BOOST_CHECK_EQUAL(ts.
major[2].second,
"+60.000000 s");
160 BOOST_CHECK_EQUAL(ts.
major[3].second,
"+80.000000 s");
162 BOOST_REQUIRE_EQUAL(ts.
minor.size(), 13);
164 BOOST_CHECK_CLOSE(ts.
minor[ 0], ( 1 * mp - off) / scale,
e);
165 BOOST_CHECK_CLOSE(ts.
minor[ 1], ( 2 * mp - off) / scale,
e);
166 BOOST_CHECK_CLOSE(ts.
minor[ 2], ( 3 * mp - off) / scale,
e);
167 BOOST_CHECK_CLOSE(ts.
minor[ 3], ( 5 * mp - off) / scale,
e);
168 BOOST_CHECK_CLOSE(ts.
minor[ 4], ( 6 * mp - off) / scale,
e);
169 BOOST_CHECK_CLOSE(ts.
minor[ 5], ( 7 * mp - off) / scale,
e);
170 BOOST_CHECK_CLOSE(ts.
minor[ 6], ( 9 * mp - off) / scale,
e);
171 BOOST_CHECK_CLOSE(ts.
minor[ 7], (10 * mp - off) / scale,
e);
172 BOOST_CHECK_CLOSE(ts.
minor[ 8], (11 * mp - off) / scale,
e);
173 BOOST_CHECK_CLOSE(ts.
minor[ 9], (13 * mp - off) / scale,
e);
174 BOOST_CHECK_CLOSE(ts.
minor[10], (14 * mp - off) / scale,
e);
175 BOOST_CHECK_CLOSE(ts.
minor[11], (15 * mp - off) / scale,
e);
176 BOOST_CHECK_CLOSE(ts.
minor[12], (17 * mp - off) / scale,
e);
179 BOOST_AUTO_TEST_SUITE_END()
libsigrok allows users to import and export data from files in various formats some of them as generic as others very specific For a list and make sure to check not so common and outright exotic ways to represent data and sigrok tries to suit as many needs as it can To see which formats your version of PulseView just click on the small arrow next to the _Open_ PulseView will ask for the file name to open Once you picked the you may be asked to specify the details of the format
x y t t *t x y t t t x y t t t x *y t *t t x *y t *t t x y t t t x y t t t t(t+t)") define_sfop3(16
QString format_time_si(const Timestamp &v, SIPrefix prefix, unsigned int precision, QString unit, bool sign)
static TickPositions calculate_tick_positions(const pv::util::Timestamp &major_period, const pv::util::Timestamp &offset, const double scale, const int width, const unsigned int minor_tick_count, function< QString(const pv::util::Timestamp &)> format_function)
BOOST_AUTO_TEST_CASE(tick_position_test_0)
vector< pair< double, QString > > major
boost::multiprecision::number< boost::multiprecision::cpp_dec_float< 24 >, boost::multiprecision::et_off > Timestamp
Timestamp type providing yoctosecond resolution.