Article image
Willans Junes
Willans Junes24/04/2025 18:43
Compartilhe

Apelando

    JA que no rooms na consigo respostas, apelo aquí:

    Erro nos testes, estou com esta dificuldade neste desafio os testes primarios da como certo, mas alí tem um erro, faltam 2 espacos para imprimir a saida correta, sendo assi no teste fechado nao passa.

    Ja fiz todo tipo de testes no codigo e está tudo certo até com IA , JUnit para verificar simulando entrades de  usuarios para validar se os resultados coincidem com o esperado, e tudo está certo . Mas na plataforma DIO no teste aberto 4 imprime faltando 2 caracteres , o que me leva a creer que o erro está na plataforma.
    Por favor me digam se estou errado. As vezes acontece com quem nao e nada experto em uma lingiuagem. No Meu Caso Em java.
    Uma pena, so falta esse dessafio para finalizar o bootcamp, o resto está todo terminado.
    
    
    

    Saudaçoes, espero alguém possa me socorrer.

    segue o codigo:
    import java.util.*;
    
    class Artigo {
      int id;
      String titulo;
      String autor;
      String dataPublicacao;
      int curtidas;
    
      public Artigo(int id, String titulo, String autor, String dataPublicacao, int curtidasIniciais) {
          this.id = id;
          this.titulo = titulo;
          this.autor = autor;
          this.dataPublicacao = dataPublicacao;
          this.curtidas = curtidasIniciais;
      }
    
      public void adicionarCurtidas(int quantidade) {
          this.curtidas += quantidade;
      }
    
      public String obterInformacoes() {
          return titulo + " | " + autor + " | " + dataPublicacao + " | Curtidas: " + curtidas;
      }
    }
    
    public class Main {
      public static void main(String[] args) {
          Scanner scanner = new Scanner(System.in);
          Map<Integer, Artigo> artigos = new HashMap<>();
    
          artigos.put(1, new Artigo(1, "Introducao ao Angular", "Carlos Silva", "10/01/2024", 10));
          artigos.put(2, new Artigo(2, "Como usar Services", "Ana Souza", "15/02/2024", 5));
          artigos.put(3, new Artigo(3, "Rotas no Angular", "Joao Pedro", "02/03/2024", 2));
          artigos.put(4, new Artigo(4, "Criando Pipes", "Maria Oliveira", "12/03/2024", 0));
    
          List<String> saidas = new ArrayList<>();
    
          while (true) {
              String entrada = scanner.nextLine().trim();
    
              if (entrada.equalsIgnoreCase("Sair") || entrada.equals("3")) {
                  break;
              }
    
              String[] partes = entrada.split(" ");
    
              if (partes.length < 2) {
                  saidas.add("Erro: Entrada invalida! Informe uma opcao e um ID.");
                  continue;
              }
    
              int opcao;
              int idArtigo;
    
              try {
                  opcao = Integer.parseInt(partes[0]);
                  idArtigo = Integer.parseInt(partes[1]);
              } catch (NumberFormatException e) {
                  saidas.add("Erro: Entrada invalida! Informe uma opcao e um ID.");
                  continue;
              }
    
              if (opcao != 1 && opcao != 2) {
                  saidas.add("Erro: Opcao invalida! Use 1 para add curtidas ou 2 para consultar.");
                  continue;
              }
    
              if (!artigos.containsKey(idArtigo)) {
                  saidas.add("Erro: Artigo nao encontrado!");
                  continue;
              }
    
              Artigo artigo = artigos.get(idArtigo);
    
              if (opcao == 1) {
                  if (partes.length < 3) {
                      saidas.add("Erro: Informe a quantidade de curtidas.");
                      continue;
                  }
    
                  try {
                      int curtidasAdicionar = Integer.parseInt(partes[2]);
                      artigo.adicionarCurtidas(curtidasAdicionar);
                      saidas.add("Curtidas atualizadas: " + artigo.curtidas);
                  } catch (NumberFormatException e) {
                      saidas.add("Erro: Numero de curtidas invalido.");
                  }
    
              } else if (opcao == 2) {
                  saidas.add(artigo.obterInformacoes());
              }
          }
    
          for (String saida : saidas) {
              System.out.println(saida);
          }
    
          scanner.close();
      }
    }
    
    
    
    Compartilhe
    Comentários (6)
    William Silva
    William Silva - 25/04/2025 11:53

    Quase meu xará no nome hehe! Eu também passei por esse tipo de problema e não tem nada a ver muito com seu codigo e sim com a string que está na saida pode ver que o erro esta mostrando só porque não esta com o r incluso no final, quando exigirem um texto na saida recomendo que copie do exemplo a saida pois qualquer letra diferentes ou espaço da erro rsrs

    Salida esperada:

    Erro: Opao invalida! Use 1 para add curtidas ou 2 para consultar.

    Su Salida:

    Erro: Opcao invalida! Use 1 para add curtidas ou 2 para consulta <- veja que falta a letra r e o ponto

    Caso depois de corrigir continue o erro, aperta F5 no navegador para recarregar a pagina e adicione o codigo com as alterações que vc fez 😉

    Fernando Araujo
    Fernando Araujo - 25/04/2025 12:43

    William, na mensagem de erro do código de Willian não faltam o r e o ponto, o que significa que a mensagem de saída dele foi truncada, não é porque faltam o r e o ponto, acho eu. Como eu não recebi o enunciado do problema e o código default, fica difícil ajudar.

     saidas.add("Erro: Opcao invalida! Use 1 para add curtidas ou 2 para consultar.");
    


    Willans Junes
    Willans Junes - 25/04/2025 12:32

    Nao entendo o porqué de nao acusar erro no teste aberto, ja que claramente faltando 2 caracteres , nao é a saida esperada. Esse tipo de erro ja me aconteceram em outros desafios, mas no teste aberto tambem dava erro, Era por algum espaco amais ou algum acento ou cedilha quenao deveria estar, GERALMENTE CUANDO TRUNCAVA ERA POR ALGUM ERRO DE DIGITACAO, ESPACO A MAIS E TRUNCAVA , E DAVA ERRO NO TESTE ABERTO.

    Mas agora nao e o caso, no aberto nao apressenta o erro.

    Willans Junes
    Willans Junes - 25/04/2025 12:26

    A minha saida e exatamente igual a saida esperada, Os mesmos 70 caracteres, o que me leva a crer que a limitacao de caracteres na plataforma por alguma razao está truncando a minha saida. A funcao de comparacao do juiz automático está me sacaneando KKKK.

    Willans Junes
    Willans Junes - 25/04/2025 12:14


    Muito obrigado pessoal.

    To ficando doido com isso daí, Ja fiz tudo , fiz en 3 navegadores diferentes, refatorei o codigo varias vezes, e continua dando o mesmo erro a resposta truncada em 2 caracteres no final.

    Desculpa as faltas, e que sou do Uruguai e o meu teclado e espanhol Raiz.

    Vou trabalhar mais um pouco nele, se nao consigo ressolver, abandono, e ratomarei em alguns días.














    Fernando Araujo
    Fernando Araujo - 25/04/2025 09:38

    Bom dia, Willians!

    Favor informar o texto original do desafio, juntamente com os exemplos, para que quem não tenha acesso ao bootcamp possa ajudar.

    Seria interessante informar, também, o código inicial (defautl) do desafio, para a gente saber qual a parte que o usuário precisa codificar.

    --------

    De qualquer forma, vou dizer o que eu acho sobre este erro.

    Sem ver o enunciado do problema, apenas comparando a sua resposta e a resposta esperada, posso imaginar que a sua resposta está diferente da esperada e ela foi truncada até o último caractere "a".

    O truncamento da sua resposta é a maneira como o editor mostra que a sua resposta contém um erro (estando diferente da esperada). Talvez ela tenha mais caracteres do que a resposta esperada tenha, por causa da variável saidas ser uma lista ao invés de um string com uma saída só e o for final imprimes todas as saídas desta variável.