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 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) e = self.crear_estacionamiento(CAPACIDAD) 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).save() else: Reserva(estacionamiento=e, inicioReserva=hora_reserva, finalReserva=hora_reserva + timedelta(minutes=59)).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 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 test_dos_estacionamiento_muchos_pagos(self): n = 1000 pro1 = Propietario(nombre="PepeUn", ci='V-12345678', tel="0412-1234567") pro1.save() e1 = Estacionamiento( ci_propietario=pro1, nombre="nom1", direccion="dir1", rif="J-123456789", capacidad=n, apertura=time(0, 0), cierre=time(23, 59), ) pro2 = Propietario(nombre="PepeDos", ci='V-12345679', tel="0412-1234568") pro2.save() e2 = Estacionamiento( ci_propietario=pro2, nombre="nom2", direccion="dir3", rif="J-123456789", capacidad=n, apertura=time(0, 0), cierre=time(23, 59), ) e1.save() e2.save() for i in range(0, n): r = Reserva(estacionamiento=e1, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tipoPago="VISTA", reserva=r, monto=100, ) p.save() for i in range(0, n): r = Reserva(estacionamiento=e2, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tipoPago="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 2 and total == 2 * n * 100)
def test_dos_reservaciones_mismo_dia(self): # Borde e=self.crear_estacionamiento(2) 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)).save() Reserva(estacionamiento= e,inicioReserva=ahora,finalReserva=ahora+timedelta(1)).save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_dos_estacionamiento_muchos_pagos(self): n = 1000 prop = Propietario(nombres="prop", apellidos="", cedula="") prop.save() e1 = Estacionamiento( propietario=prop, nombre="nom1", direccion="dir1", rif="J-123456789", capacidad=n, apertura=time(0, 0), cierre=time(23, 59), ) e2 = Estacionamiento( propietario=prop, nombre="nom2", direccion="dir3", rif="J-123456789", capacidad=n, apertura=time(0, 0), cierre=time(23, 59), ) e1.save() e2.save() for i in range(0, n): r = Reserva(estacionamiento=e1, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedulaTipo="V", cedula="1234567", tarjetaTipo="VISTA", reserva=r, monto=100, ) p.save() for i in range(0, n): r = Reserva(estacionamiento=e2, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedulaTipo="V", cedula="1234567", tarjetaTipo="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 2 and total == 2 * n * 100)
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 test_muchos_estacionamiento_con_disintos_rif(self): n = 1000 for i in range(0, n): pro = Propietario(nombre="prop%d" % i, ci='V-12345678%d' % i, tel="0412-1234567") pro.save() e1 = Estacionamiento( ci_propietario=pro, nombre="nom%d" % i, direccion="dir1", rif="J-%i" % (123456789 - i), capacidad=n, 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)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tipoPago="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 100)
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_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_un_estacionamiento_un_pago(self): prop = Propietario(nombres="prop", apellidos="", cedula="") prop.save() e = Estacionamiento( propietario=prop, nombre="nom", direccion="dir", rif="J-123456789", capacidad=20, apertura=time(0, 0), cierre=time(23, 59), ) e.save() r = Reserva(estacionamiento=e, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedulaTipo="V", cedula="1234567", tarjetaTipo="VISTA", reserva=r, monto=150, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 150)
def crear_reserva(h_inicio, h_fin, _estacionamiento): r = Reserva( estacionamiento = _estacionamiento, inicioReserva = h_inicio, finalReserva = h_fin ) r.save() return r
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 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 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 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 crear_Reserva(self): hoy = datetime.now() reserva = Reserva(nombre='nomRes', apellido='apelRes', cedula='V-289074', estacionamiento=self.crear_Estacionamiento(), inicioReserva=datetime(2015, 7, 12, 13, 40), finalReserva=datetime(2015, 7, 12, 18, 40), tipo_puesto='Particular') reserva.save() return reserva
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 test_estacionamiento_reserva_un_dia_sola_casilla_menos_un_minuto(self): # Normal TDD e=self.crear_estacionamiento(1) 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-1 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=ahora+timedelta(1) fecha_fin=ahora+timedelta(days=1,hours=23,minutes=59) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin).save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_estacionamiento_reserva_una_hora_sin_cambio_fecha(self): # Normal TDD e=self.crear_estacionamiento(1) 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).save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_reserva_inicio_antes_de_inicioVentana_fin_despues_inicioVentana(self): # Esquina e=self.crear_estacionamiento(1) 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).save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_estacionamiento_reserva_siete_dias(self): # Esquina e=self.crear_estacionamiento(1) 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).save() self.assertEqual(tasa_reservaciones(e.id,True),salida)
def test_estacionamiento_reserva_un_dia_dos_casillas(self): #Borde e=self.crear_estacionamiento(1) 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]=780 lista_valores[2]=660 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=ahora+timedelta(days=1,hours=11) fecha_fin=ahora+timedelta(days=2,hours=11) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin).save() self.assertEqual(tasa_reservaciones(e.id),salida)
def crear_Reserva3(self): hoy = datetime.now() reserva3 = Reserva( nombre='nomRes3', apellido='apelRes3', cedula='V-2345678', estacionamiento=self.crear_Estacionamiento(), inicioReserva=datetime(2015, 7, 12, 13, 40), finalReserva=datetime(2015, 7, 12, 15, 40), ) reserva3.save() return reserva3
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_reserva_6_dias_misma_hora(self): # Normal TDD e=self.crear_estacionamiento(2) 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)).save() x=tasa_reservaciones(e.id) self.assertEqual(tasa_reservaciones(e.id),salida)
def test_muchos_estacionamiento_mitad_sin_pagos(self): n = 100 m = 10 for i in range(0, n): pro1 = Propietario(nombre="prop1%d" % i, ci="V-12345678%d" % i, tel="0412-1234567") pro2 = Propietario(nombre="prop2%d" % (i + 1), ci="V-12345679%d" % (i + 1), tel="0412-1234567") pro1.save() pro2.save() e1 = Estacionamiento( ci_propietario=pro1, nombre="nom%d" % i, direccion="dir1", rif="J-123456789", capacidad=m, apertura=time(0, 0), cierre=time(23, 59), ) e2 = Estacionamiento( ci_propietario=pro2, nombre="no%d" % i, direccion="dir3", rif="J-123456789", capacidad=m, apertura=time(0, 0), cierre=time(23, 59), ) e1.save() e2.save() for j in range(0, m): r = Reserva(estacionamiento=e1, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tipoPago="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 2 * n and total == n * m * 100)
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_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)