def testCreoUnPlanificadorConUnContratoLeAgregoDosMasYVerificoLaCantidadDeContratos( self): contratos = [Contrato(t_inicio=2, t_final=9)] p = PlanificadorGreedy(contratos) p.agregarContrato(Contrato(3, 4)) p.agregarContrato(Contrato(11, 14)) assert len(p.listaDeContratos) == 3
def testCreoDosContratosYVerificoLosTiemposInicialesYFinales(self): c1 = Contrato(t_inicio=4, t_final=9) c2 = Contrato(t_inicio=1, t_final=11) assert c1.t_inicio == 4 assert c1.t_final == 9 assert c2.t_inicio == 1 assert c2.t_final == 11
def testInicializoUnPlanificadorConUnaListaDeDosContratosYVerificoQueTengaLongitudDos( self): contratos = [ Contrato(t_inicio=2, t_final=7), Contrato(t_inicio=4, t_final=6) ] p = PlanificadorGreedy(contratos) assert len(p.listaDeContratos) == 2
def test6CronogramaCorrectoEnunciado(self): c1 = Contrato(0, 27) c2 = Contrato(81, 102) c3 = Contrato(140, 10) p = PlanificadorGreedy([c1, c2, c3]) expected = [c2, c1] cronograma = p.obtenerCronogramaConMayorCantidadDeContratos() self.printDif(cronograma, expected) self.assertCountEqual(cronograma, expected)
def test2PlanificacionCorrecta(self): c1 = Contrato(2, 5) c2 = Contrato(0, 3) c3 = Contrato(4, 11) p = PlanificadorGreedy([c1, c2, c3]) cronograma = p.obtenerCronogramaConMayorCantidadDeContratos() expected = [c2, c3] self.printDif(cronograma, expected) self.assertCountEqual(cronograma, expected)
def testInicializoUnPlanificadorConUnaListaQueNoContieneSoloContratosYVerificoQueSeLanceUnaExcepcion( self): with pytest.raises( Exception, match= "La lista solo puede contener objetos de tipo Contrato, no de tipo <class 'str'>." ): c1 = Contrato(t_inicio=2, t_final=7) c2 = "no soy un contrato" c3 = Contrato(t_inicio=4, t_final=9) p = PlanificadorGreedy([c1, c2, c3])
def test4PlanificacionCorrectaCiclica(self): c1 = Contrato(20, 10) c2 = Contrato(9, 12) c3 = Contrato(11, 13) c4 = Contrato(14, 15) c5 = Contrato(16, 17) p = PlanificadorGreedy([c1, c2, c3, c4, c5]) expected = [c1, c3, c4, c5] cronograma = p.obtenerCronogramaConMayorCantidadDeContratos() self.printDif(cronograma, expected) self.assertCountEqual(cronograma, expected)
def test3PlanificacionCorrecta(self): c1 = Contrato(0, 3) c2 = Contrato(0, 7) c3 = Contrato(4, 9) c4 = Contrato(8, 9) c5 = Contrato(10, 14) p = PlanificadorGreedy([c3, c2, c1, c4, c5]) cronogrma = p.obtenerCronogramaConMayorCantidadDeContratos() expected = [c1, c3, c5] self.printDif(cronogrma, expected) self.assertCountEqual(cronogrma, expected)
def testCreoUnContratoConTiempoInicialInvalidoYVerificoQueLanceUnaExcepcion( self): with pytest.raises( Exception, match= "t_inicio has to be of type 'int' or 'float', not <class 'str'>." ): c = Contrato("a", 4)
def testCreoUnContratoConTiempoFinalInvalidoYVerificoQueLanceUnaExcepcion( self): with pytest.raises( Exception, match= "t_final has to be of type 'int' or 'float', not <class 'NoneType'>." ): c = Contrato(5, None)
def test7PlanificadorCiclico(self): c1 = Contrato(22, 3) c2 = Contrato(6, 9) c3 = Contrato(2, 7) c4 = Contrato(8, 10) c5 = Contrato(11, 13) c6 = Contrato(12, 15) c7 = Contrato(20, 0) p = PlanificadorGreedy([c1, c2, c3, c4, c5, c6, c7]) expected = [c7, c3, c4, c5] cronograma = p.obtenerCronogramaConMayorCantidadDeContratos() self.assertCountEqual(cronograma, expected)
def getProximoContrato(self): """ Devuelve una instancia de un nuevo contrato. Si el contrato tiene una duracion de una semana lo omite y devuelve None. Si no puede leer del archivo, levanta un EOFError. """ linea = self.file.readline() if not linea: raise EOFError tokens = linea.split(",") nombre = tokens[0] t_inicio = int(tokens[1]) t_final = int(tokens[2]) if (t_final - t_inicio) > 168: print( "Los contratos no pueden exceder la duracion de una semana, omitiendo...", file=sys.stderr) return None return Contrato(t_inicio, t_final, nombre)
arriendo_actual.setDisponible(False) arriendo_actual.setArrendatario( logeado ) #enlace entre arriendo y el arrendatario logeado.addContrato( arriendo_actual ) #se anade el contrato de arrendamieno a la lista de contratos del cliente arriendo_actual.getInmueble().setTipo("arrendado") print("Aplico") else: print("No aplico al arriendo de codigo " + str(arriendo_actual.getCodigo())) elif (opciones_cliente == 5): #ver mis contratos actuales print( Contrato.mostrarValoresContratos( logeado.getContratos())) else: print(msg.err_datos) #Datos erroneos cliente elif (opcion1 == 5 ): #Opcion 5 del menu principal registrar nuevo propietario print(msg.registro) print(msg.cedula) cedula_propietario = int(input()) encontrado = False for prop in lista_propietarios: if (prop.getCedula() == cedula_propietario ): #encuentra un propietario con esa cedula print(msg.existe) encontrado = True break
if arriendo_actual==None or not arriendo_actual.getDisponible(): print(msg.codigo_invalido) else: print(arriendo_actual.__str__()) oferta=input(msg.in_aplicar_arriendo) if (oferta == "s" or oferta == "y"): arriendo_actual.setDisponible(False) arriendo_actual.setArrendatario(logeado)#enlace entre arriendo y el arrendatario logeado.addContrato(arriendo_actual)#se anade el contrato de arrendamieno a la lista de contratos del cliente arriendo_actual.getInmueble().setTipo("solicitado_arriendo") print(msg.apli_arr) else: print(msg.no_apli_arr+str(arriendo_actual.getCodigo())) elif(opciones_cliente == 5):#ver mis contratos actuales print(Contrato.mostrarValoresContratos(logeado.getContratos())) elif (opciones_cliente == 6):#ver ofertas de arrendamiento por estrato. print(msg.estrato_ini) estratoIni=int(input()) print(msg.estrato_top) estratoTop=int(input()) disp=Arriendo.buscarArriendoPorEstrato(lista_arriendos,estratoIni,estratoTop) print(disp) elif (opciones_cliente == 7):#ver ofertas de arrendamiento por numero de cuartos print(msg.cuartos_ini) cuartosIni=int(input()) print(msg.cuartos_top) cuartosTop=int(input())
def testCreoUnContratoConTiempoInicialInvalidoYVerificoQueLanceUnaExcepcion( self): with pytest.raises( Exception, match="t_inicio value has to be greater or equal to 0."): c = Contrato(t_inicio=-1, t_final=3)
def testAgregoDosContratosAlPlanificadorYVerificoLaCantidadDeContratos( self): p = PlanificadorGreedy([]) p.agregarContrato(Contrato(t_inicio=2, t_final=11)) p.agregarContrato(Contrato(t_inicio=11, t_final=17)) assert len(p.listaDeContratos) == 2
def testCreoUnContratoConTiempoFinalMenorATiempoInicialYVerificoQueLanceUnaExcepcion( self): with pytest.raises( Exception, match="t_final value has to be greater than t_inicio."): c = Contrato(t_inicio=5, t_final=3)
def novoContrato(self): contrato = Contrato(self) contrato.show()
def testCreoUnContratoYVerificoLosTiemposInicialesYFinales(self): c = Contrato(t_inicio=2, t_final=7) assert c.t_inicio == 2 assert c.t_final == 7
c = i print("ID do Contratante : ") d = input() for i in contratanteobj: if (d == i.getID()): d = i print("ID do Imovel : ") e = input() for i in imovelobj: if (e == i.getID()): e = i print("---------------------------") z = Contrato(a, b, c, d, e) contratoobj.append(z) col4.insert_one({ "ID": z.getID(), "Data": z.getData(), "Corretor": z.getCorretor(), "Contratante": z.getContratante(), "Imovel": z.getImovel() }) if (x == 11): for i in contratoobj: print("------------------------") print((