*** COMPILING IN ef/checked-out/070
                           A-01-32-M-ok.in                           
Running: Running: TEST PASSED!
                           A-01-33-M-ok.in                           
Running: Running: TEST PASSED!
                           A-01-34-M-ok.in                           
Running: Running: *** expected/A-01-34-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-01-34-M-ok.out	Sat Oct 26 20:12:00 2024
      ZONE  1      
*** 47,53 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Guardar antes de fechar? Menu Principal
  1 - Criar ficheiro
  2 - Abrir ficheiro
  3 - Guardar ficheiro
--- 47,53 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Menu Principal
  1 - Criar ficheiro
  2 - Abrir ficheiro
  3 - Guardar ficheiro
      ZONE  2      
*** 59,64 ****
--- 59,65 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
+ Escolha uma opção: Número inválido!
  Escolha uma opção: Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
output differs from expected
                           A-01-35-M-ok.in                           
Running: Running: *** expected/A-01-35-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-01-35-M-ok.out	Sat Oct 26 20:12:00 2024
      ZONE  1      
*** 47,53 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Guardar antes de fechar? Ficheiro sem nome. Guardar ficheiro como: Menu Principal
  1 - Criar ficheiro
  2 - Abrir ficheiro
  3 - Guardar ficheiro
--- 47,53 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Menu Principal
  1 - Criar ficheiro
  2 - Abrir ficheiro
  3 - Guardar ficheiro
      ZONE  2      
*** 59,64 ****
--- 59,66 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
+ Escolha uma opção: Número inválido!
+ Escolha uma opção: Número inválido!
  Escolha uma opção: Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
output differs from expected
                           A-01-36-M-ok.in                           
Running: Running: *** expected/A-01-36-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-01-36-M-ok.out	Sat Oct 26 20:12:01 2024
      ZONE  1      
*** 99,105 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Menu Principal
  1 - Criar ficheiro
  2 - Abrir ficheiro
  3 - Guardar ficheiro
--- 99,105 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro sem nome. Guardar ficheiro como: Menu Principal
  1 - Criar ficheiro
  2 - Abrir ficheiro
  3 - Guardar ficheiro
      ZONE  2      
*** 111,114 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 111,114 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Fim de entrada de dados (R-EOF): pt.tecnico.uilib.text.RuntimeEOFException: Fim do fluxo de dados de entrada
output differs from expected
                           A-02-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-02-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-02-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-02-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-02-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-02-06-M-ok.in                           
Running: Running: TEST PASSED!
                           A-02-07-M-ok.in                           
Running: Running: TEST PASSED!
                           A-03-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-03-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-03-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-03-04-M-ok.in                           
Running: Running: *** expected/A-03-04-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-03-04-M-ok.out	Sat Oct 26 20:12:01 2024
      ZONE  1      
*** 26,33 ****
  5 - Plantar árvore
  6 - Mostrar árvores de habitat
  0 - Sair
! Escolha uma opção: Identificador único do habitat: Nome do habitat: Área do habitat: Registar habitat: Operação inválida: O habitat 'aE' já existe.
! Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
  3 - Alterar área de habitat
--- 26,32 ----
  5 - Plantar árvore
  6 - Mostrar árvores de habitat
  0 - Sair
! Escolha uma opção: Identificador único do habitat: Nome do habitat: Área do habitat: Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
  3 - Alterar área de habitat
      ZONE  2      
*** 36,41 ****
--- 35,41 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|Ae|novo|230|0
+ HABITAT|aE|novissimo|300|0
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
output differs from expected
                           A-04-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-04-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-04-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-05-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-05-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-05-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-06-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-06-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-06-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-06-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-07-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-08-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-09-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-10-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-11-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-12-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-13-M-ok.in                           
Running: Running: *** expected/A-07-13-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-07-13-M-ok.out	Sat Oct 26 20:12:03 2024
      ZONE  1      
*** 102,108 ****
  5 - Plantar árvore
  6 - Mostrar árvores de habitat
  0 - Sair
! Escolha uma opção: Identificador único do habitat: ÁRVORE|t1|t1|1|1|PERENE|COMFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
--- 102,108 ----
  5 - Plantar árvore
  6 - Mostrar árvores de habitat
  0 - Sair
! Escolha uma opção: Identificador único do habitat: ÁRVORE|t1|t1|1|1|PERENE|LARGARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
output differs from expected
                           A-07-14-M-ok.in                           
Running: Running: *** expected/A-07-14-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-07-14-M-ok.out	Sat Oct 26 20:12:03 2024
      ZONE  1      
*** 143,149 ****
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: Identificador único do habitat: ÁRVORE|a1|a1|1|1|CADUCA|LARGARFOLHAS
! ÁRVORE|a2|a2|2|3|PERENE|COMFOLHAS
  ÁRVORE|a4|a4|4|3|CADUCA|LARGARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
--- 143,149 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: Identificador único do habitat: ÁRVORE|a1|a1|1|1|CADUCA|LARGARFOLHAS
! ÁRVORE|a2|a2|2|3|PERENE|LARGARFOLHAS
  ÁRVORE|a4|a4|4|3|CADUCA|LARGARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
output differs from expected
                           A-07-15-M-ok.in                           
Running: Running: *** expected/A-07-15-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-07-15-M-ok.out	Sat Oct 26 20:12:04 2024
      ZONE  1      
*** 130,136 ****
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a1|a1|2|1|PERENE|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
--- 130,136 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a1|a1|1|1|PERENE|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
output differs from expected
                           A-07-16-M-ok.in                           
Running: Running: *** expected/A-07-16-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-07-16-M-ok.out	Sat Oct 26 20:12:04 2024
      ZONE  1      
*** 153,161 ****
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a2|a2|11|4|PERENE|GERARFOLHAS
  HABITAT|h2|outro nome|122|1
! ÁRVORE|a1|a1|2|3|CADUCA|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
--- 153,161 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a2|a2|10|4|PERENE|GERARFOLHAS
  HABITAT|h2|outro nome|122|1
