from veena3modal.audio.encoder import (
    WAVEncoder,
    OpusEncoder,
    MP3Encoder,
    MuLawEncoder,
    FLACEncoder,
)


def test_wav_encoder_supports_streaming_and_header_shape():
    enc = WAVEncoder(sample_rate=16000)
    assert enc.get_content_type() == "audio/wav"
    assert enc.supports_streaming() is True
    header = enc.create_streaming_header()
    assert len(header) == 44
    assert header[:4] == b"RIFF"
    assert header[8:12] == b"WAVE"


def test_other_encoders_report_non_streaming_and_content_types():
    assert OpusEncoder().supports_streaming() is False
    assert OpusEncoder().get_content_type() == "audio/opus"

    assert MP3Encoder().supports_streaming() is False
    assert MP3Encoder().get_content_type() == "audio/mpeg"

    assert MuLawEncoder().supports_streaming() is False
    assert MuLawEncoder().get_content_type() == "audio/x-wav"

    assert FLACEncoder().supports_streaming() is False
    assert FLACEncoder().get_content_type() == "audio/flac"


