Tests
import numpy as np
vectors = np.random.random((20, 64)).astype('float32')
index = build_faiss_index(vectors)
assert index.ntotal == 20, f'L index doit contenir 20 vecteurs, en a {index.ntotal}'
query = np.random.random((1, 64)).astype('float32')
distances, indices = faiss_search(index, query, 3)
assert indices.shape == (1, 3), f'Attendu shape (1,3), obtenu {indices.shape}'
assert distances.shape == (1, 3), f'Distances shape incorrecte: {distances.shape}'
assert all(0 <= i < 20 for i in indices[0]), 'Les indices doivent etre dans [0, 19]'
query_1d = np.random.random(64).astype('float32')
d2, i2 = faiss_search(index, query_1d, 2)
assert i2.shape[1] == 2, 'La recherche avec un vecteur 1D doit aussi marcher'