P3: Algunos retoques en tests y correctitud, y agregué todo el código en el apéndice.