コード例 #1
0
 def test_distancias_existe(self) -> None:
     distancia = direcciones.Distancias(base_de_datos)
     origen = "Gorriti 4300"
     destino = "El Salvador 5218"
     modo = "walking"
     tiempo = distancia.tiempo(origen, destino, modo, buscar=False)
     self.assertEqual(20, tiempo)
コード例 #2
0
 def test_distancia_repetido(self) -> None:
     distancia = direcciones.Distancias(base_de_datos)
     origen = "Gorriti 4000"
     destino = "El Salvador 5218"
     modo = "walking"
     tiempo = distancia.tiempo(origen, destino, modo, buscar=False)
     self.assertAlmostEqual(16.73333333333, tiempo)
コード例 #3
0
 def test_distancias_no_existe(self) -> None:
     distancia = direcciones.Distancias(base_de_datos)
     origen = "Gorriti 440"
     destino = "El Salvador 5218"
     modo = "walking"
     with self.assertRaises(IndexError):
         distancia.tiempo(origen, destino, modo, buscar=False)
コード例 #4
0
 def test_guardar_2(self) -> None:
     distancia = direcciones.Distancias(base_de_datos)
     origen = "desde"
     destino = "hasta"
     modo = "walking"
     tiempo = 10
     distancia._agregar(origen, destino, modo, tiempo)
     actual = distancia.dataframe
     distancia.guardar(base_de_datos_salida)
     guardado = pd.read_csv(base_de_datos_salida)
     pd.testing.assert_frame_equal(actual, guardado)
コード例 #5
0
 def test_agregar_distancia(self) -> None:
     distancia = direcciones.Distancias(base_de_datos)
     origen = "desde"
     destino = "hasta"
     modo = "walking"
     tiempo = 10
     largo_inicial = len(distancia.dataframe)
     distancia._agregar(origen, destino, modo, tiempo)
     largo_final = len(distancia.dataframe)
     ultima_fila = distancia.dataframe.iloc[-1, :]
     self.assertEqual(ultima_fila["Origen"], origen)
     self.assertEqual(ultima_fila["Destino"], destino)
     self.assertEqual(ultima_fila["Modo"], modo)
     self.assertEqual(ultima_fila["Tiempo"], tiempo)
     self.assertEqual(1, largo_final - largo_inicial)
コード例 #6
0
 def test_mascara_destino_1(self) -> None:
     distancia = direcciones.Distancias(base_de_datos)
     mascara = distancia._mascara_direccion("Destino", "El Salvador 5201")
     correcto = [True, True, True, True, True, True, True, False, True]
     self.assertListEqual(correcto, list(mascara))
コード例 #7
0
 def test_mascara_origen_5(self) -> None:
     distancia = direcciones.Distancias(base_de_datos)
     mascara = distancia._mascara_direccion("Origen", "Gorraiti 4001")
     correcto = [False, False, False, False, False, False, False, False, False]
     self.assertListEqual(correcto, list(mascara))
コード例 #8
0
 def test_construccion_falla(self) -> None:
     distancia = direcciones.Distancias(base_de_datos_no_existe)
     lista_correcta = ["Origen", "Destino", "Modo", "Horario", "Tiempo"]
     self.assertListEqual(list(distancia.dataframe.columns), lista_correcta)
コード例 #9
0
 def test_normalizar_direccion(self) -> None:
     distancia = direcciones.Distancias(base_de_datos)
     direccion = "Santa Fe al 4159"
     direccion = distancia._normalizar_direccion(direccion)
     self.assertEqual("Santa Fe 4101", direccion)
コード例 #10
0
 def test_guardar_1(self) -> None:
     distancia = direcciones.Distancias(base_de_datos)
     actual = distancia.dataframe
     distancia.guardar()
     guardado = pd.read_csv(base_de_datos)
     pd.testing.assert_frame_equal(actual, guardado)
コード例 #11
0
 def test_mascara_modo_2(self) -> None:
     distancia = direcciones.Distancias(base_de_datos)
     mascara = distancia._mascara_modo("bicycling")
     correcto = [False, False, True, True, False, False, False, False, False]
     self.assertListEqual(correcto, list(mascara))
コード例 #12
0
 def test_mascara_destino_3(self) -> None:
     distancia = direcciones.Distancias(base_de_datos)
     mascara = distancia._mascara_direccion("Destino", "Otro 5218")
     correcto = [False, False, False, False, False, False, False, False, False]
     self.assertListEqual(correcto, list(mascara))
コード例 #13
0
import logging

import pandas as pd

from tucasa import direcciones

logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    level=logging.DEBUG)
logger = logging.getLogger(__name__)
propiedades = pd.read_csv("data/resultados.csv", index_col=0)
destinos = pd.read_csv("data/destinos.csv", index_col=0)
distancias = direcciones.Distancias("data/bd_distancias.csv")
for etiqueta in destinos["Etiqueta"]:
    propiedades[etiqueta] = 0
for i, origen in enumerate(propiedades["Direccion"]):
    for viaje in destinos.iterrows():
        destino = viaje[1]["Destino"]
        modo = viaje[1]["Modo"]
        etiqueta = viaje[1]["Etiqueta"]
        tiempo = distancias.tiempo(origen, destino, modo)
        logger.info((f"Modo: {modo}, Origen: {origen}, Destino: {destino}"
                     f", Etiqueta: {etiqueta}"))
        propiedades[etiqueta].iloc[i] = tiempo
# Actualizar las distancias con las nuevas calculadas
distancias.guardar("data/bd_distancias.csv")
propiedades.to_csv("data/resultados_con_distancias.csv")