/** @(#)TestDosMax.java 2009 adolfo@di-mare.com Datos de prueba para la rutina {@code dosMax()}. @author Adolfo Di Mare */ import junit.framework.*; /** Datos de prueba para la clase {@code dosMax}. */ public class TestDosMax extends TestCase { /** Retorna en {@code res[]} los 2 valores más grandes del vector {@code V[]}. *
  • En {@code res[0]} queda una copia del valor mayor almacenado en {@code V[]}.
  • *
  • En {@code res[1]} queda una copia del segundo valor mayor almacenado en {@code V[]}.
  • *
  • Si {@code V[]} tiene solo 1 elemento, lo retorna en {@code res[0]}.
  • *
  • Nunca cambia el valor de {@code V[]}.
  • *
  • Si {@code V[]} es un vector no modifica el valor de {@code res[]}.
  • */ public static void dosMax( int V[] , int res[] ) { if ( V.equals(null) ) { // V[] no existe todavía return; } else if ( V.length == 0 ) { return; } else if ( V.length == 1 ) { res[0] = V[0]; return; } final int N = V.length; int iMax = 0; // índice del mayor int i2do = 0; // índice del 2do mayor { // Calcula el mayor /******************************\ * * * RELLENE CON SU ALGORITMO * * * \******************************/ } i2do = ( iMax == 0 ? 1 : 0 ); // V[0] vs V[1] { // Calcula el 2do mayor /******************************\ * * * RELLENE CON SU ALGORITMO * * * \******************************/ } res[0] = V[iMax]; res[1] = V[i2do]; return; } /** test -> {@code dosMax()}. */ public void test_dosMax() { int res[] = new int[2]; { int V[]={1,2,6,7}; dosMax(V,res); assertTrue( res[0] == 7 && res[1] == 6); } { int V[]={7,6,2,1}; dosMax(V,res); assertTrue( res[0] == 7 && res[1] == 6); } { int V[]={6,7,2,1}; dosMax(V,res); assertTrue( res[0] == 7 && res[1] == 6); } { int V[]={1,2,7,7}; dosMax(V,res); assertTrue( res[0] == 7 && res[1] == 7); } { int V[]={7,7,2,1}; dosMax(V,res); assertTrue( res[0] == 7 && res[1] == 7); } { int V[]={1,2}; dosMax(V,res); assertTrue( res[0] == 2 && res[1] == 1); } { int V[]={2,1}; dosMax(V,res); assertTrue( res[0] == 2 && res[1] == 1); } { int V[]={1,2,1}; dosMax(V,res); assertTrue( res[0] == 2 && res[1] == 1); } { int V[]={2,1,1}; dosMax(V,res); assertTrue( res[0] == 2 && res[1] == 1); } { int V[]={1,1,1,1}; dosMax(V,res); assertTrue( res[0] == 1 && res[1] == 1); } { int V[]={1}; dosMax(V,res); assertTrue( res[0] == 1); } { int V[]={}; dosMax(V,res); assertTrue( V.length == 0); } } } // EOF: TestDosMax.java