File size: 1,194 Bytes
a88d0ef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
27
28
29
30
31
32
33
34
import numpy as np
import torch
from unittest.mock import MagicMock

def make_mock_encoder():
    from app.services.mert_encoder import MERTEncoder

    mock_processor = MagicMock()
    mock_processor.return_value = {"input_values": torch.zeros(1, 22050 * 10)}
    mock_processor.sampling_rate = 24000

    fake_hidden = torch.randn(1, 200, 768)
    mock_output = MagicMock()
    mock_output.last_hidden_state = fake_hidden
    mock_model = MagicMock()
    mock_model.return_value = mock_output
    mock_model.eval = MagicMock(return_value=mock_model)

    return MERTEncoder(model=mock_model, processor=mock_processor)

def test_encode_shape():
    enc = make_mock_encoder()
    assert enc.encode(np.random.randn(22050 * 10).astype(np.float32), sr=22050).shape == (768,)

def test_encode_is_finite():
    enc = make_mock_encoder()
    assert np.isfinite(enc.encode(np.random.randn(22050 * 10).astype(np.float32), sr=22050)).all()

def test_encode_batch_shape():
    enc = make_mock_encoder()
    sr = 22050
    chunks = [{"y": np.random.randn(sr * 10).astype(np.float32), "start": i * 5.0, "end": i * 5.0 + 10.0} for i in range(3)]
    assert enc.encode_batch(chunks, sr=sr).shape == (3, 768)