def test_estacionamiento_sin_pagos(self): p = Puestos( particular = 20, moto = 20, carga = 20, discapacitado = 20 ) p.save() e = Estacionamiento( propietario = self.crear_propietario(), nombre = "nom", direccion = "dir", telefono1 = "041414141111", telefono2 = "041414141112", telefono3 = "04141414111", email1 = "*****@*****.**", email2 = "*****@*****.**", rif = "J-123456789", capacidad = p, apertura = time(0,0), cierre = time(23,59), ) e.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 0)
def test_muchos_estacionamiento_sin_pagos(self): n = 1000 p = Puestos(particular=n, moto=20, carga=20, discapacitado=20) p.save() for i in range(0, n): prop = Propietario( nombre="prop%d" % i, apellido="apell", cedula="V-041414141111", telefono="041414141112", email="*****@*****.**", ) prop.save() e1 = Estacionamiento( propietario=prop, nombre="nom%d" % i, direccion="dir1", rif="J-123456789", capacidad=p, apertura=time(0, 0), cierre=time(23, 59), ) e1.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == n and total == 0)
def test_muchos_estacionamiento_sin_pagos(self): n = 1000 p = Puestos( particular = n, moto = 20, carga = 20, discapacitado = 20 ) p.save() for i in range(0,n): prop = Propietario( nombre = "prop%d"%i, apellido = "apell", cedula = "V-041414141111", telefono = "041414141112", email = "*****@*****.**", ) prop.save() e1 = Estacionamiento( propietario = prop, nombre = "nom%d"%i, direccion = "dir1", rif = "J-123456789", capacidad = p, apertura = time(0,0), cierre = time(23,59), ) e1.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == n and total == 0)
def test_reservaciones_de_una_hora_24_horas(self): # Esquina CAPACIDAD = 10 HORAS_SEMANA = 168 UNA_HORA = timedelta(hours=1) ahora = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) n = CAPACIDAD p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) for i in range(CAPACIDAD): hora_reserva = ahora for j in range(HORAS_SEMANA): if j != HORAS_SEMANA - 1: Reserva(estacionamiento=e, inicioReserva=hora_reserva, finalReserva=hora_reserva + UNA_HORA, tipo_puesto='Particular').save() else: Reserva(estacionamiento=e, inicioReserva=hora_reserva, finalReserva=hora_reserva + timedelta(minutes=59), tipo_puesto='Particular').save() hora_reserva += UNA_HORA lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [60 * CAPACIDAD * 24 for i in range(7)] lista_valores[6] = 60 * CAPACIDAD * 24 - CAPACIDAD salida = dict(zip(lista_fechas, lista_valores)) self.assertEqual(tasa_reservaciones(e.id), salida)
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 test_reservaciones_de_una_hora_6_a_18_horas(self): # Esquina CAPACIDAD = 10 HORAS_DIA = 12 UNA_HORA = timedelta(hours=1) ahora = datetime.now().replace(hour=6, minute=0, second=0, microsecond=0) n = CAPACIDAD p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p, time(6, 0), time(18, 0)) for i in range(CAPACIDAD): hora_reserva = ahora for j in range(7): for k in range(HORAS_DIA): Reserva(estacionamiento=e, inicioReserva=hora_reserva, finalReserva=hora_reserva + UNA_HORA, tipo_puesto='Particular').save() hora_reserva += UNA_HORA hora_reserva = ahora + timedelta(j + 1) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [60 * CAPACIDAD * HORAS_DIA for i in range(7)] salida = dict(zip(lista_fechas, lista_valores)) self.assertEqual(tasa_reservaciones(e.id), salida)
def test_estacionamiento_reserva_una_hora_cambio_fecha_mediaNoche( self): # Esquina n = 1 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [0 for i in range(7)] lista_valores[1] = 45 lista_valores[2] = 1 salida = dict(zip(lista_fechas, lista_valores)) fecha_inicio = (ahora + timedelta(1)).replace(hour=23, minute=15, second=0) fecha_fin = fecha_inicio + timedelta(minutes=46) Reserva(estacionamiento=e, inicioReserva=fecha_inicio, finalReserva=fecha_fin, tipo_puesto='Particular').save() x = tasa_reservaciones(e.id) self.assertEqual(x, salida)
def test_un_estacionamiento_muchos_pagos(self): n = 1000 p = Puestos(particular=n, moto=20, carga=20, discapacitado=20) p.save() e = Estacionamiento( propietario=self.crear_propietario(), nombre="nom", direccion="dir", telefono1="041414141111", telefono2="041414141112", telefono3="04141414111", email1="*****@*****.**", email2="*****@*****.**", rif="J-123456789", capacidad=p, apertura=time(0, 0), cierre=time(23, 59), ) e.save() for i in range(0, n): r = Reserva(estacionamiento=e, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0), tipo_puesto='Particular') r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tarjetaTipo="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == n * 100)
def test_reservaciones_de_una_hora_24_horas(self): # Esquina CAPACIDAD = 10 HORAS_SEMANA = 168 UNA_HORA = timedelta(hours=1) ahora = datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) n = CAPACIDAD p = Puestos(particular = n, moto = n, carga = n, discapacitado = n ) p.save() e=self.crear_estacionamiento(p) for i in range(CAPACIDAD): hora_reserva = ahora for j in range(HORAS_SEMANA): if j!=HORAS_SEMANA-1: Reserva(estacionamiento=e,inicioReserva=hora_reserva,finalReserva=hora_reserva+UNA_HORA, tipo_puesto = 'Particular').save() else: Reserva(estacionamiento=e,inicioReserva=hora_reserva,finalReserva=hora_reserva+timedelta(minutes=59), tipo_puesto = 'Particular').save() hora_reserva += UNA_HORA lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[60*CAPACIDAD*24 for i in range(7)] lista_valores[6]=60*CAPACIDAD*24-CAPACIDAD salida=dict(zip(lista_fechas,lista_valores)) self.assertEqual(tasa_reservaciones(e.id),salida)
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 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 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 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 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 test_estacionamiento_sin_reservas(self): # Esquina n = 1 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now() lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [0 for i in range(7)] salida = dict(zip(lista_fechas, lista_valores)) self.assertEqual(tasa_reservaciones(e.id), salida)
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 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 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 test_estacionamiento_sin_reservas(self): # Esquina n = 1 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n ) p.save() e=self.crear_estacionamiento(p) ahora=datetime.now() lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] salida=dict(zip(lista_fechas,lista_valores)) self.assertEqual(tasa_reservaciones(e.id),salida)
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 test_estacionamiento_vacio(self): n = 2 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n ) p.save() e=self.crear_estacionamiento(p) ahora=datetime.now() lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] ocupacion1=dict(zip(lista_fechas,lista_valores)) calcular_porcentaje_de_tasa(hora_apertura=e.apertura,hora_cierre=e.cierre,capacidad=2, ocupacion=ocupacion1) self.assertEqual(dict(zip(lista_fechas,[Decimal(0) for i in range(7)])),ocupacion1)
def test_estacionamiento_vacio(self): n = 2 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now() lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [0 for i in range(7)] ocupacion1 = dict(zip(lista_fechas, lista_valores)) calcular_porcentaje_de_tasa(hora_apertura=e.apertura, hora_cierre=e.cierre, capacidad=2, ocupacion=ocupacion1) self.assertEqual( dict(zip(lista_fechas, [Decimal(0) for i in range(7)])), ocupacion1)
def test_dos_reservaciones_mismo_dia(self): # Borde n = 2 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n ) p.save() e=self.crear_estacionamiento(p) ahora=datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] lista_valores[0]=1440*2 salida=dict(zip(lista_fechas,lista_valores)) Reserva(estacionamiento= e,inicioReserva=ahora,finalReserva=ahora+timedelta(1), tipo_puesto = 'Particular').save() Reserva(estacionamiento= e,inicioReserva=ahora,finalReserva=ahora+timedelta(1), tipo_puesto = 'Particular').save() self.assertEqual(tasa_reservaciones(e.id),salida)
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 test_muchos_estacionamiento_con_disintos_rif(self): n = 1000 for i in range(0,n): prop = Propietario( nombre = "prop%d"%i, apellido = "apell", cedula = "V-041414141111", telefono = "041414141112", email = "*****@*****.**", ) prop.save() p = Puestos( particular = n, moto = 20, carga = 20, discapacitado = 20 ) p.save() e1 = Estacionamiento( propietario = prop, nombre = "nom%d"%i, direccion = "dir1", rif = "J-%i"%(123456789-i), capacidad = p, apertura = time(0,0), cierre = time(23,59), ) e1.save() r = Reserva( estacionamiento = e1, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0), tipo_puesto = 'Particular' ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedula = "V-1234567", tarjetaTipo = "VISTA", reserva = r, monto = 100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 100)
def test_estacionamiento_horario_restringido_toda_capacidad_primer_dia(self): n = 2 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n ) p.save() e=self.crear_estacionamiento(p,time(6,0),time(18,45)) ahora=datetime.now() lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] lista_valores[0]=765*2 ocupacion1=dict(zip(lista_fechas,lista_valores)) calcular_porcentaje_de_tasa(hora_apertura=e.apertura,hora_cierre=e.cierre,capacidad=2, ocupacion=ocupacion1) lista_valores2=[Decimal(0) for i in range(7)] lista_valores2[0]=Decimal(50)*2 self.assertEqual(dict(zip(lista_fechas,lista_valores2)),ocupacion1)
def test_estacionamiento_reserva_una_hora_sin_cambio_fecha( self): # Normal TDD n = 1 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now().replace(second=0, microsecond=0) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [0 for i in range(7)] lista_valores[1] = 60 salida = dict(zip(lista_fechas, lista_valores)) fecha_inicio = (ahora + timedelta(1)).replace(hour=15, minute=15) fecha_fin = fecha_inicio.replace(hour=16, minute=15) Reserva(estacionamiento=e, inicioReserva=fecha_inicio, finalReserva=fecha_fin, tipo_puesto='Particular').save() self.assertEqual(tasa_reservaciones(e.id), salida)
def test_estacionamiento_reserva_un_dia_sola_casilla(self): # Borde n = 1 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n ) p.save() e=self.crear_estacionamiento(p) ahora=datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] lista_valores[1]=60*24 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=ahora+timedelta(1) fecha_fin=ahora+timedelta(days=2) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin, tipo_puesto = 'Particular').save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_reserva_inicio_antes_de_inicioVentana_fin_despues_inicioVentana(self): # Esquina n = 1 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n ) p.save() e=self.crear_estacionamiento(p) ahora=datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] lista_valores[0]=1 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=ahora-timedelta(1) fecha_fin=ahora.replace(hour=0,minute=1) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin, tipo_puesto = 'Particular').save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_estacionamiento_horario_restringido_toda_capacidad_primer_dia( self): n = 2 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p, time(6, 0), time(18, 45)) ahora = datetime.now() lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [0 for i in range(7)] lista_valores[0] = 765 * 2 ocupacion1 = dict(zip(lista_fechas, lista_valores)) calcular_porcentaje_de_tasa(hora_apertura=e.apertura, hora_cierre=e.cierre, capacidad=2, ocupacion=ocupacion1) lista_valores2 = [Decimal(0) for i in range(7)] lista_valores2[0] = Decimal(50) * 2 self.assertEqual(dict(zip(lista_fechas, lista_valores2)), ocupacion1)
def test_estacionamiento_reserva_siete_dias(self): # Esquina n = 1 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n ) p.save() e=self.crear_estacionamiento(p) ahora=datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[60*24 for i in range(7)] lista_valores[6]=60*24-1 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=ahora fecha_fin=ahora+timedelta(days=6,hours=23,minutes=59,seconds=0) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin, tipo_puesto = 'Particular').save() self.assertEqual(tasa_reservaciones(e.id,True),salida)
def test_estacionamiento_reserva_una_hora_sin_cambio_fecha(self): # Normal TDD n = 1 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n ) p.save() e=self.crear_estacionamiento(p) ahora=datetime.now().replace(second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] lista_valores[1]=60 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=(ahora+timedelta(1)).replace(hour=15,minute=15) fecha_fin=fecha_inicio.replace(hour=16,minute=15) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin, tipo_puesto = 'Particular').save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_dos_estacionamiento_muchos_pagos(self): n = 1000 p = Puestos( particular = n, moto = 20, carga = 20, discapacitado = 20 ) p.save() e = Estacionamiento( propietario = self.crear_propietario(), nombre = "nom", direccion = "dir", telefono1 = "041414141111", telefono2 = "041414141112", telefono3 = "04141414111", email1 = "*****@*****.**", email2 = "*****@*****.**", rif = "J-123456789", capacidad = p, apertura = time(0,0), cierre = time(23,59), ) e.save() for i in range(0,n): r = Reserva( estacionamiento = e, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0), tipo_puesto = 'Particular' ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedula = "V-1234567", tarjetaTipo = "VISTA", reserva = r, monto = 100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == n*100)
def test_llamada_a_reserva(self): p = Puestos(particular = 20, moto = 20, carga = 20, discapacitado = 20 ) p.save() e = Estacionamiento( propietario = self.crear_propietario(), nombre = "nom", direccion = "dir", rif = "rif", capacidad = p, apertura = time(0,0), cierre = time(23,59), ) e.save() response = self.client.get('/estacionamientos/1/reserva') self.assertEqual(response.status_code, 200)
def test_estacionamiento_reserva_un_dia_sola_casilla(self): # Borde n = 1 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [0 for i in range(7)] lista_valores[1] = 60 * 24 salida = dict(zip(lista_fechas, lista_valores)) fecha_inicio = ahora + timedelta(1) fecha_fin = ahora + timedelta(days=2) Reserva(estacionamiento=e, inicioReserva=fecha_inicio, finalReserva=fecha_fin, tipo_puesto='Particular').save() self.assertEqual(tasa_reservaciones(e.id), salida)
def test_estacionamiento_reserva_siete_dias(self): # Esquina n = 1 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [60 * 24 for i in range(7)] lista_valores[6] = 60 * 24 - 1 salida = dict(zip(lista_fechas, lista_valores)) fecha_inicio = ahora fecha_fin = ahora + timedelta(days=6, hours=23, minutes=59, seconds=0) Reserva(estacionamiento=e, inicioReserva=fecha_inicio, finalReserva=fecha_fin, tipo_puesto='Particular').save() self.assertEqual(tasa_reservaciones(e.id, True), salida)
def test_estacionamiento_sin_pagos(self): p = Puestos(particular=20, moto=20, carga=20, discapacitado=20) p.save() e = Estacionamiento( propietario=self.crear_propietario(), nombre="nom", direccion="dir", telefono1="041414141111", telefono2="041414141112", telefono3="04141414111", email1="*****@*****.**", email2="*****@*****.**", rif="J-123456789", capacidad=p, apertura=time(0, 0), cierre=time(23, 59), ) e.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 0)
def test_estacionamiento_reserva_una_hora_cambio_fecha_mediaNoche(self): # Esquina n = 1 p = Puestos(particular = n, moto = n, carga = n, discapacitado = n ) p.save() e=self.crear_estacionamiento(p) ahora=datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] lista_valores[1]=45 lista_valores[2]=1 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=(ahora+timedelta(1)).replace(hour=23,minute=15,second=0) fecha_fin=fecha_inicio+timedelta(minutes=46) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin, tipo_puesto = 'Particular').save() x=tasa_reservaciones(e.id) self.assertEqual(x,salida)
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 test_reserva_inicio_antes_de_inicioVentana_fin_despues_inicioVentana( self): # Esquina n = 1 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [0 for i in range(7)] lista_valores[0] = 1 salida = dict(zip(lista_fechas, lista_valores)) fecha_inicio = ahora - timedelta(1) fecha_fin = ahora.replace(hour=0, minute=1) Reserva(estacionamiento=e, inicioReserva=fecha_inicio, finalReserva=fecha_fin, tipo_puesto='Particular').save() self.assertEqual(tasa_reservaciones(e.id), salida)
def test_reserva_6_dias_misma_hora(self): # Normal TDD n = 2 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [1440 for i in range(7)] lista_valores[0] = 0 lista_valores[1] = 0 lista_valores[2] = 18 * 60 lista_valores[6] = 6 * 60 salida = dict(zip(lista_fechas, lista_valores)) Reserva(estacionamiento=e, inicioReserva=ahora.replace(hour=6) + timedelta(2), finalReserva=ahora.replace(hour=6) + timedelta(6), tipo_puesto='Particular').save() x = tasa_reservaciones(e.id) self.assertEqual(tasa_reservaciones(e.id), salida)
def test_dos_reservaciones_mismo_dia(self): # Borde n = 2 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [0 for i in range(7)] lista_valores[0] = 1440 * 2 salida = dict(zip(lista_fechas, lista_valores)) Reserva(estacionamiento=e, inicioReserva=ahora, finalReserva=ahora + timedelta(1), tipo_puesto='Particular').save() Reserva(estacionamiento=e, inicioReserva=ahora, finalReserva=ahora + timedelta(1), tipo_puesto='Particular').save() self.assertEqual(tasa_reservaciones(e.id), salida)
def test_muchos_estacionamiento_con_disintos_rif(self): n = 1000 for i in range(0, n): prop = Propietario( nombre="prop%d" % i, apellido="apell", cedula="V-041414141111", telefono="041414141112", email="*****@*****.**", ) prop.save() p = Puestos(particular=n, moto=20, carga=20, discapacitado=20) p.save() e1 = Estacionamiento( propietario=prop, nombre="nom%d" % i, direccion="dir1", rif="J-%i" % (123456789 - i), capacidad=p, apertura=time(0, 0), cierre=time(23, 59), ) e1.save() r = Reserva(estacionamiento=e1, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0), tipo_puesto='Particular') r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tarjetaTipo="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 100)