diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-14 02:39:49 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-14 02:39:49 +0100 |
| commit | 8dd77545b5ec2f45ce46b98dd7d94a3c4a13e290 (patch) | |
| tree | a338b9c1356da64a609621155c81d8d96f7ca7fe /src/tests/audio/test_tracker.cc | |
| parent | c007d7fa6ddb1936108aeca156b2a4bda425ca84 (diff) | |
Refactor duplicated test setup/teardown code into shared fixtures:
- test_math_helpers.h: Float comparison (test_near, test_near_vec3)
- AudioTestFixture: RAII wrapper for AudioEngine lifecycle
- EffectTestFixture: Combined WebGPU + AudioEngine + MainSequence
Migrated 9 test files (3 math, 6 audio) to use fixtures.
Net reduction: 54 LOC (178 insertions, 232 deletions).
All 34 tests passing.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/tests/audio/test_tracker.cc')
| -rw-r--r-- | src/tests/audio/test_tracker.cc | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/tests/audio/test_tracker.cc b/src/tests/audio/test_tracker.cc index 6be2a8d..1112e91 100644 --- a/src/tests/audio/test_tracker.cc +++ b/src/tests/audio/test_tracker.cc @@ -5,6 +5,7 @@ #include "audio/gen.h" #include "audio/synth.h" #include "audio/tracker.h" +#include "../common/audio_test_fixture.h" // #include "generated/music_data.h" // Will be generated by tracker_compiler #include <assert.h> #include <stdio.h> @@ -17,15 +18,12 @@ extern const uint32_t g_tracker_patterns_count; extern const TrackerScore g_tracker_score; void test_tracker_init() { - AudioEngine engine; - engine.init(); + AudioTestFixture fixture; printf("Tracker init test PASSED\n"); - engine.shutdown(); } void test_tracker_pattern_triggering() { - AudioEngine engine; - engine.init(); + AudioTestFixture fixture; // At time 0.0f, 3 patterns are triggered: // - crash (1 event at beat 0.0) @@ -37,31 +35,30 @@ void test_tracker_pattern_triggering() { // drums_basic: // 0.00, ASSET_KICK_1 // 0.00, NOTE_A4 - engine.update(0.0f, 0.0f); + fixture.engine().update(0.0f, 0.0f); // Expect 2 voices: kick + note - assert(engine.get_active_voice_count() == 2); + assert(fixture.engine().get_active_voice_count() == 2); // Test 2: At music_time = 0.25f (beat 0.5 @ 120 BPM), snare event triggers // 0.25, ASSET_SNARE_1 - engine.update(0.25f, 0.0f); + fixture.engine().update(0.25f, 0.0f); // Expect at least 2 voices (snare + maybe others) // Exact count depends on sample duration (kick/note might have finished) - int voices = engine.get_active_voice_count(); + int voices = fixture.engine().get_active_voice_count(); assert(voices >= 2); // Test 3: At music_time = 0.5f (beat 1.0), kick event triggers // 0.50, ASSET_KICK_1 - engine.update(0.5f, 0.0f); + fixture.engine().update(0.5f, 0.0f); // Expect at least 3 voices (new kick + others) - assert(engine.get_active_voice_count() >= 3); + assert(fixture.engine().get_active_voice_count() >= 3); // Test 4: Advance to 2.0f - new patterns trigger at time 2.0f - engine.update(2.0f, 0.0f); + fixture.engine().update(2.0f, 0.0f); // Many events have triggered by now - assert(engine.get_active_voice_count() > 5); + assert(fixture.engine().get_active_voice_count() > 5); printf("Tracker pattern triggering test PASSED\n"); - engine.shutdown(); } int main() { |