! ÁRVORE|a1|a1|1|3|CADUCA|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
output differs from expected
                           A-07-17-M-ok.in                           
Running: Running: *** expected/A-07-17-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-07-17-M-ok.out	Sat Oct 26 20:12:04 2024
      ZONE  1      
*** 73,79 ****
  5 - Plantar árvore
  6 - Mostrar árvores de habitat
  0 - Sair
! Escolha uma opção: Identificador único do habitat: Identificador único da árvore: Nome da árvore: Idade da árvore: Dificuldade de limpeza da árvore: Tipo de árvore: (CADUCA ou PERENE) ÁRVORE|a2|a2|10|4|PERENE|COMFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
--- 73,79 ----
  5 - Plantar árvore
  6 - Mostrar árvores de habitat
  0 - Sair
! Escolha uma opção: Identificador único do habitat: Identificador único da árvore: Nome da árvore: Idade da árvore: Dificuldade de limpeza da árvore: Tipo de árvore: (CADUCA ou PERENE) ÁRVORE|a2|a2|10|4|PERENE|LARGARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
      ZONE  2      
*** 83,89 ****
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a2|a2|10|4|PERENE|COMFOLHAS
  HABITAT|h2|outro nome|122|1
  ÁRVORE|a1|a1|1|3|CADUCA|LARGARFOLHAS
  Gestão de Habitats
--- 83,89 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a2|a2|10|4|PERENE|LARGARFOLHAS
  HABITAT|h2|outro nome|122|1
  ÁRVORE|a1|a1|1|3|CADUCA|LARGARFOLHAS
  Gestão de Habitats
      ZONE  3      
*** 156,162 ****
  Escolha uma opção: HABITAT|h1|nome2|12|1
  ÁRVORE|a2|a2|10|4|PERENE|COMFOLHAS
  HABITAT|h2|outro nome|122|1
! ÁRVORE|a1|a1|2|3|CADUCA|COMFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
--- 156,162 ----
  Escolha uma opção: HABITAT|h1|nome2|12|1
  ÁRVORE|a2|a2|10|4|PERENE|COMFOLHAS
  HABITAT|h2|outro nome|122|1
! ÁRVORE|a1|a1|1|3|CADUCA|COMFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
      ZONE  4      
*** 199,207 ****
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a2|a2|11|4|PERENE|COMFOLHAS
  HABITAT|h2|outro nome|122|1
! ÁRVORE|a1|a1|2|3|CADUCA|LARGARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
--- 199,207 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a2|a2|10|4|PERENE|LARGARFOLHAS
  HABITAT|h2|outro nome|122|1
! ÁRVORE|a1|a1|1|3|CADUCA|LARGARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
output differs from expected
                           A-07-18-M-ok.in                           
Running: Running: TEST PASSED!
                           A-07-19-M-ok.in                           
Running: Running: *** expected/A-07-19-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-07-19-M-ok.out	Sat Oct 26 20:12:04 2024
      ZONE  1      
*** 31,37 ****
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a2|a2|10|4|PERENE|COMFOLHAS
  HABITAT|h2|outro nome|122|1
  ÁRVORE|a1|a1|1|3|CADUCA|LARGARFOLHAS
  Gestão de Habitats
--- 31,37 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a2|a2|10|4|PERENE|LARGARFOLHAS
  HABITAT|h2|outro nome|122|1
  ÁRVORE|a1|a1|1|3|CADUCA|LARGARFOLHAS
  Gestão de Habitats
      ZONE  2      
*** 121,129 ****
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a2|a2|11|4|PERENE|GERARFOLHAS
  HABITAT|h2|outro nome|122|1
! ÁRVORE|a1|a1|2|3|CADUCA|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
--- 121,129 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|1
! ÁRVORE|a2|a2|10|4|PERENE|GERARFOLHAS
  HABITAT|h2|outro nome|122|1
! ÁRVORE|a1|a1|1|3|CADUCA|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
output differs from expected
                           A-07-20-M-ok.in                           
Running: Running: *** expected/A-07-20-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-07-20-M-ok.out	Sat Oct 26 20:12:04 2024
      ZONE  1      
*** 149,159 ****
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|2
! ÁRVORE|T1|Pinheiro 4|61|20|PERENE|GERARFOLHAS
! ÁRVORE|T3|Figueira|6|10|CADUCA|GERARFOLHAS
  HABITAT|h2|outro nome|122|2
! ÁRVORE|T2|Oliveira|121|10|PERENE|GERARFOLHAS
! ÁRVORE|T4|Plátano|31|20|CADUCA|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
--- 149,159 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|2
! ÁRVORE|T1|Pinheiro 4|60|20|PERENE|GERARFOLHAS
! ÁRVORE|T3|Figueira|5|10|CADUCA|GERARFOLHAS
  HABITAT|h2|outro nome|122|2
! ÁRVORE|T2|Oliveira|120|10|PERENE|GERARFOLHAS
! ÁRVORE|T4|Plátano|30|20|CADUCA|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
      ZONE  2      
*** 196,206 ****
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|2
! ÁRVORE|T1|Pinheiro 4|61|20|PERENE|COMFOLHAS
! ÁRVORE|T3|Figueira|6|10|CADUCA|COMFOLHAS
  HABITAT|h2|outro nome|122|2
! ÁRVORE|T2|Oliveira|121|10|PERENE|COMFOLHAS
! ÁRVORE|T4|Plátano|31|20|CADUCA|COMFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
--- 196,206 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|2
! ÁRVORE|T1|Pinheiro 4|60|20|PERENE|COMFOLHAS
! ÁRVORE|T3|Figueira|5|10|CADUCA|COMFOLHAS
  HABITAT|h2|outro nome|122|2
! ÁRVORE|T2|Oliveira|120|10|PERENE|COMFOLHAS
! ÁRVORE|T4|Plátano|30|20|CADUCA|COMFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
      ZONE  3      
*** 269,279 ****
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|2
! ÁRVORE|T1|Pinheiro 4|62|20|PERENE|GERARFOLHAS
! ÁRVORE|T3|Figueira|7|10|CADUCA|GERARFOLHAS
  HABITAT|h2|outro nome|122|2
