from pathlib import Path
from app.api.v1.audio import _fade, _normalize, _resample, _trim

def test_trim_silence():
    samples = [0.0] * 100 + [0.5] * 200 + [0.0] * 100
    trimmed = _trim(samples, 1000, -40)
    assert len(trimmed) == 200

def test_normalize_peak():
    samples = [0.25, -0.5, 0.25]
    normalized = _normalize(samples, -1)
    assert round(max(abs(x) for x in normalized), 3) == 0.891

def test_resample_changes_length():
    samples = [0.1] * 1000
    result = _resample(samples, 1000, 2000)
    assert len(result) == 2000

def test_fade_changes_edges():
    samples = [1.0] * 1000
    result = _fade(samples, 1000, 100, 100)
    assert result[0] == 0.0
    assert result[-1] < 1.0
