summaryrefslogtreecommitdiff
path: root/src/tests/audio/test_tracker.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-14 02:39:49 +0100
committerskal <pascal.massimino@gmail.com>2026-02-14 02:39:49 +0100
commit8dd77545b5ec2f45ce46b98dd7d94a3c4a13e290 (patch)
treea338b9c1356da64a609621155c81d8d96f7ca7fe /src/tests/audio/test_tracker.cc
parentc007d7fa6ddb1936108aeca156b2a4bda425ca84 (diff)
Factor common test patterns into reusable utilitiesHEADmain
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.cc25
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() {