! ÁRVORE|T2|Oliveira|122|10|PERENE|GERARFOLHAS
! ÁRVORE|T4|Plátano|32|20|CADUCA|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
--- 269,279 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|2
! ÁRVORE|T1|Pinheiro 4|60|20|PERENE|GERARFOLHAS
! ÁRVORE|T3|Figueira|5|10|CADUCA|GERARFOLHAS
  HABITAT|h2|outro nome|122|2
! ÁRVORE|T2|Oliveira|120|10|PERENE|GERARFOLHAS
! ÁRVORE|T4|Plátano|30|20|CADUCA|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
      ZONE  4      
*** 407,417 ****
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|2
! ÁRVORE|T1|Pinheiro 4|64|20|PERENE|GERARFOLHAS
! ÁRVORE|T3|Figueira|9|10|CADUCA|GERARFOLHAS
  HABITAT|h2|outro nome|122|2
! ÁRVORE|T2|Oliveira|124|10|PERENE|GERARFOLHAS
! ÁRVORE|T4|Plátano|34|20|CADUCA|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
--- 407,417 ----
  6 - Mostrar árvores de habitat
  0 - Sair
  Escolha uma opção: HABITAT|h1|nome2|12|2
! ÁRVORE|T1|Pinheiro 4|60|20|PERENE|GERARFOLHAS
! ÁRVORE|T3|Figueira|5|10|CADUCA|GERARFOLHAS
  HABITAT|h2|outro nome|122|2
! ÁRVORE|T2|Oliveira|120|10|PERENE|GERARFOLHAS
! ÁRVORE|T4|Plátano|30|20|CADUCA|GERARFOLHAS
  Gestão de Habitats
  1 - Visualizar todos os habitats
  2 - Registar habitat
output differs from expected
                           A-07-21-M-ok.in                           
Running: Running: TEST PASSED!
                           A-08-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-08-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-08-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-08-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-08-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-09-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-09-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-09-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-09-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-09-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-09-06-M-ok.in                           
Running: Running: *** expected/A-09-06-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-09-06-M-ok.out	Sat Oct 26 20:12:08 2024
      ZONE  1      
*** 23,36 ****
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: Identificador único do animal: Nome do animal: Identificador único da espécie: Identificador único do habitat: Registar animal: Operação inválida: O animal 'aaDD' já existe.
! Gestão de Animais
  1 - Visualizar todos os animais
  2 - Registar animal
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: ANIMAL|AAdd|Avestruz|C10|VOID|h1
  Gestão de Animais
  1 - Visualizar todos os animais
  2 - Registar animal
--- 23,36 ----
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: Identificador único do animal: Nome do animal: Identificador único da espécie: Identificador único do habitat: Gestão de Animais
  1 - Visualizar todos os animais
  2 - Registar animal
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: ANIMAL|aaDD|nome|C10|VOID|h2
! ANIMAL|AAdd|Avestruz|C10|VOID|h1
  Gestão de Animais
  1 - Visualizar todos os animais
  2 - Registar animal
output differs from expected
                           A-09-07-M-ok.in                           
Running: Running: hva.core.exception.ImportFileException: Erro a processar ficheiro de import: /Users/joao/Dropbox/Cadeiras/PO2015/avaliação/ef/auto-tests/A-09-07-M-ok.import
	at hva.core.HotelManager.importFile(HotelManager.java:105)
	at hva.app.App.main(App.java:14)
Caused by: hva.core.exception.UnrecognizedEntryException
	at hva.core.Parser.parseAnimal(Parser.java:79)
	at hva.core.Parser.parseLine(Parser.java:53)
	at hva.core.Parser.parseFile(Parser.java:37)
	at hva.core.Hotel.importFile(Hotel.java:411)
	at hva.core.HotelManager.importFile(HotelManager.java:103)
	... 1 more
*** expected/A-09-07-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-09-07-M-ok.out	Sat Oct 26 20:12:08 2024
      ZONE  1      
*** 16,37 ****
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: Identificador único do animal: Nome do animal: Identificador único da espécie: Identificador único do habitat: Gestão de Animais
  1 - Visualizar todos os animais
  2 - Registar animal
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: Identificador único do animal: Nome do animal: Identificador único da espécie: Identificador único do habitat: Gestão de Animais
! 1 - Visualizar todos os animais
! 2 - Registar animal
! 3 - Transferir para habitat
! 4 - Calcular satisfação de animal
! 0 - Sair
! Escolha uma opção: ANIMAL|aadd|Avestruz|CcdE10|VOID|h1
! ANIMAL|ee1|nome 2|CcdE10|VOID|h1
! ANIMAL|x1|nome|CcdE10|VOID|h2
! Gestão de Animais
  1 - Visualizar todos os animais
  2 - Registar animal
  3 - Transferir para habitat
--- 16,33 ----
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: Identificador único do animal: Nome do animal: Identificador único da espécie: Identificador único do habitat: Nome da espécie: Registar animal: Operação inválida: O animal 'x1' já existe.
! Gestão de Animais
  1 - Visualizar todos os animais
  2 - Registar animal
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: Número inválido!
! Escolha uma opção: Número inválido!
! Escolha uma opção: Número inválido!
! Escolha uma opção: Número inválido!
! Escolha uma opção: Gestão de Animais
  1 - Visualizar todos os animais
  2 - Registar animal
  3 - Transferir para habitat
      ZONE  2      
*** 49,52 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: 
--- 45,48 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: 
\ No newline at end of file
output differs from expected
                           A-09-08-M-ok.in                           
Running: Running: TEST PASSED!
                           A-10-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-10-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-10-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-10-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-10-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-10-06-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.NullPointerException: Cannot invoke "hva.core.Animal.getHabitatId()" because "" is null
	at hva.core.Hotel.DoTransferToHabitat(Hotel.java:162)
	at hva.app.animal.DoTransferToHabitat.execute(DoTransferToHabitat.java:48)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.main.DoOpenAnimalsMenu.execute(DoOpenAnimalsMenu.java:34)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
