MCPcopy Create free account
hub / github.com/aethersdr/AetherSDR / testInterElementGapIsOneUnit

Function testInterElementGapIsOneUnit

tests/iambic_keyer_test.cpp:165–189  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

163}
164
165void testInterElementGapIsOneUnit()
166{
167 Recorder rec;
168 IambicKeyer k;
169 k.setOnKeyDownChange([&](bool d) { rec.onKeyDownChange(d); });
170 k.setOnPaddleEvent([&](bool d, bool h) { rec.onPaddleEvent(d, h); });
171 k.setWpm(kTestWpm);
172 k.setMode(IambicKeyer::Mode::IambicB);
173 k.start();
174
175 k.setPaddleState(true, true);
176 std::this_thread::sleep_for(500ms);
177 k.setPaddleState(false, false);
178 std::this_thread::sleep_for(200ms);
179 k.stop();
180
181 const auto evs = rec.events();
182 bool ok = (evs.size() >= 4);
183 if (ok) {
184 // Gap = (on→off→on) where the off→on transition is the gap.
185 // Index 1 is first key-up, index 2 is next key-down.
186 ok &= nearMs(evs[2].at - evs[1].at, kTestUnitMs);
187 }
188 report("inter-element gap is 1 unit (~60ms at 20 WPM)", ok);
189}
190
191void testReleaseStopsAfterCurrentElement()
192{

Callers 1

mainFunction · 0.85

Calls 13

nearMsFunction · 0.85
onKeyDownChangeMethod · 0.80
setOnPaddleEventMethod · 0.80
onPaddleEventMethod · 0.80
setWpmMethod · 0.80
setPaddleStateMethod · 0.80
eventsMethod · 0.80
reportFunction · 0.70
setOnKeyDownChangeMethod · 0.45
setModeMethod · 0.45
startMethod · 0.45
stopMethod · 0.45

Tested by

no test coverage detected