📝 Descripción del Problema
Una inmobiliaria tiene información sobre departamentos en renta. De cada uno se conoce: CLAVE, EXTENSION (m²), UBICACION (excelente, buena, regular, mala), PRECIO y DISPONIBLE (booleano).
Se debe poder realizar las siguientes operaciones:
- a) Listar departamentos disponibles con un precio <= R.
- b) Listar departamentos disponibles con una extensión >= E Y ubicación "excelente".
- c) Listar el monto de la renta de todos los departamentos alquilados (no disponibles).
💡 Pistas y Fórmulas Clave
- Este problema se resuelve con Programación Orientada a Objetos (POO).
- Crea una clase
Departamento.javapara guardar los 5 atributos (CLAVE, EXTENSION, etc.). - Crea una clase
Inmobiliaria.javaque en su constructor reciba unaList<Departamento>. - Inciso (a): Crea un método
incisoA(double r_precioMax)que recorra la lista y devuelva una nueva lista filtrada. La condición es:depto.isDisponible() && depto.getPrecio() <= r_precioMax. - Inciso (b): Crea un método
incisoB(double e_extensionMin). La condición es:depto.isDisponible() && depto.getExtension() >= e_extensionMin && depto.getUbicacion().equals("excelente"). - Inciso (c): Crea un método
incisoC_SumaTotalAlquilados()que sume el precio de los deptos donde!depto.isDisponible().
📊 Diagrama de Flujo (Inciso A)
▶️ Prueba y Resultados
Resultado de ejecutar --select-class TestInmobiliaria en la terminal.
PS C:\Users\...\Ejercicios> java -jar lib\junit-platform-console-standalone-1.9.3.jar -cp "src;tests" --select-class TestInmobiliaria
Thanks for using JUnit! Support its development at https://junit.org/sponsoring
.
+-- JUnit Jupiter [OK]
| '-- TestInmobiliaria [OK]
| +-- testIncisoA_PrecioMax() [OK]
| +-- testIncisoA_SinResultados() [OK]
| +-- testIncisoB_ExtensionYUbicacion() [OK]
| '-- testIncisoC_SumaTotalAlquilados() [OK]
'-- JUnit Platform Suite [OK]
Test run finished after 115 ms
[ 3 containers found ]
[ 0 containers skipped ]
[ 3 containers started ]
[ 0 containers aborted ]
[ 3 containers successful ]
[ 0 containers failed ]
[ 4 tests found ]
[ 0 tests skipped ]
[ 4 tests started ]
[ 0 tests aborted ]
[ 4 tests successful ]
[ 0 tests failed ]