*** expected/A-10-06-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-10-06-M-ok.out	Sat Oct 26 20:12:09 2024
      ZONE  1      
*** 16,81 ****
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: Identificador único do animal: Identificador único do habitat: Gestão de Animais
! 1 - Visualizar todos os animais
! 2 - Registar animal
! 3 - Transferir para habitat
! 4 - Calcular satisfação de animal
! 0 - Sair
! Escolha uma opção: ANIMAL|A1|Pinguim 1|C1|VOID|AR1
! ANIMAL|A2|Pinguim 2|C1|VOID|AR2
! ANIMAL|A3|Macaco 1|C2|VOID|AR1
! ANIMAL|A4|Macaco 2|C2|VOID|AR1
! Gestão de Animais
! 1 - Visualizar todos os animais
! 2 - Registar animal
! 3 - Transferir para habitat
! 4 - Calcular satisfação de animal
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Identificador único do habitat: ANIMAL|A1|Pinguim 1|C1|VOID|AR1
! ANIMAL|A3|Macaco 1|C2|VOID|AR1
! ANIMAL|A4|Macaco 2|C2|VOID|AR1
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Identificador único do habitat: ANIMAL|A2|Pinguim 2|C1|VOID|AR2
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 16,19 ----
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: Identificador único do animal: Identificador único do habitat: 
\ No newline at end of file
output differs from expected
                           A-10-07-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.NullPointerException: Cannot invoke "hva.core.Habitat.addAnimal(hva.core.Animal)" because "" is null
	at hva.core.Hotel.DoTransferToHabitat(Hotel.java:163)
	at hva.app.animal.DoTransferToHabitat.execute(DoTransferToHabitat.java:48)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.main.DoOpenAnimalsMenu.execute(DoOpenAnimalsMenu.java:34)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
*** expected/A-10-07-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-10-07-M-ok.out	Sat Oct 26 20:12:09 2024
      ZONE  1      
*** 16,81 ****
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: Identificador único do animal: Identificador único do habitat: Gestão de Animais
! 1 - Visualizar todos os animais
! 2 - Registar animal
! 3 - Transferir para habitat
! 4 - Calcular satisfação de animal
! 0 - Sair
! Escolha uma opção: ANIMAL|A1|Pinguim 1|C1|VOID|AR2
! ANIMAL|A2|Pinguim 2|C1|VOID|AR1
! ANIMAL|A3|Macaco 1|C2|VOID|AR1
! ANIMAL|A4|Macaco 2|C2|VOID|AR1
! Gestão de Animais
! 1 - Visualizar todos os animais
! 2 - Registar animal
! 3 - Transferir para habitat
! 4 - Calcular satisfação de animal
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Identificador único do habitat: ANIMAL|A2|Pinguim 2|C1|VOID|AR1
! ANIMAL|A3|Macaco 1|C2|VOID|AR1
! ANIMAL|A4|Macaco 2|C2|VOID|AR1
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Identificador único do habitat: ANIMAL|A1|Pinguim 1|C1|VOID|AR2
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 16,19 ----
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: Identificador único do animal: Identificador único do habitat: 
\ No newline at end of file
output differs from expected
                           A-11-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-06-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-07-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-08-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-09-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-10-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-11-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-12-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-13-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-14-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-15-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-16-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-17-M-ok.in                           
Running: Running: TEST PASSED!
                           A-11-18-M-ok.in                           
Running: Running: TEST PASSED!
                           A-12-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-16-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-16-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-16-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-16-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-16-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-16-06-M-ok.in                           
Running: Running: TEST PASSED!
                           A-17-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-17-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-17-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-17-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-17-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-17-06-M-ok.in                           
Running: Running: TEST PASSED!
                           A-17-07-M-ok.in                           
Running: Running: *** expected/A-17-07-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-17-07-M-ok.out	Sat Oct 26 20:12:12 2024
      ZONE  1      
*** 66,74 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: TRT|T1|Trt one|H1,H2,H3
  TRT|T2|Trt two
! VET|V1|Vet one|C1,C2,C3,C4
  VET|V2|Vet two
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
--- 66,74 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: TRT|T1|Trt one|H2,H3,H1
  TRT|T2|Trt two
! VET|V1|Vet one|C4,C2,C3,C1
  VET|V2|Vet two
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
output differs from expected
                           A-17-08-M-ok.in                           
Running: Running: TEST PASSED!
                           A-17-09-M-ok.in                           
Running: Running: TEST PASSED!
                           A-17-10-M-ok.in                           
Running: Running: *** expected/A-17-10-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-17-10-M-ok.out	Sat Oct 26 20:12:12 2024
      ZONE  1      
*** 17,38 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: Identificador único da responsabilidade: Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
  3 - Atribuir responsabilidade
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: Identificador único da responsabilidade: Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
  3 - Atribuir responsabilidade
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: TRT|T1|Trt one|H1
! VET|V1|Vet one|C1
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 17,40 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: Identificador único da responsabilidade: Atribuir responsabilidade: Operação inválida: O funcionário 'v1' não existe.
! Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
  3 - Atribuir responsabilidade
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: Identificador único da responsabilidade: Atribuir responsabilidade: Operação inválida: O funcionário 't1' não existe.
! Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
  3 - Atribuir responsabilidade
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: TRT|T1|Trt one
! VET|V1|Vet one
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-18-01-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.NullPointerException: Cannot invoke "hva.core.Employe.checkIfResponsabilityExists(String)" because "" is null
	at hva.core.Hotel.removeResposabilityFromEmployee(Hotel.java:291)
	at hva.app.employee.DoRemoveResponsibility.execute(DoRemoveResponsibility.java:49)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.main.DoOpenEmployeesMenu.execute(DoOpenEmployeesMenu.java:34)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
*** expected/A-18-01-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-18-01-M-ok.out	Sat Oct 26 20:12:12 2024
      ZONE  1      
