MCPcopy Create free account
hub / github.com/FastLED/FastLED / FL_TEST_FILE

Function FL_TEST_FILE

tests/fl/audio/audio_processor.cpp:11–644  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9#include "fl/math/math.h"
10
11FL_TEST_FILE(FL_FILEPATH) {
12
13using namespace fl;
14using fl::audio::test::makeSample;
15
16namespace {
17
18} // anonymous namespace
19
20FL_TEST_CASE("audio::Processor - update with valid sample doesn't crash") {
21 audio::Processor processor;
22 audio::Sample sample = makeSample(440.0f, 1000);
23 processor.update(sample);
24 // After update, the processor should have a valid context
25 FL_CHECK(processor.getContext() != nullptr);
26}
27
28FL_TEST_CASE("audio::Processor - setSampleRate / getSampleRate round-trip") {
29 audio::Processor processor;
30 FL_CHECK_EQ(processor.getSampleRate(), 44100);
31 processor.setSampleRate(22050);
32 FL_CHECK_EQ(processor.getSampleRate(), 22050);
33}
34
35FL_TEST_CASE("audio::Processor - onEnergy callback fires") {
36 audio::Processor processor;
37 float lastRMS = -1.0f;
38 processor.onEnergy([&lastRMS](float rms) { lastRMS = rms; });
39
40 audio::Sample sample = makeSample(440.0f, 1000, 10000.0f);
41 processor.update(sample);
42
43 FL_CHECK_GT(lastRMS, 0.0f);
44}
45
46FL_TEST_CASE("audio::Processor - onBass/onMid/onTreble callbacks fire") {
47 audio::Processor processor;
48 float lastBass = -1.0f;
49 float lastMid = -1.0f;
50 float lastTreble = -1.0f;
51 processor.onBass([&lastBass](float level) { lastBass = level; });
52 processor.onMid([&lastMid](float level) { lastMid = level; });
53 processor.onTreble([&lastTreble](float level) { lastTreble = level; });
54
55 // Feed a multi-frequency signal
56 fl::vector<fl::i16> data;
57 data.reserve(512);
58 for (int i = 0; i < 512; ++i) {
59 float t = static_cast<float>(i) / 44100.0f;
60 float bass = 5000.0f * fl::sinf(2.0f * FL_M_PI * 200.0f * t);
61 float mid = 5000.0f * fl::sinf(2.0f * FL_M_PI * 1000.0f * t);
62 float treble = 5000.0f * fl::sinf(2.0f * FL_M_PI * 4000.0f * t);
63 fl::i32 combined = static_cast<fl::i32>(bass + mid + treble);
64 if (combined > 32767) combined = 32767;
65 if (combined < -32768) combined = -32768;
66 data.push_back(static_cast<fl::i16>(combined));
67 }
68 audio::Sample sample(data, 1000);

Callers

nothing calls this directly

Calls 15

sinfFunction · 0.85
getContextMethod · 0.80
onEnergyMethod · 0.80
onBassMethod · 0.80
onMidMethod · 0.80
onTrebleMethod · 0.80
onBeatMethod · 0.80
getTrebleRawMethod · 0.80
makeSampleFunction · 0.70
makeSilenceFunction · 0.70
updateMethod · 0.45

Tested by

no test coverage detected