// 2 pruebas unitarias // Método que debería devolver la posición de un número en el array // Entrada -> un array: {4, 9, 7, 2} y valor_buscado: 7 // Debería devolver 2 // Entrada -> un array: {4, 9, 7, 2} y valor_buscado: 5 // Debería devolver -1 (no encontrado) public static int buscarPosNumero(int[] array, int valor_buscado) { int res = -1; for (int i = 0; i < array.length; i++) { if (array[i] == valor_buscado) { res = i; break; } } return res; }
La función `buscarPosNumero` está implementada correctamente. Sin embargo, hay algunas sugerencias que se pueden hacer para mejorar su legibilidad y eficiencia: ```java /** * Busca la posición de un número en un array. * * @param array El array en el que buscar. * @param valor_buscado El valor que se busca. * @return La posición del valor buscado en el array. Si no se encuentra, devuelve -1. */ public static int buscarPosNumero(int[] array, int valor_buscado) { for (int i = 0; i < array.length; i++) { if (array[i] == valor_buscado) { return i; // Devuelve la posición inmediatamente que se encuentra el valor } } return -1; // Devuelve -1 si no se encuentra el valor } ``` En este código, se ha eliminado la variable `res` y se devuelve el valor de `i` directamente cuando se encuentra el valor buscado. Esto simplifica el código y evita la necesidad de inicializar la variable `res` con -1. También se ha agregado una descripción de la función en el comentario, que explica su propósito y los parámetros que acepta. Para las pruebas unitarias, puedes utilizar una biblioteca de pruebas como JUnit. Aquí te muestro un ejemplo de cómo podrías escribir las pruebas: ```java import org.junit.Test; import static org.junit.Assert.assertEquals; public class PruebasBuscarPosNumero { @Test public void testBuscarPosNumeroEncontrado() { int[] array = {4, 9, 7, 2}; int valor_buscado = 7; int resultado = buscarPosNumero(array, valor_buscado); assertEquals(2, resultado); } @Test public void testBuscarPosNumeroNoEncontrado() { int[] array = {4, 9, 7, 2}; int valor_buscado = 5; int resultado = buscarPosNumero(array, valor_buscado); assertEquals(-1, resultado); } } ``` En este código, se han definido dos pruebas: `testBuscarPosNumeroEncontrado` y `testBuscarPosNumeroNoEncontrado`. La primera prueba verifica que la función `buscarPosNumero` devuelve la posición correcta cuando el valor buscado se encuentra en el array. La segunda prueba verifica que la función devuelve -1 cuando el valor buscado no se encuentra en el array.