*** 17,48 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: Identificador único da responsabilidade: Retirar responsabilidade: Operação inválida: O funcionário 'H2' não existe.
! Gestão de Funcionários
! 1 - Visualizar todos os funcionários
! 2 - Registar funcionário
! 3 - Atribuir responsabilidade
! 4 - Retirar responsabilidade
! 5 - Calcular satisfação de funcionário
! 0 - Sair
! Escolha uma opção: Identificador único do funcionário: Identificador único da responsabilidade: Retirar responsabilidade: Operação inválida: Responsabilidade (habitat ou espécie) 'C2' não atribuída ao funcionário 'V1'.
! Gestão de Funcionários
! 1 - Visualizar todos os funcionários
! 2 - Registar funcionário
! 3 - Atribuir responsabilidade
! 4 - Retirar responsabilidade
! 5 - Calcular satisfação de funcionário
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 17,20 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: Identificador único da responsabilidade: 
\ No newline at end of file
output differs from expected
                           A-18-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-18-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-18-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-18-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-18-06-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-06-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-07-M-ok.in                           
Running: Running: *** expected/A-19-07-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-07-M-ok.out	Sat Oct 26 20:12:13 2024
      ZONE  1      
*** 25,31 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 19
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 25,31 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 20
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
      ZONE  2      
*** 33,39 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 19
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 33,39 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 20
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-08-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.NullPointerException: Cannot invoke "hva.core.Employe.getEmployeeType()" because the return value of "java.util.HashMap.get(Object)" is null
	at hva.core.Hotel.calcSatisfactionEmployee(Hotel.java:128)
	at hva.app.employee.DoShowSatisfactionOfEmployee.execute(DoShowSatisfactionOfEmployee.java:46)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.main.DoOpenEmployeesMenu.execute(DoOpenEmployeesMenu.java:34)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
*** expected/A-19-08-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-08-M-ok.out	Sat Oct 26 20:12:13 2024
      ZONE  1      
*** 17,40 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: Calcular satisfação de funcionário: Operação inválida: O funcionário 'TT' não existe.
! Gestão de Funcionários
! 1 - Visualizar todos os funcionários
! 2 - Registar funcionário
! 3 - Atribuir responsabilidade
! 4 - Retirar responsabilidade
! 5 - Calcular satisfação de funcionário
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 17,20 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 
\ No newline at end of file
output differs from expected
                           A-19-09-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-10-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-11-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-12-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-13-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-14-M-ok.in                           
Running: Running: TEST PASSED!
                           A-19-15-M-ok.in                           
Running: Running: *** expected/A-19-15-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-15-M-ok.out	Sat Oct 26 20:12:14 2024
      ZONE  1      
*** 17,23 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 193
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 17,23 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-16-M-ok.in                           
Running: Running: *** expected/A-19-16-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-16-M-ok.out	Sat Oct 26 20:12:14 2024
      ZONE  1      
*** 49,55 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 186
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 49,55 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-17-M-ok.in                           
Running: Running: *** expected/A-19-17-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-17-M-ok.out	Sat Oct 26 20:12:14 2024
      ZONE  1      
*** 43,49 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 165
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 43,49 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-18-M-ok.in                           
Running: Running: *** expected/A-19-18-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-18-M-ok.out	Sat Oct 26 20:12:14 2024
      ZONE  1      
*** 17,23 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 193
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 17,23 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-19-M-ok.in                           
Running: Running: *** expected/A-19-19-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-19-M-ok.out	Sat Oct 26 20:12:14 2024
      ZONE  1      
*** 30,36 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 193
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 30,36 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
      ZONE  2      
*** 70,76 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 193
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 70,76 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-20-M-ok.in                           
Running: Running: *** expected/A-19-20-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-20-M-ok.out	Sat Oct 26 20:12:14 2024
      ZONE  1      
*** 17,23 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 193
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 17,23 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
      ZONE  2      
*** 83,89 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 186
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 83,89 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-21-M-ok.in                           
Running: Running: *** expected/A-19-21-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-21-M-ok.out	Sat Oct 26 20:12:15 2024
      ZONE  1      
*** 17,23 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 172
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 17,23 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-22-M-ok.in                           
Running: Running: *** expected/A-19-22-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-22-M-ok.out	Sat Oct 26 20:12:15 2024
      ZONE  1      
*** 17,23 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 172
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 17,23 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
      ZONE  2      
*** 57,63 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 158
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 57,63 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
      ZONE  3      
*** 97,103 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 117
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 97,103 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 200
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-23-M-ok.in                           
Running: Running: *** expected/A-19-23-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-23-M-ok.out	Sat Oct 26 20:12:15 2024
      ZONE  1      
*** 17,23 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 257
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 17,23 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 267
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
      ZONE  2      
*** 44,50 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 257
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 44,50 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 267
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-24-M-ok.in                           
Running: Running: *** expected/A-19-24-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-24-M-ok.out	Sat Oct 26 20:12:15 2024
      ZONE  1      
*** 17,23 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: -241
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 17,23 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: -220
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-25-M-ok.in                           
Running: Running: *** expected/A-19-25-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-25-M-ok.out	Sat Oct 26 20:12:15 2024
      ZONE  1      
*** 17,23 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: -17
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 17,23 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 5
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-26-M-ok.in                           
Running: Running: *** expected/A-19-26-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-26-M-ok.out	Sat Oct 26 20:12:15 2024
      ZONE  1      
*** 17,23 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 143
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 17,23 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 171
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-19-27-M-ok.in                           
Running: Running: *** expected/A-19-27-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-19-27-M-ok.out	Sat Oct 26 20:12:15 2024
      ZONE  1      
*** 17,23 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 248
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 17,23 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 257
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
      ZONE  2      
*** 25,31 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 260
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 25,31 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 262
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
      ZONE  3      
*** 33,39 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 128
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 33,39 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 139
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
      ZONE  4      
*** 41,47 ****
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 228
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
--- 41,47 ----
  4 - Retirar responsabilidade
  5 - Calcular satisfação de funcionário
  0 - Sair
! Escolha uma opção: Identificador único do funcionário: 239
  Gestão de Funcionários
  1 - Visualizar todos os funcionários
  2 - Registar funcionário
