Spaces:
Sleeping
Sleeping
File size: 949 Bytes
0845ad7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import numpy as np
from app.services.key_detector import detect_key, MAJOR_PROFILE, MINOR_PROFILE
def test_c_major_profile_detects_c_major():
root, mode, conf = detect_key(np.array(MAJOR_PROFILE))
assert root == "C" and mode == "major" and conf > 0.8
def test_a_minor_profile_detects_a_minor():
# Roll minor profile so A (index 9) aligns as root
root, mode, conf = detect_key(np.roll(MINOR_PROFILE, 9))
assert root == "A" and mode == "minor" and conf > 0.8
def test_g_major_detects_correctly():
root, mode, _ = detect_key(np.roll(MAJOR_PROFILE, 7))
assert root == "G" and mode == "major"
def test_confidence_range():
_, _, conf = detect_key(np.random.rand(12))
assert 0.0 <= conf <= 1.0
def test_returns_valid_note_and_mode():
valid = {"C","C#","D","D#","E","F","F#","G","G#","A","A#","B"}
root, mode, _ = detect_key(np.random.rand(12))
assert root in valid
assert mode in {"major", "minor"}
|