Tests
corpus = ['le chat dort sur le tapis rouge', 'python est un langage de programmation', 'le chien mange du poisson frais', 'django framework web rapide']
# Recherche basique
result = bm25_search(corpus, 'chat dort tapis', k=2)
assert isinstance(result, list), 'Doit renvoyer une liste'
assert len(result) == 2, 'Doit renvoyer k résultats'
assert result[0] == 0, f'Le doc sur le chat doit etre premier, got {result}'
# Les indices sont des int
assert all(isinstance(i, int) for i in result), 'Les indices doivent etre des int'
# Recherche avec mot spécifique
result2 = bm25_search(corpus, 'python programmation', k=1)
assert result2 == [1], f'python programmation doit matcher le doc index 1, got {result2}'
# k=4 renvoie tout
result3 = bm25_search(corpus, 'chat', k=4)
assert len(result3) == 4, 'k=4 doit renvoyer 4 résultats'