output differs from expected
                           A-20-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-20-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-20-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-20-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-20-05-M-ok.in                           
Running: Running: *** expected/A-20-05-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-20-05-M-ok.out	Sat Oct 26 20:12:16 2024
      ZONE  1      
*** 40,49 ****
  3 - Vacinar animal
  4 - Mostrar vacinações
  0 - Sair
! Escolha uma opção: VACINA|V1|nome 1|0|E1,E2,E4,E5
! VACINA|V2|nome 2|0|E1,E5
! VACINA|V3|nome 3|0|E2,E3,E5
! VACINA|V4|nome 4|0|E2,E3,E4
  Gestão de Vacinas
  1 - Visualizar todas as vacinas
  2 - Registar vacina
--- 40,49 ----
  3 - Vacinar animal
  4 - Mostrar vacinações
  0 - Sair
! Escolha uma opção: VACINA|V1|nome 1|0|E5,E4,E2,E1
! VACINA|V2|nome 2|0|E5,E1
! VACINA|V3|nome 3|0|E3,E2,E5
! VACINA|V4|nome 4|0|E4,E3,E2
  Gestão de Vacinas
  1 - Visualizar todas as vacinas
  2 - Registar vacina
output differs from expected
                           A-21-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-06-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-07-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-08-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-09-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-10-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-11-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.RuntimeException: java.io.NotSerializableException: hva.core.VaccineRegistration
	at hva.app.main.DoSaveFile.execute(DoSaveFile.java:60)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
Caused by: java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1200)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.ArrayList.writeObject(ArrayList.java:948)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.HashMap.internalWriteEntries(HashMap.java:1952)
	at java.base/java.util.HashMap.writeObject(HashMap.java:1505)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at hva.core.HotelManager.saveAs(HotelManager.java:64)
	at hva.app.main.DoSaveFile.execute(DoSaveFile.java:58)
	... 5 more
*** expected/A-21-11-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-21-11-M-ok.out	Sat Oct 26 20:12:17 2024
      ZONE  1      
*** 41,56 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro sem nome. Guardar ficheiro como: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 41,44 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro sem nome. Guardar ficheiro como: 
\ No newline at end of file
output differs from expected
                           A-21-12-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.RuntimeException: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: hva.core.VaccineRegistration
	at hva.app.main.DoOpenFile.execute(DoOpenFile.java:57)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1769)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at java.base/java.util.ArrayList.readObject(ArrayList.java:981)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1102)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2444)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2618)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2469)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at java.base/java.util.HashMap.readObject(HashMap.java:1560)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1102)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2444)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2618)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2469)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at hva.core.HotelManager.load(HotelManager.java:82)
	at hva.app.main.DoOpenFile.execute(DoOpenFile.java:55)
	... 5 more
Caused by: java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1200)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.ArrayList.writeObject(ArrayList.java:948)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.HashMap.internalWriteEntries(HashMap.java:1952)
	at java.base/java.util.HashMap.writeObject(HashMap.java:1505)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at hva.core.HotelManager.saveAs(HotelManager.java:64)
	at hva.app.main.DoSaveFile.execute(DoSaveFile.java:58)
	... 5 more
execution failed
*** expected/A-21-12-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-21-12-M-ok.out	Sat Oct 26 20:12:17 2024
      ZONE  1      
*** 10,59 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro a abrir: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: VACINA|Vac1|nome 1|1|E1
! VACINA|Vac2|nome 2|0|E2
! VACINA|Vac3|nome 3|0|E1,E2
! Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: REGISTO-VACINA|Vac1|Vet1|E1
! Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 10,13 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro a abrir: 
\ No newline at end of file
output differs from expected
                           A-21-13-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-14-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-15-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-16-M-ok.in                           
Running: Running: *** expected/A-21-16-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-21-16-M-ok.out	Sat Oct 26 20:12:17 2024
      ZONE  1      
*** 57,63 ****
  4 - Calcular satisfação de animal
  0 - Sair
  Escolha uma opção: ANIMAL|AA1|Patudo|E2|ACIDENTE|H1
! ANIMAL|AA2|Patudo 2|E3|ERRO|H1
  ANIMAL|AA3|Malhado|E2|VOID|H1
  Gestão de Animais
  1 - Visualizar todos os animais
--- 57,63 ----
  4 - Calcular satisfação de animal
  0 - Sair
  Escolha uma opção: ANIMAL|AA1|Patudo|E2|ACIDENTE|H1
! ANIMAL|AA2|Patudo 2|E3|ACIDENTE|H1
  ANIMAL|AA3|Malhado|E2|VOID|H1
  Gestão de Animais
  1 - Visualizar todos os animais
output differs from expected
                           A-21-17-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-18-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-19-M-ok.in                           
Running: Running: TEST PASSED!
                           A-21-20-M-ok.in                           
Running: Running: *** expected/A-21-20-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-21-20-M-ok.out	Sat Oct 26 20:12:17 2024
      ZONE  1      
*** 57,63 ****
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: ANIMAL|AA1|Patudo|E1|ERRO|H1
  ANIMAL|AA2|Patudo 2|E1|VOID|H1
  ANIMAL|AA3|Malhado|E2|VOID|H1
  Gestão de Animais
--- 57,63 ----
  3 - Transferir para habitat
  4 - Calcular satisfação de animal
  0 - Sair
! Escolha uma opção: ANIMAL|AA1|Patudo|E1|CONFUSÃO|H1
  ANIMAL|AA2|Patudo 2|E1|VOID|H1
  ANIMAL|AA3|Malhado|E2|VOID|H1
  Gestão de Animais
output differs from expected
                           A-21-21-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.RuntimeException: java.io.NotSerializableException: hva.core.VaccineRegistration
	at hva.app.main.DoSaveFile.execute(DoSaveFile.java:60)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
Caused by: java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1200)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.ArrayList.writeObject(ArrayList.java:948)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.HashMap.internalWriteEntries(HashMap.java:1952)
	at java.base/java.util.HashMap.writeObject(HashMap.java:1505)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at hva.core.HotelManager.saveAs(HotelManager.java:64)
	at hva.app.main.DoSaveFile.execute(DoSaveFile.java:58)
	... 5 more
