def testFiveSpotsSixReservationNoOverlapping( self): #Dos esquinas, 1. count = capacidad, inicio=apertura # 2. count = capacidad, fin=cierre e = self.crear_estacionamiento(5) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 6), datetime(2015, 1, 20, 10))) #La reserva de arriba NO se concreta, puesto que s�lo se verific� si era v�lida, sin agregar su objeto self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 18)))
def testFiveSpotsSixReservation( self ): #borde, ocupacion = capacidad antes de intentar hacer reservas nuevas e = self.crear_estacionamiento(5) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 18))) self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 15)))
def testMoverReservaMasDeUnaVezCredito(self): AdministracionSage.objects.create_AdministracionSage(9.9) tarjetaTipo = 'Vista' p = crear_propietario() e = crear_estacionamiento(p, 168) monto = Decimal(10) inicio = datetime.now() + timedelta(days=1) fin = datetime.now() + timedelta(days=1, hours=1) crear_pago(inicio, fin, monto, e, tarjetaTipo) if (validarHorarioReservaMover(inicio, fin, e.apertura, e.cierre, e.horizonte)[0] and (marzullo(1, inicio, fin, 'Particular', 1))): pago_mover_reserva(1, inicio, fin, 0, e, tarjetaTipo) pago = Pago.objects.get(pk=2) administracion = AdministracionSage.objects.get(pk=1) if pago.tarjetaTipo != 'Billetera Electronica': monto_debitar = administracion.calcular_monto(100) else: if pago.facturaMovida != None: monto_debitar = administracion.calcular_monto(100) else: monto_debitar = 0 if (validarHorarioReservaMover(inicio, fin, e.apertura, e.cierre, e.horizonte)[0] and (marzullo(1, inicio, fin, 'Particular', 1))): pago_mover_reserva(2, inicio, fin, 90, e, tarjetaTipo) pago = Pago.objects.get(pk=4) self.assertTrue(pago.monto == 100 and monto_debitar == Decimal('9.9'))
def testFiveSpotsSixReservation(self): #borde, ocupacion = capacidad antes de intentar hacer reservas nuevas e = self.crear_estacionamiento(5) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() self.assertFalse(marzullo(e.id, datetime(2015,1,20,9), datetime(2015,1,20,18))) self.assertFalse(marzullo(e.id, datetime(2015,1,20,9), datetime(2015,1,20,15)))
def testFiveSpotsSixReservationNoOverlapping(self): #Dos esquinas, 1. count = capacidad, inicio=apertura # 2. count = capacidad, fin=cierre e = self.crear_estacionamiento(5) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() self.assertTrue(marzullo(e.id, datetime(2015,1,20,6), datetime(2015,1,20,10))) #La reserva de arriba NO se concreta, puesto que s�lo se verific� si era v�lida, sin agregar su objeto self.assertFalse(marzullo(e.id, datetime(2015,1,20,9), datetime(2015,1,20,18)))
def testFiveSpotsSixReservation(self): #borde, ocupacion = capacidad antes de intentar hacer reservas nuevas n = 5 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 17), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17), tipo_puesto = 'Particular').save() self.assertFalse(marzullo(e.id, 'Particular',datetime(2015,1,20,9), datetime(2015,1,20,18))) self.assertFalse(marzullo(e.id, 'Particular',datetime(2015,1,20,9), datetime(2015,1,20,15)))
def testManyReservationsOneOverlap(self): #malicia, count = (capacidad+1) en la hora (9am - 10am), algunas reservas tienen inicio = apertura e = self.crear_estacionamiento(10) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10),vehiculoTipo = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 10),vehiculoTipo = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 10),vehiculoTipo = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 10),vehiculoTipo = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 11),vehiculoTipo = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 12),vehiculoTipo = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 13),vehiculoTipo = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 9),vehiculoTipo = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10),vehiculoTipo = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10),vehiculoTipo = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10),vehiculoTipo = 'Particular').save() self.assertFalse(marzullo(e.id, datetime(2015,1,20,9), datetime(2015,1,20,10)))
def testFiveSpotsFiveReservation(self): #borde, ocupaci�n = capacidad e = self.crear_estacionamiento(5) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() self.assertTrue(marzullo(e.id, datetime(2015,1,20,10), datetime(2015,1,20,18)))
def testAllSmallestReservations(self): #malicia, fin - inicio = 1hora, doce veces e = self.crear_estacionamiento(1) for i in range(12): Reserva(estacionamiento = e, inicioReserva = datetime(2015, 1, 20, 6+i), finalReserva = datetime(2015, 1, 20, 7+i),vehiculoTipo = 'Particular').save() for i in range(12): self.assertFalse(marzullo(e.id, datetime(2015,1,20,6+i), datetime(2015,1,20,7+i)))
def testManyReservationsMaxOverlapping(self): #esquina, count = capacidad en una hora (10am - 11am), algunas reservas tienen inicio = apertura n = 10 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 11), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 12), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 13), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 9), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() self.assertTrue(marzullo(e.id, 'Particular',datetime(2015,1,20,10), datetime(2015,1,20,15)))
def testAddThreeReservations(self): #malicia, reserva cubre todo el horario, y ocupaci�n = capacidad e = self.crear_estacionamiento(3) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 15),vehiculoTipo = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15),vehiculoTipo = 'Particular').save() self.assertTrue(marzullo(e.id, datetime(2015,1,20,6), datetime(2015,1,20,18)))
def testMoverReservaSolapada(self): AdministracionSage.objects.create_AdministracionSage(9.9) tarjetaTipo = 'Billetera Electronica' p = crear_propietario() e = crear_estacionamiento(p, 168) inicio = datetime.now() + timedelta(days=1) fin = datetime.now() + timedelta(days=1, hours=1) monto = Decimal('0.01') crear_pago(inicio, fin, Decimal('0.01'), e, tarjetaTipo) pago = Pago.objects.get(pk=1) administracion = AdministracionSage.objects.get(pk=1) if pago.tarjetaTipo != 'Billetera Electronica': monto_debitar = administracion.calcular_monto(monto) else: if pago.facturaMovida != None: monto_debitar = administracion.calcular_monto(monto) else: monto_debitar = 0 if (validarHorarioReservaMover(inicio, fin, e.apertura, e.cierre, e.horizonte)[0] and (marzullo(1, inicio, fin, 'Particular', 1))): pago_mover_reserva(1, inicio, fin, 0, e, tarjetaTipo) pagos = Pago.objects.filter(fueMovido=True) self.assertTrue(len(pagos) == 1 and monto_debitar == 0)
def testFiveSpotsSixReservationNoOverlapping(self): #Dos esquinas, 1. count = capacidad, inicio=apertura # 2. count = capacidad, fin=cierre n = 5 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 17), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17), tipo_puesto = 'Particular').save() self.assertTrue(marzullo(e.id, 'Particular',datetime(2015,1,20,6), datetime(2015,1,20,10))) #La reserva de arriba NO se concreta, puesto que s�lo se verific� si era v�lida, sin agregar su objeto self.assertFalse(marzullo(e.id, 'Particular',datetime(2015,1,20,9), datetime(2015,1,20,18)))
def testManyReservationsMaxOverlapping( self ): #esquina, count = capacidad en una hora (10am - 11am), algunas reservas tienen inicio = apertura e = self.crear_estacionamiento(10) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 11)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 12)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 13)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 9)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 10), datetime(2015, 1, 20, 15)))
def testAddTwoReservation2( self): #esquina, dos reservaciones con incio = apertura estac. e = self.crear_estacionamiento(10) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 15)).save() self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 6), datetime(2015, 1, 20, 14)))
def testAddTwoReservation( self): #esquina, dos reservaciones con fin = cierre estac. e = self.crear_estacionamiento(10) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 18)).save() self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 12), datetime(2015, 1, 20, 18)))
def testOneReservationEarly(self): #borde, inicio = aprtura n = 2 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) self.assertTrue(marzullo(e.id, 'Particular',datetime(2015,1,20,6), datetime(2015,1,20,10)))
def testOneReservationMax(self): #borde, ocupaci�n = capacidad n = 1 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) self.assertTrue(marzullo(e.id, 'Particular',datetime(2015,1,20,9), datetime(2015,1,20,15)))
def testOneReservationFullDay(self): #esquina, inicio = aprtura y fin = cierre n = 1 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) self.assertTrue(marzullo(e.id, 'Particular',datetime(2015,1,20,6), datetime(2015,1,20,18)))
def testOneReservationLate(self): #borde, fin = cierre n = 2 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) self.assertTrue(marzullo(e.id, 'Particular',datetime(2015,1,20,15), datetime(2015,1,20,18)))
def testSmallestReservation(self): #borde, fin - inicio = 1hora n = 1 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) self.assertTrue(marzullo(e.id, 'Particular',datetime(2015,1,20,8), datetime(2015,1,20,9)))
def testNoSpotParking(self): #borde, capacidad = 0 n = 0 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) self.assertFalse(marzullo(e.id, 'Particular',datetime(2015,1,20,9), datetime(2015,1,20,15)))
def testTenSpotsOneReservation(self): #malicia n = 10 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) self.assertTrue(marzullo(e.id, 'Particular',datetime(2015,1,20,9), datetime(2015,1,20,15)))
def testAddTwoReservation2(self): #esquina, dos reservaciones con incio = apertura estac. n = 10 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() self.assertTrue(marzullo(e.id, 'Particular',datetime(2015,1,20,6), datetime(2015,1,20,14)))
def testAllSmallestReservations( self): #malicia, fin - inicio = 1hora, doce veces e = self.crear_estacionamiento(1) for i in range(12): Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6 + i), finalReserva=datetime(2015, 1, 20, 7 + i)).save() for i in range(12): self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 6 + i), datetime(2015, 1, 20, 7 + i)))
def testFullPlusOne( self ): #malicia, fin - inicio = 1hora, doce veces + una reserva FullDay e = self.crear_estacionamiento(1) for i in range(12): Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6 + i), finalReserva=datetime(2015, 1, 20, 7 + i)).save() self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 6), datetime(2015, 1, 20, 18)))
def testAddThreeReservations(self): #malicia, reserva cubre todo el horario, y ocupaci�n = capacidad n = 3 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() self.assertTrue(marzullo(e.id, 'Particular',datetime(2015,1,20,6), datetime(2015,1,20,18)))
def testFullPlusOne(self): #malicia, fin - inicio = 1hora, doce veces + una reserva FullDay n = 1 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) for i in range(12): Reserva(estacionamiento = e, inicioReserva = datetime(2015, 1, 20, 6+i), finalReserva = datetime(2015, 1, 20, 7+i), tipo_puesto = 'Particular').save() self.assertFalse(marzullo(e.id, 'Particular',datetime(2015, 1, 20, 6), datetime(2015, 1, 20, 18)))
def testAddThreeReservations( self ): #malicia, reserva cubre todo el horario, y ocupaci�n = capacidad e = self.crear_estacionamiento(3) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 6), datetime(2015, 1, 20, 18)))
def testFiveSpotsFiveReservation(self): #borde, ocupaci�n = capacidad n = 5 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15), tipo_puesto = 'Particular').save() self.assertTrue(marzullo(e.id, 'Particular',datetime(2015,1,20,10), datetime(2015,1,20,18)))
def testManyReservationsOneOverlap( self ): #malicia, count = (capacidad+1) en la hora (9am - 10am), algunas reservas tienen inicio = apertura e = self.crear_estacionamiento(10) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), vehiculoTipo='Particular').save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 10), vehiculoTipo='Particular').save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 10), vehiculoTipo='Particular').save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 10), vehiculoTipo='Particular').save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 11), vehiculoTipo='Particular').save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 12), vehiculoTipo='Particular').save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 13), vehiculoTipo='Particular').save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 9), vehiculoTipo='Particular').save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), vehiculoTipo='Particular').save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), vehiculoTipo='Particular').save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), vehiculoTipo='Particular').save() self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 10)))
def testMoverReservaInvalidaCambioHorizonte(self): AdministracionSage.objects.create_AdministracionSage(9.9) tarjetaTipo = 'Billetera Electronica' p = crear_propietario() e = crear_estacionamiento(p, 48) inicio = datetime.now() + timedelta(hours=1) fin = datetime.now() + timedelta(days=4) crear_pago(inicio, fin, Decimal('0.01'), e, tarjetaTipo) if (validarHorarioReservaMover(inicio, fin, e.apertura, e.cierre, e.horizonte)[0] and (marzullo(1, inicio, fin, 'Particular', 1))): pago_mover_reserva(1, inicio, fin, 0, e, tarjetaTipo) pagos = Pago.objects.all() self.assertTrue(len(pagos) == 1)
def testFiveSpotsFiveReservation(self): #borde, ocupaci�n = capacidad e = self.crear_estacionamiento(5) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 10), datetime(2015, 1, 20, 18)))
def testMoverReservaMontoMenor(self): AdministracionSage.objects.create_AdministracionSage(9.9) tarjetaTipo = 'Vista' p = crear_propietario() e = crear_estacionamiento(p, 168) monto = 100 diferencia = Decimal('90') inicio = datetime.now() + timedelta(days=1) fin = datetime.now() + timedelta(days=1, hours=1) crear_pago(inicio, fin, monto, e, tarjetaTipo) crear_billetera() if (validarHorarioReservaMover(inicio, fin, e.apertura, e.cierre, e.horizonte)[0] and (marzullo(1, inicio, fin, 'Particular', 1))): recarga_mover_reserva(1, inicio, fin, diferencia, 1, e, tarjetaTipo) billetera = BilleteraElectronica.objects.get(pk=1) self.assertEqual(billetera.saldo, Decimal('90') - Decimal('.99'))
def testManyReservationsMaxOverlapping(self): #esquina, count = capacidad en una hora (10am - 11am), algunas reservas tienen inicio = apertura e = self.crear_estacionamiento(10) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 11)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 12)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 13)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 9)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() self.assertTrue(marzullo(e.id, datetime(2015,1,20,10), datetime(2015,1,20,15)))
def testManyReservationsOneOverlap(self): #malicia, count = (capacidad+1) en la hora (9am - 10am), algunas reservas tienen inicio = apertura n = 10 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n) p.save() e = self.crear_estacionamiento(p) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 7), finalReserva=datetime(2015, 1, 20, 11), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 8), finalReserva=datetime(2015, 1, 20, 12), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 13), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 9), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 10), tipo_puesto = 'Particular').save() self.assertFalse(marzullo(e.id, 'Particular',datetime(2015,1,20,9), datetime(2015,1,20,10)))
def testTenSpotsOneReservation(self): #malicia e = self.crear_estacionamiento(10) self.assertTrue(marzullo(e.id, datetime(2015,1,20,9), datetime(2015,1,20,15)))
def testNoSpotParking(self): #esquina, capacidad = 0 e = self.crear_estacionamiento(0) self.assertFalse(marzullo(e.id, datetime(2015,1,20,9), datetime(2015,1,20,15)))
def testReservarNoPuestoParaCamion(self): #borde, capacidad para Camions = 0 e = self.crear_estacionamiento(3,4,5,0) self.assertFalse(marzullo(e.id, datetime(2015,1,20,9), datetime(2015,1,20,15),'Camion'))
def testReservarNoPuestoParaDiscapacitado(self): #borde, capacidad para Discapacitado = 0 e = self.crear_estacionamiento(3,3,0,5) self.assertFalse(marzullo(e.id, datetime(2015,1,20,9), datetime(2015,1,20,15),'Discapacitado'))
def testReservarNoPuestoParaDiscapacitado( self): #borde, capacidad para Discapacitado = 0 e = self.crear_estacionamiento(3, 3, 0, 5) self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 15), 'Discapacitado'))
def testReservarUnPuestoParaMoto( self): #borde, ocupacion = capacidad para motos e = self.crear_estacionamiento(0, 1) self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 15), 'Moto'))
def testTenSpotsOneReservation(self): #malicia e = self.crear_estacionamiento(10) self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 15)))
def testSmallestReservation(self): #borde, fin - inicio = 1hora e = self.crear_estacionamiento(1) self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 8), datetime(2015, 1, 20, 9)))
def testReservarNoPuestoParaCamion( self): #borde, capacidad para Camions = 0 e = self.crear_estacionamiento(3, 4, 5, 0) self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 15), 'Camion'))
def testOneReservationMax(self): #borde, ocupaci�n = capacidad e = self.crear_estacionamiento(1) self.assertTrue(marzullo(e.id, datetime(2015,1,20,9), datetime(2015,1,20,15)))
def testOneReservationMax(self): #borde, ocupaci�n = capacidad e = self.crear_estacionamiento(1) self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 15)))
def testOneReservationEarly(self): #borde, inicio = aprtura e = self.crear_estacionamiento(2) self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 6), datetime(2015, 1, 20, 10)))
def testOneReservationLate(self): #borde, fin = cierre e = self.crear_estacionamiento(2) self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 15), datetime(2015, 1, 20, 18)))
def testAddTwoReservation(self): #esquina, dos reservaciones con fin = cierre estac. e = self.crear_estacionamiento(10) Reserva(estacionamiento = e, inicioReserva = datetime(2015, 1, 20, 9), finalReserva = datetime(2015, 1, 20, 18),vehiculoTipo = 'Particular').save() self.assertTrue(marzullo(e.id, datetime(2015,1,20,12), datetime(2015,1,20,18)))
def testAddTwoReservation2(self): #esquina, dos reservaciones con incio = apertura estac. e = self.crear_estacionamiento(10) Reserva(estacionamiento = e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 15),vehiculoTipo = 'Particular').save() self.assertTrue(marzullo(e.id, datetime(2015,1,20,6), datetime(2015,1,20,14)))
def testNoSpotParking(self): #borde, capacidad = 0 e = self.crear_estacionamiento(0) self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 15)))
def estacionamiento_reserva(request, _id): _id = int(_id) # Verificamos que el objeto exista antes de continuar try: estacionamiento = Estacionamiento.objects.get(id=_id) except ObjectDoesNotExist: raise Http404 # Verificamos que el estacionamiento este parametrizado if (estacionamiento.apertura is None): return HttpResponse(status=403) # Esta prohibido entrar aun # Si se hace un GET renderizamos los estacionamientos con su formulario if request.method == 'GET': form = ReservaForm() # Si es un POST estan mandando un request elif request.method == 'POST': form = ReservaForm(request.POST) # Verificamos si es valido con los validadores del formulario if form.is_valid(): inicioReserva = form.cleaned_data['inicio'] finalReserva = form.cleaned_data['final'] # debería funcionar con excepciones, y el mensaje debe ser mostrado # en el mismo formulario m_validado = validarHorarioReserva( inicioReserva, finalReserva, estacionamiento.apertura, estacionamiento.cierre, ) # Si no es valido devolvemos el request if not m_validado[0]: return render(request, 'template-mensaje.html', { 'color': 'red', 'mensaje': m_validado[1] }) if marzullo(_id, inicioReserva, finalReserva): reservaFinal = Reserva( estacionamiento=estacionamiento, inicioReserva=inicioReserva, finalReserva=finalReserva, ) monto = Decimal( estacionamiento.tarifa.calcularPrecio( inicioReserva, finalReserva)) request.session['monto'] = float( estacionamiento.tarifa.calcularPrecio( inicioReserva, finalReserva)) request.session['finalReservaHora'] = finalReserva.hour request.session['finalReservaMinuto'] = finalReserva.minute request.session['inicioReservaHora'] = inicioReserva.hour request.session['inicioReservaMinuto'] = inicioReserva.minute request.session['anioinicial'] = inicioReserva.year request.session['mesinicial'] = inicioReserva.month request.session['diainicial'] = inicioReserva.day request.session['aniofinal'] = finalReserva.year request.session['mesfinal'] = finalReserva.month request.session['diafinal'] = finalReserva.day return render( request, 'confirmar.html', { 'id': _id, 'monto': monto, 'reserva': reservaFinal, 'color': 'green', 'mensaje': 'Existe un puesto disponible' }) else: # Cambiar mensaje return render( request, 'template-mensaje.html', { 'color': 'red', 'mensaje': 'No hay un puesto disponible para ese horario' }) return render(request, 'reserva.html', { 'form': form, 'estacionamiento': estacionamiento })
def testOneReservationFullDay( self): #esquina, inicio = aprtura y fin = cierre e = self.crear_estacionamiento(1) self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 6), datetime(2015, 1, 20, 18)))
def testReservarUnPuestoParaCamion(self): #borde, ocupacion = capacidad para Camions e = self.crear_estacionamiento(0,0,0,1) self.assertTrue(marzullo(e.id, datetime(2015,1,20,9), datetime(2015,1,20,15),'Camion'))
def testReservarNoPuestoParaMoto(self): #borde, capacidad para motos = 0 e = self.crear_estacionamiento(3, 0, 3, 4) self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 15), 'Moto'))