te paso todo el codigo fijate si esta bien // Método que debería devolver verdadero si todos los números en un array son positivos, falso en caso contrario // Entrada -> un array con 2, 4, 6, -8, 1 // Debería devolver false public static boolean sonTodosPositivos(int[] array) { boolean res = true; for (int i = 0; i < array.length; i++) { if (array[i] < 0) { res = false; } } return res; } @Test void sonTodosPositivos() { int[] array={2, 4, 6, -8, 1}; boolean resultado=true; resultado=OperacionesArray.sonTodosPositivos(array); assertEquals(false,resultado); }
Tu código parece correcto en general, pero hay algunas sugerencias que puedo hacer para mejorar su calidad y eficiencia: 1. **Nombre de variables**: El nombre de la variable `res` no es muy descriptivo. Considera cambiarlo a algo como `todosPositivos` para reflejar mejor su propósito. 2. **Condición de salida**: En lugar de inicializar `res` a `true` y luego cambiarla a `false` cuando encuentres un número negativo, considera inicializarla a `false` y cambiarla a `true` cuando encuentres un número positivo. De esta manera, no necesitarás cambiar el valor de `res` en cada iteración del bucle. 3. **Uso de `break`**: Si encuentras un número negativo, no necesitas continuar iterando sobre el array. Puedes usar el `break` para salir del bucle en ese momento. 4. **Uso de `Arrays.stream()`**: Si estás utilizando Java 8 o superior, puedes utilizar `Arrays.stream()` para iterar sobre el array de manera más concisa y eficiente. Aquí te muestro cómo podrías refactorizar tu código: ```java public static boolean sonTodosPositivos(int[] array) { boolean todosPositivos = false; for (int i = 0; i < array.length; i++) { if (array[i] >= 0) { todosPositivos = true; break; } } return todosPositivos; } ``` O, utilizando `Arrays.stream()`: ```java public static boolean sonTodosPositivos(int[] array) { return Arrays.stream(array).allMatch(n -> n >= 0); } ``` En cuanto a tu prueba unitaria, parece correcta. Sin embargo, considera agregar un caso de prueba adicional para un array vacío, ya que el método `sonTodosPositivos()` debería devolver `true` en ese caso.