*** expected/A-21-21-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-21-21-M-ok.out	Sat Oct 26 20:12:17 2024
      ZONE  1      
*** 116,131 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro sem nome. Guardar ficheiro como: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 116,119 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro sem nome. Guardar ficheiro como: 
\ No newline at end of file
output differs from expected
                           A-22-01-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.NullPointerException: Cannot invoke "hva.core.Habitat.getAnimals()" because the return value of "java.util.HashMap.get(Object)" is null
	at hva.core.Hotel.getAllAnimalsInHabitatOrdered(Hotel.java:360)
	at hva.app.search.DoShowAnimalsInHabitat.execute(DoShowAnimalsInHabitat.java:41)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.main.DoOpenLookupsMenu.execute(DoOpenLookupsMenu.java:34)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
*** expected/A-22-01-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-22-01-M-ok.out	Sat Oct 26 20:12:18 2024
      ZONE  1      
*** 16,38 ****
  3 - Actos médicos de um veterinário
  4 - Vacinações com problemas
  0 - Sair
! Escolha uma opção: Identificador único do habitat: Animais de um habitat: Operação inválida: O habitat 'HH1' não existe.
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 16,19 ----
  3 - Actos médicos de um veterinário
  4 - Vacinações com problemas
  0 - Sair
! Escolha uma opção: Identificador único do habitat: 
\ No newline at end of file
output differs from expected
                           A-22-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-22-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-22-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-22-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-23-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-23-02-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.RuntimeException: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: hva.core.VaccineRegistration
	at hva.app.main.DoOpenFile.execute(DoOpenFile.java:57)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1769)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at java.base/java.util.ArrayList.readObject(ArrayList.java:981)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1102)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2444)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2618)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2469)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at java.base/java.util.HashMap.readObject(HashMap.java:1560)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1102)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2444)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2618)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2469)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at hva.core.HotelManager.load(HotelManager.java:82)
	at hva.app.main.DoOpenFile.execute(DoOpenFile.java:55)
	... 5 more
Caused by: java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1200)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.ArrayList.writeObject(ArrayList.java:948)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.HashMap.internalWriteEntries(HashMap.java:1952)
	at java.base/java.util.HashMap.writeObject(HashMap.java:1505)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at hva.core.HotelManager.saveAs(HotelManager.java:64)
	at hva.app.main.DoSaveFile.execute(DoSaveFile.java:58)
	... 5 more
execution failed
*** expected/A-23-02-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-23-02-M-ok.out	Sat Oct 26 20:12:18 2024
      ZONE  1      
*** 10,55 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro a abrir: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Identificador único do animal: REGISTO-VACINA|Vac1|Vet1|E1
! REGISTO-VACINA|Vac2|Vet1|E1
! REGISTO-VACINA|Vac3|Vet1|E1
! REGISTO-VACINA|Vac2|Vet1|E1
! REGISTO-VACINA|Vac3|Vet1|E1
! REGISTO-VACINA|Vac1|Vet1|E1
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 10,13 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro a abrir: 
\ No newline at end of file
output differs from expected
                           A-23-03-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.RuntimeException: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: hva.core.VaccineRegistration
	at hva.app.main.DoOpenFile.execute(DoOpenFile.java:57)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1769)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at java.base/java.util.ArrayList.readObject(ArrayList.java:981)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1102)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2444)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2618)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2469)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at java.base/java.util.HashMap.readObject(HashMap.java:1560)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1102)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2444)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2618)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2469)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at hva.core.HotelManager.load(HotelManager.java:82)
	at hva.app.main.DoOpenFile.execute(DoOpenFile.java:55)
	... 5 more
Caused by: java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1200)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.ArrayList.writeObject(ArrayList.java:948)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.HashMap.internalWriteEntries(HashMap.java:1952)
	at java.base/java.util.HashMap.writeObject(HashMap.java:1505)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at hva.core.HotelManager.saveAs(HotelManager.java:64)
	at hva.app.main.DoSaveFile.execute(DoSaveFile.java:58)
	... 5 more
execution failed
*** expected/A-23-03-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-23-03-M-ok.out	Sat Oct 26 20:12:18 2024
      ZONE  1      
*** 10,190 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro a abrir: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: Identificador da vacina: Nome da vacina: Identificadores das espécies que podem receber a vacina: Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: Identificador da vacina: Identficador do veterinário a ministrar a vacina: Identificador único do animal: Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: Identificador da vacina: Identficador do veterinário a ministrar a vacina: Identificador único do animal: A vacina 'Vac2' não é apropiada para o animal 'AA2'.
! Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: Identificador da vacina: Identficador do veterinário a ministrar a vacina: Identificador único do animal: A vacina 'Vac3' não é apropiada para o animal 'AA3'.
! Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: Identificador da vacina: Identficador do veterinário a ministrar a vacina: Identificador único do animal: Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: Identificador da vacina: Identficador do veterinário a ministrar a vacina: Identificador único do animal: Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: Identificador da vacina: Identficador do veterinário a ministrar a vacina: Identificador único do animal: Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Identificador único do animal: REGISTO-VACINA|Vac1|Vet1|E1
! REGISTO-VACINA|Vac2|Vet1|E1
! REGISTO-VACINA|Vac3|Vet1|E1
! REGISTO-VACINA|Vac2|Vet1|E1
! REGISTO-VACINA|Vac3|Vet1|E1
! REGISTO-VACINA|Vac1|Vet1|E1
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Identificador único do animal: REGISTO-VACINA|Vac3|Vet2|E2
! REGISTO-VACINA|Vac4|Vet2|E2
! REGISTO-VACINA|Vac4|Vet2|E2
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: Identificador da vacina: Identficador do veterinário a ministrar a vacina: Identificador único do animal: Gestão de Vacinas
! 1 - Visualizar todas as vacinas
! 2 - Registar vacina
! 3 - Vacinar animal
! 4 - Mostrar vacinações
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Identificador único do animal: REGISTO-VACINA|Vac3|Vet2|E2
! REGISTO-VACINA|Vac4|Vet2|E2
! REGISTO-VACINA|Vac4|Vet2|E2
! REGISTO-VACINA|Vac4|Vet3|E2
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 10,13 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro a abrir: 
\ No newline at end of file
output differs from expected
                           A-24-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-24-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-24-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-24-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-24-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-24-06-M-ok.in                           
