Skip to content

Instantly share code, notes, and snippets.

@lfborjas
Created October 14, 2010 03:17
Show Gist options
  • Select an option

  • Save lfborjas/625491 to your computer and use it in GitHub Desktop.

Select an option

Save lfborjas/625491 to your computer and use it in GitHub Desktop.
La clase cuaderno, creada para progra 2 el 13 de octubre de 2010
package laboratorio2;
import java.util.HashMap;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Map.Entry;
public class Cuaderno{
private int noPaginas;
private String tipo;
private HashMap<Integer, ArrayList<String> > contenido;
//Esta es una constante de clase, no un miembro: puede ser públicamente accesible
public static final int NO_LINEAS = 35;
/*Este es un bloque de inicialización, se correrá dentro de cada constructor*/
{
contenido = new HashMap<Integer, ArrayList<String>>();
}
/**El constructor por defecto*/
public Cuaderno(){
noPaginas = 140;
tipo = "anillado";
for(int i = 0; i < noPaginas; i++){
contenido.put(i, new ArrayList<String>(NO_LINEAS));
}
}
public Cuaderno(int noPaginas, String tipo){
this.noPaginas = noPaginas;
this.tipo = tipo;
String [] tempArray;
for(int i = 0; i < noPaginas; i++){
contenido.put(i, new ArrayList<String>(NO_LINEAS));
}
}
public int getNoPaginas(){
return this.noPaginas;
}
public void setNoPaginas(int nuevoNum){
this.noPaginas = nuevoNum;
}
/**Busca la primera página en blanco*/
public int primeraPaginaLibre(){
for(Entry<Integer, ArrayList<String>> pagina: contenido.entrySet()){
if(pagina.getValue().size() < NO_LINEAS)
return pagina.getKey().intValue();
}
//si no encuentra, retornar -1
return -1;
}
/*Este método sobrecargado devuelve si se escribió con éxito*/
public boolean escribir(String linea){
int noPagina = primeraPaginaLibre();
if(noPagina != -1){
contenido.get(noPagina).add(linea);
return true;
}
return false;
}
public boolean escribir(String linea, int pagina){
//Aquí nos valemos de cortocircuito para ver si la página existe antes
//de chequear que esa página tenga espacio libre.
if(contenido.containsKey(pagina) && contenido.get(pagina).size() < NO_LINEAS){
contenido.get(pagina).add(linea);
return true;
}
return false;
}
}
package laboratorio2;
import junit.framework.TestCase;
/**
*
* @author lfborjas
*/
public class CuadernoTest extends TestCase {
public CuadernoTest(String testName) {
super(testName);
}
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
/**
* Test of getNoPaginas method, of class Cuaderno.
*/
public void testGetNoPaginas() {
System.out.println("getNoPaginas");
/*prueba con el default constructor*/
Cuaderno instance = new Cuaderno();
int expResult = 140;
int result = instance.getNoPaginas();
assertEquals(expResult, result);
/*prueba con el otro constructor*/
instance = new Cuaderno(666, "unico");
assertEquals(666, instance.getNoPaginas());
}
/**
* Test of setNoPaginas method, of class Cuaderno.
*/
public void testSetNoPaginas() {
System.out.println("setNoPaginas");
int nuevoNum = 200;
Cuaderno instance = new Cuaderno();
instance.setNoPaginas(nuevoNum);
assertEquals(200, instance.getNoPaginas());
}
/**
* Test of escribir method, of class Cuaderno.
*/
public void testEscribir_String() {
System.out.println("escribir");
String linea = "";
Cuaderno instance = new Cuaderno(10, "prueba");
int limite = instance.getNoPaginas() * Cuaderno.NO_LINEAS;
assertEquals(true, instance.escribir("otra prueba"));
for(int i=1;i<limite-1;i++){
instance.escribir("prueba");
}
assertEquals(true, instance.escribir("otra prueba"));
assertEquals(false, instance.escribir("otra prueba"));
}
/**
* Test of escribir method, of class Cuaderno.
*/
public void testEscribir_String_int() {
System.out.println("escribir");
Cuaderno instance = new Cuaderno(10, "prueba");
int limite = 10 * Cuaderno.NO_LINEAS;
/*0. Probar que sí deja escribir en posiciones existentes*/
assertTrue(instance.escribir("prueba", 0));
/*1. Probar que no deja escribir en renglones negativos*/
assertFalse(instance.escribir("prueba", -1));
/*2. Probar que no deja sobrepasar el límite*/
assertFalse(instance.escribir("prueba", instance.getNoPaginas()+1));
/*3. Probar que no deja sobreescribir: llenemos una página*/
for(int i=0; i < Cuaderno.NO_LINEAS; i++ )
instance.escribir("prueba", 5);
assertFalse(instance.escribir("prueba", 5));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment