SignalMod / tests /test_model.py
Mirae Kang
feat: implement unit tests, #13
447c4a0
"""Tests de salida binaria de modelos sklearn."""
import numpy as np
import pytest
from src.models.baseline import build_model
X_TRAIN = [
"the quick brown fox is nice",
"the lazy dog sleeps well",
"the fox and dog are friends",
"another calm peaceful day today",
"you are stupid and worthless idiot",
"kill them all right now attack",
]
Y_TRAIN = [0, 0, 0, 0, 1, 1]
X_PRED = ["the fox is calm", "you idiot fool"]
@pytest.fixture(scope="module")
def trained_lr(models_config: str, features_config: str, best_params_config: str):
model = build_model(
"lr",
config_path=models_config,
feat_config_path=features_config,
best_params_path=best_params_config,
)
model.fit(X_TRAIN, Y_TRAIN)
return model
def test_predict_binary_labels(trained_lr):
preds = trained_lr.predict(X_PRED)
assert preds.shape == (len(X_PRED),)
assert set(np.unique(preds)).issubset({0, 1})
def test_predict_proba_valid_binary_distribution(trained_lr):
proba = trained_lr.predict_proba(X_PRED)
assert proba.shape == (len(X_PRED), 2)
assert np.all(proba >= 0.0)
assert np.all(proba <= 1.0)
np.testing.assert_allclose(proba.sum(axis=1), 1.0, rtol=1e-5)