← Volver al listado
Conectando ejecutor…

PROYECTOS / PYTHON

Explora el proyecto. Resuelve el problema.

Revisa los archivos, corrige su lógica y comprueba tu solución con pruebas.

MedioAgenda de salas
main.py

CONSOLA

Listo para ejecutar
Selecciona un archivo y comienza a explorar.
PROYECTO CONTEXTUALIZADOMedioFechas · Intervalos

Agenda de salas

Permite reservas consecutivas y detecta los solapamientos reales entre horarios.

1. Contexto y Situación

El problema en el entorno real

Una universidad gestiona salas de estudio donde una reserva puede iniciar en el mismo minuto exacto que termina la anterior (ej. 09:00 a 10:00 y de 10:00 a 11:00). Actualmente el sistema rechaza reservas consecutivas válidas interpretándolas incorrectamente como solapamientos.

Pregunta a responder:

¿Por qué el sistema considera incompatibles dos reservas consecutivas contiguas y cómo corregir la detección de conflictos sin permitir solapamientos reales?

2. Qué se tiene

Archivos y estructura recibida

El proyecto cuenta con varios archivos ya configurados:

agenda/servicio.pyPunto de partida

Función crear_reserva con la comparación defectuosa de horarios.

agenda/modelos.py

Modelo inmutable Reserva (sala, usuario, inicio, fin).

main.py

Simulación con reservas consecutivas y simultáneas para probar.

tests/test_publico.py

Pruebas públicas que verifican reservas contiguas y solapadas.

3. Qué se espera

Reglas y solución esperada
  • Los intervalos ocupan [inicio, fin): incluyen el inicio pero excluyen el fin exacto.
  • Dos reservas contiguas en la misma sala (ej. 09:00-10:00 y 10:00-11:00) deben aceptarse sin error.
  • Rechazar con "sala ya ocupada" únicamente si comparten instantes reales en la misma sala.
  • Salas distintas (ej. A1 y B2) pueden reservarse en el mismo horario sin conflicto.
Salida esperada resumida:

Permitir reservas consecutivas en la misma sala y rechazar únicamente solapamientos reales en el mismo espacio.

Inicia sesión para guardar tu actividad en Progreso y métricas. Al pulsar «Probar» se usan las pruebas públicas originales, aunque hayas editado tests/.