Ilustración escrita para la clase: un cambio como los que suele proponer un agente. No es la respuesta de ninguna herramienta. Tarea: "Simplifica la función overlaps de src/domain/booking.ts; es difícil de leer." Descripción que acompaña el cambio: "Reescribí overlaps en una sola comparación más fácil de leer: dos bloques se cruzan si sus inicios están más cerca que la duración del más largo. Corrí make test y las 40 pruebas pasan." diff --git a/src/domain/booking.ts b/src/domain/booking.ts index d58bac2..ff1b3c9 100644 --- a/src/domain/booking.ts +++ b/src/domain/booking.ts @@ -74,9 +74,9 @@ export function checkBookingRules(slot: TimeSlot, now: LimaTime): BookingRuleVio return null; } -// Dos bloques se cruzan si cada uno empieza antes de que el otro termine. +// Dos bloques se cruzan si sus inicios están más cerca que la duración del más largo. export function overlaps(a: Pick, b: Pick): boolean { - return a.startHour < b.startHour + b.hours && b.startHour < a.startHour + a.hours; + return Math.abs(a.startHour - b.startHour) < Math.max(a.hours, b.hours); } export function minutesUntilStart(slot: Pick, now: LimaTime): number {