Tests
import json
result = générer_jsonl([('Sys', 'Bonjour', 'Salut')])
lignes = result.strip().split('\n')
assert len(lignes) == 1, 'Un exemple doit donner une seule ligne'
obj = json.loads(lignes[0])
assert 'messages' in obj, 'Chaque ligne doit avoir une clé messages'
assert len(obj['messages']) == 3, 'Chaque exemple doit avoir 3 messages'
assert obj['messages'][0]['role'] == 'system', 'Le premier role doit etre system'
assert obj['messages'][1]['role'] == 'user', 'Le deuxieme role doit etre user'
assert obj['messages'][2]['role'] == 'assistant', 'Le troisieme role doit etre assistant'
result2 = générer_jsonl([('S1', 'U1', 'A1'), ('S2', 'U2', 'A2'), ('S3', 'U3', 'A3')])
lignes2 = result2.strip().split('\n')
assert len(lignes2) == 3, 'Trois exemples doivent donner trois lignes'
for ligne in lignes2:
obj = json.loads(ligne)
assert 'messages' in obj, 'Chaque ligne doit etre du JSON valide avec messages'
assert générer_jsonl([]) == '', 'Une liste vide doit donner une chaine vide'