Tests
import numpy as np
# Vecteurs orthogonaux
mat = cosine_matrix([[1, 0], [0, 1]])
assert len(mat) == 2 and len(mat[0]) == 2, 'Doit etre une matrice 2x2'
assert abs(mat[0][0] - 1.0) < 0.01, 'Similarite avec soi-meme doit etre 1'
assert abs(mat[0][1] - 0.0) < 0.01, 'Vecteurs orthogonaux doivent avoir similarite 0'
# Vecteurs identiques
mat2 = cosine_matrix([[1, 1], [1, 1]])
assert abs(mat2[0][1] - 1.0) < 0.01, 'Vecteurs identiques doivent avoir similarite 1'
# Matrice 3x3
mat3 = cosine_matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
assert len(mat3) == 3 and len(mat3[0]) == 3, 'Doit etre une matrice 3x3'
for i in range(3):
assert abs(mat3[i][i] - 1.0) < 0.01, 'La diagonale doit etre 1'
for j in range(3):
if i != j:
assert abs(mat3[i][j]) < 0.01, 'Les vecteurs de base sont orthogonaux'
# Renvoie des listes Python
assert isinstance(mat, list) and isinstance(mat[0], list), 'Doit renvoyer des listes Python'