Running: Running: TEST PASSED!
                           A-24-07-M-ok.in                           
Running: Running: TEST PASSED!
                           A-24-08-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.RuntimeException: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: hva.core.VaccineRegistration
	at hva.app.main.DoOpenFile.execute(DoOpenFile.java:57)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1769)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at java.base/java.util.ArrayList.readObject(ArrayList.java:981)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1102)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2444)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2618)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2469)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at java.base/java.util.HashMap.readObject(HashMap.java:1560)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1102)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2444)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2618)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2469)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at hva.core.HotelManager.load(HotelManager.java:82)
	at hva.app.main.DoOpenFile.execute(DoOpenFile.java:55)
	... 5 more
Caused by: java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1200)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.ArrayList.writeObject(ArrayList.java:948)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.HashMap.internalWriteEntries(HashMap.java:1952)
	at java.base/java.util.HashMap.writeObject(HashMap.java:1505)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at hva.core.HotelManager.saveAs(HotelManager.java:64)
	at hva.app.main.DoSaveFile.execute(DoSaveFile.java:58)
	... 5 more
execution failed
*** expected/A-24-08-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-24-08-M-ok.out	Sat Oct 26 20:12:19 2024
      ZONE  1      
*** 10,74 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro a abrir: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Identificador único do funcionário: REGISTO-VACINA|Vac1|Vet1|E1
! REGISTO-VACINA|Vac2|Vet1|E1
! REGISTO-VACINA|Vac3|Vet1|E1
! REGISTO-VACINA|Vac2|Vet1|E1
! REGISTO-VACINA|Vac3|Vet1|E1
! REGISTO-VACINA|Vac1|Vet1|E1
! REGISTO-VACINA|Vac3|Vet1|E1
! REGISTO-VACINA|Vac2|Vet1|E1
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Identificador único do funcionário: REGISTO-VACINA|Vac3|Vet2|E2
! REGISTO-VACINA|Vac4|Vet2|E2
! REGISTO-VACINA|Vac4|Vet2|E2
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Identificador único do funcionário: REGISTO-VACINA|Vac4|Vet3|E1
! REGISTO-VACINA|Vac4|Vet3|E2
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 10,13 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro a abrir: 
\ No newline at end of file
output differs from expected
                           A-25-01-M-ok.in                           
Running: Running: TEST PASSED!
                           A-25-02-M-ok.in                           
Running: Running: TEST PASSED!
                           A-25-03-M-ok.in                           
Running: Running: TEST PASSED!
                           A-25-04-M-ok.in                           
Running: Running: TEST PASSED!
                           A-25-05-M-ok.in                           
Running: Running: TEST PASSED!
                           A-25-06-M-ok.in                           
Running: Running: Exception in thread "main" java.lang.RuntimeException: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: hva.core.VaccineRegistration
	at hva.app.main.DoOpenFile.execute(DoOpenFile.java:57)
	at pt.tecnico.uilib.menus.Command.performCommand(Command.java:151)
	at pt.tecnico.uilib.text.TextInteraction.open(TextInteraction.java:114)
	at pt.tecnico.uilib.Dialog.open(Dialog.java:48)
	at pt.tecnico.uilib.menus.Menu.open(Menu.java:71)
	at hva.app.App.main(App.java:20)
Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1769)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at java.base/java.util.ArrayList.readObject(ArrayList.java:981)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1102)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2444)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2618)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2469)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at java.base/java.util.HashMap.readObject(HashMap.java:1560)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1102)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2444)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2618)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2469)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2284)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1762)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:540)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:498)
	at hva.core.HotelManager.load(HotelManager.java:82)
	at hva.app.main.DoOpenFile.execute(DoOpenFile.java:55)
	... 5 more
Caused by: java.io.NotSerializableException: hva.core.VaccineRegistration
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1200)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.ArrayList.writeObject(ArrayList.java:948)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at java.base/java.util.HashMap.internalWriteEntries(HashMap.java:1952)
	at java.base/java.util.HashMap.writeObject(HashMap.java:1505)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
	at hva.core.HotelManager.saveAs(HotelManager.java:64)
	at hva.app.main.DoSaveFile.execute(DoSaveFile.java:58)
	... 5 more
execution failed
*** expected/A-25-06-M-ok.out	Sat Oct 26 12:46:25 2024
--- checked-out/070/070_A-25-06-M-ok.out	Sat Oct 26 20:12:20 2024
      ZONE  1      
*** 10,55 ****
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro a abrir: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: REGISTO-VACINA|Vac1|Vet1|E1
! REGISTO-VACINA|Vac2|Vet1|E1
! REGISTO-VACINA|Vac2|Vet1|E1
! REGISTO-VACINA|Vac1|Vet1|E1
! REGISTO-VACINA|Vac2|Vet1|E1
! REGISTO-VACINA|Vac3|Vet2|E2
! Consultas
! 1 - Animais de um habitat
! 2 - Actos médicos num animal
! 3 - Actos médicos de um veterinário
! 4 - Vacinações com problemas
! 0 - Sair
! Escolha uma opção: Menu Principal
! 1 - Criar ficheiro
! 2 - Abrir ficheiro
! 3 - Guardar ficheiro
! 4 - Avançar estação do ano
! 5 - Ver satisfação global
! 6 - Gestão de animais
! 7 - Gestão de funcionários
! 8 - Gestão de habitats
! 9 - Gestão de vacinas
! 10 - Consultas
! 0 - Sair
! Escolha uma opção: 
\ No newline at end of file
--- 10,13 ----
  9 - Gestão de vacinas
  10 - Consultas
  0 - Sair
! Escolha uma opção: Ficheiro a abrir: 
\ No newline at end of file
output differs from expected