Come già segnalato da alcuni di voi, non è chiaro come implementare i metodi Personaggio.parentela e Personaggio.famiglia_allargata
La descrizione indica che bisogna calcolare se esiste una parentela diretta (madre, figlio, cugino eccetera), e se esiste una parentela alla lontana (appartenenti alla stessa casata) nel cui caso bisogna tornare "lontana", e che se due personaggi non hanno casate in comune bisogna tornare "nessuna".
L'ambiguità nasce quando ESISTE una parentela diretta E CONTEMPORANEAMENTE i due personaggi NON hanno casate in comune. Cosa bisogna tornare? la parentela diretta OPPURE il valore "nessuna"? Purtroppo nei file json esistono alcuni personaggi che non hanno casata e che generano questo tipo di problema.
Ne ho discusso con Spognardi ed abbiamo deciso di considerare come valida la specifica che riduce al minimo gli aggiornamenti dei dati e dei test in modo da non creare problemi a chi ha già consegnato esercizi che superano i test esistenti (e magari hanno anche fatto l'esame).
QUINDI, PER EVITARE DI AGGIORNARE TUTTO, ESEGUITE I CONTROLLI IN QUESTO ORDINE (anche se capisco che concettualmente non è la scelta più condivisibile):
- SE I DUE PERSONAGGI NON HANNO ALCUNA CASATA IN COMUNE TORNATE "nessuna"
- SE ESISTE UNA PARENTELA DIRETTA TORNATE IL CORRISPONDENTE VALORE
- ALTRIMENTI I DUE PERSONAGGI HANNO ALMENO UNA CASATA IN COMUNE, QUINDI TORNATE "lontana"
Questo dovrebbe farvi superare tutti i test.
EDIT: per il metodo Personaggio.famiglia_allargata invece dovete aggiungere anche i parenti diretti della persona e dei suoi SO.
Per ulteriori chiarimenti COMMENTATE QUA SOTTO invece di aprire nuove questions.