Esempio n. 1
0
def addYearTree(catalog, row):
    """
    Adiciona el libro al arbol anual key=original_publication_year
    """
    yearText = row['Start_Time']
    if row['Start_Time']:
        yearText = row['Start_Time'][0:row['Start_Time'].index(' ')]
    year = strToDate(yearText, '%Y-%m-%d')
    yearNode = tree.get(catalog['yearsTree'], year, greater)
    if yearNode:
        yearNode['count'] += 1
        sev = int(row['Severity'])
        yearNode['severity'][sev] += 1
        city = row['City']
        ratingCount = map.get(yearNode['ratingMap'], city, compareByKey)
        if ratingCount:
            ratingCount['Accidentes'] += 1
        else:
            ciudad = {'Ciudad': row['City'], 'Accidentes': 1}
            map.put(yearNode['ratingMap'], ciudad['Ciudad'], ciudad,
                    compareByKey)

        state = row['State']
        state_count = tree.get(yearNode['state'], state, greater)
        if state_count:
            state_count['Accidentes'] += 1
        else:
            estado = {'Estado': row['State'], 'Accidentes': 1}
            tree.put(yearNode['state'], estado['Estado'], estado, greater)
    else:
        yearNode = newYear(year, row)
        catalog['yearsTree'] = tree.put(catalog['yearsTree'], year, yearNode,
                                        greater)
Esempio n. 2
0
def cambio_de_llaves_valor(catalog, fecha):
    fecha = strToDate(fecha, '%Y-%m-%d')
    años = tree.valueSet(catalog['yearsTree'])
    new_tree = tree.newMap()

    for i in range(1, lt.size(años)):
        elemento = lt.getElement(años, i)
        estados = tree.valueSet(elemento['state'])
        for x in range(1, lt.size(estados)):
            lt.getElement(estados, x)
            tree.put(new_tree, elemento['Accidentes'], elemento, greater)

    años['state'] = new_tree
Esempio n. 3
0
 def test_rank(self):
     tree = omap.newMap()
     tree = omap.put(tree, 'A', 'Title 50', self.comparekeys)
     tree = omap.put(tree, 'C', 'Title 70', self.comparekeys)
     tree = omap.put(tree, 'E', 'Title 30', self.comparekeys)
     tree = omap.put(tree, 'H', 'Title 80', self.comparekeys)
     tree = omap.put(tree, 'L', 'Title 90', self.comparekeys)
     tree = omap.put(tree, 'M', 'Title 20', self.comparekeys)
     tree = omap.put(tree, 'P', 'Title 50', self.comparekeys)
     tree = omap.put(tree, 'R', 'Title 60', self.comparekeys)
     tree = omap.put(tree, 'S', 'Title 10', self.comparekeys)
     tree = omap.put(tree, 'X', 'Title 40', self.comparekeys)
     self.assertEqual(omap.rank(tree, "L", self.greater), 4)
Esempio n. 4
0
    def test_DisorderedRBT(self):
        """
        """
        tree = omap.newMap()

        tree = omap.put(tree, 'S', 'Title 50', self.comparekeys)
        tree = omap.put(tree, 'E', 'Title 70', self.comparekeys)
        tree = omap.put(tree, 'A', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'R', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'C', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'H', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'X', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'M', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'P', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'L', 'Title 30', self.comparekeys)
Esempio n. 5
0
 def test_valueRange(self):
     tree = omap.newMap()
     tree = omap.put(tree, 'A', 'Title 50', self.comparekeys)
     tree = omap.put(tree, 'C', 'Title 70', self.comparekeys)
     tree = omap.put(tree, 'E', 'Title 30', self.comparekeys)
     tree = omap.put(tree, 'H', 'Title 80', self.comparekeys)
     tree = omap.put(tree, 'L', 'Title 90', self.comparekeys)
     tree = omap.put(tree, 'M', 'Title 20', self.comparekeys)
     tree = omap.put(tree, 'P', 'Title 50', self.comparekeys)
     tree = omap.put(tree, 'R', 'Title 60', self.comparekeys)
     tree = omap.put(tree, 'S', 'Title 10', self.comparekeys)
     tree = omap.put(tree, 'X', 'Title 40', self.comparekeys)
     kList = (omap.valueRange(tree, "A", "R", self.greater))
     print("\nRBT keys between R and X")
     print(kList)
Esempio n. 6
0
def addBookMap (catalog, row):
    """
    Adiciona libro al map con key=title
    """
    book = newBook(row)
    #catalog['booksTree'] = map.put(catalog['booksTree'], int(book['book_id']), book, greater)
    catalog['booksTree']  = map.put(catalog['booksTree'] , book['title'], book, greater)
Esempio n. 7
0
def DataDistributionByDate(catalog, tabla, row, dia_fecha):
    contiene_fecha = map.get(tabla, dia_fecha, greater)
    if contiene_fecha == None:
        datos = {"estados_accidentados": {}, "estado_mas_accidentado": None, "num_accidentes_estado_mas_accidentado": 0}
        # 4 Severidades posibles
        datos[1] = {"size":0, "data": hashmap.newMap(1613, maptype='CHAINING'), "num_accidentes_ciudad_mas_accidentada": 0, "ciudad_mas_accidentada": None, "num_ciudades_accidentadas": 0, "ciudades_accidentadas":[]}
        datos[2] = {"size":0, "data": hashmap.newMap(1613, maptype='CHAINING'), "num_accidentes_ciudad_mas_accidentada": 0, "ciudad_mas_accidentada": None, "num_ciudades_accidentadas": 0, "ciudades_accidentadas":[]}
        datos[3] = {"size":0, "data": hashmap.newMap(1613, maptype='CHAINING'), "num_accidentes_ciudad_mas_accidentada": 0, "ciudad_mas_accidentada": None, "num_ciudades_accidentadas": 0, "ciudades_accidentadas":[]}
        datos[4] = {"size":0, "data": hashmap.newMap(1613, maptype='CHAINING'), "num_accidentes_ciudad_mas_accidentada": 0, "ciudad_mas_accidentada": None, "num_ciudades_accidentadas": 0, "ciudades_accidentadas":[]}
        if datos["estados_accidentados"].get(row["State"]) == None:
            datos["estados_accidentados"][row["State"]] = 1
        else:
            datos["estados_accidentados"][row["State"]] += 1
        if datos["estados_accidentados"][row["State"]] > datos["num_accidentes_estado_mas_accidentado"]:
            datos["num_accidentes_estado_mas_accidentado"] = datos["estados_accidentados"][row["State"]]
            datos["estado_mas_accidentado"] = row["State"]
        catalog["accidentsByDate"] = map.put(catalog["accidentsByDate"], dia_fecha, {"size":0,"data":datos}, greater)
        contiene_fecha = map.get(catalog["accidentsByDate"], dia_fecha, greater)
    contiene_fecha["size"] += 1
    contiene_fecha["data"][int(row["Severity"])]["size"] += 1
    contiene_ciudad = hashmap.get(contiene_fecha["data"][int(row["Severity"])]["data"], row["City"], compareByKey)
    if contiene_ciudad == None:
        datos = {"nombre":row["City"], "accidentes":0}
        hashmap.put(contiene_fecha["data"][int(row["Severity"])]["data"], row["City"], datos, compareByKey)
        contiene_ciudad = hashmap.get(contiene_fecha["data"][int(row["Severity"])]["data"], row["City"], compareByKey)
        contiene_fecha["data"][int(row["Severity"])]["num_ciudades_accidentadas"] += 1
        contiene_fecha["data"][int(row["Severity"])]["ciudades_accidentadas"].append(row["City"])
    contiene_ciudad["value"]["accidentes"] += 1
    if contiene_ciudad["value"]["accidentes"] > contiene_fecha["data"][int(row["Severity"])]["num_accidentes_ciudad_mas_accidentada"]:
        contiene_fecha["data"][int(row["Severity"])]["num_accidentes_ciudad_mas_accidentada"] = contiene_ciudad["value"]["accidentes"]
        contiene_fecha["data"][int(row["Severity"])]["ciudad_mas_accidentada"] = contiene_ciudad["value"]["nombre"]
Esempio n. 8
0
def addAccidentMap (catalog, row):
    """
    Adiciona accidente al map y a la tabla hash
    """
    #catalog['booksTree'] = map.put(catalog['booksTree'], int(book['book_id']), book, greater)
    #catalog['booksTree']  = map.put(catalog['booksTree'] , book['title'], book, greater)
    
    #Se ingresa cada accidente a la tabla hash con un único valor/llave : su fecha exacta

    tabla = catalog["accidentsByDate"]
    tabla_todos = catalog["accidentsHash"]
    arbol = catalog["accidentsTree"]
    accident = newAccident(row)
    fecha = int(sacarfecha(accident["start_time"]))

    dia_fecha = int(((fecha-18000)//86400)-16801)
    DataDistributionByDate(catalog, tabla, row, dia_fecha)

    fecha_encontrada = True
    while fecha_encontrada:
        encontrado = map.contains(arbol, fecha, greater)
        if encontrado:
            fecha += 1
        else:
            catalog["accidentsTree"] = map.put(arbol, fecha, accident, greater)
            hashmap.put(tabla_todos, fecha, accident, greater)
            fecha_encontrada = False
Esempio n. 9
0
 def test_ceiling(self):
     """
     """
     tree = omap.newMap()
     tree = omap.put(tree, 'A', 'Title 50', self.comparekeys)
     tree = omap.put(tree, 'C', 'Title 70', self.comparekeys)
     tree = omap.put(tree, 'E', 'Title 30', self.comparekeys)
     tree = omap.put(tree, 'H', 'Title 80', self.comparekeys)
     tree = omap.put(tree, 'L', 'Title 90', self.comparekeys)
     tree = omap.put(tree, 'M', 'Title 20', self.comparekeys)
     tree = omap.put(tree, 'P', 'Title 50', self.comparekeys)
     tree = omap.put(tree, 'R', 'Title 60', self.comparekeys)
     tree = omap.put(tree, 'S', 'Title 10', self.comparekeys)
     tree = omap.put(tree, 'X', 'Title 40', self.comparekeys)
     res = omap.ceiling(tree, 'G', self.comparekeys)
     self.assertEqual(res['key'], 'H')
Esempio n. 10
0
 def test_orderedData(self):
     """
     """
     tree = omap.newMap()
     tree = omap.put(tree, 'A', 'Title 50', self.comparekeys)
     tree = omap.put(tree, 'C', 'Title 70', self.comparekeys)
     tree = omap.put(tree, 'E', 'Title 30', self.comparekeys)
     tree = omap.put(tree, 'H', 'Title 80', self.comparekeys)
     tree = omap.put(tree, 'L', 'Title 80', self.comparekeys)
     tree = omap.put(tree, 'M', 'Title 30', self.comparekeys)
     tree = omap.put(tree, 'P', 'Title 30', self.comparekeys)
     tree = omap.put(tree, 'R', 'Title 80', self.comparekeys)
     tree = omap.put(tree, 'S', 'Title 30', self.comparekeys)
     tree = omap.put(tree, 'X', 'Title 30', self.comparekeys)
     self.assertEqual(omap.size(tree), 10)
     print(tree)
Esempio n. 11
0
    def test_height(self):
        """
        """
        tree = omap.newMap()

        tree = omap.put(tree, 'S', 'Title 50', self.comparekeys)
        tree = omap.put(tree, 'E', 'Title 70', self.comparekeys)
        tree = omap.put(tree, 'A', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'R', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'C', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'H', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'X', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'M', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'P', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'L', 'Title 30', self.comparekeys)
        self.assertEqual(omap.height(tree), 3)
Esempio n. 12
0
def addBookTree (catalog, row):
    """
    Adiciona libro al tree con key=title
    """
    book = newBook(row)
    #catalog['booksTitleTree'] = tree.put(catalog['booksTitleTree'], int(book['book_id']), book, greater)
    catalog['booksTitleTree']  = tree.put(catalog['booksTitleTree'] , book['title'], book, greater)
Esempio n. 13
0
    def test_maxKey(self):
        """
        """
        tree = omap.newMap()

        tree = omap.put(tree, 'S', 'Title 50', self.comparekeys)
        tree = omap.put(tree, 'E', 'Title 70', self.comparekeys)
        tree = omap.put(tree, 'A', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'R', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'C', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'H', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'X', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'M', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'P', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'L', 'Title 30', self.comparekeys)
        print("\nRBT datos aleatorios")
        self.assertEqual(omap.max(tree)["key"], "X")
Esempio n. 14
0
    def test_RBT2(self):
        """
        """
        tree = omap.newMap()

        tree = omap.put(tree, 'A', 'Title 50', self.comparestrkeys)
        tree = omap.put(tree, 'C', 'Title 70', self.comparestrkeys)
        tree = omap.put(tree, 'E', 'Title 30', self.comparestrkeys)
        tree = omap.put(tree, 'H', 'Title 80', self.comparestrkeys)
        tree = omap.put(tree, 'L', 'Title 80', self.comparestrkeys)
        tree = omap.put(tree, 'M', 'Title 30', self.comparestrkeys)
        tree = omap.put(tree, 'P', 'Title 30', self.comparestrkeys)
        tree = omap.put(tree, 'R', 'Title 80', self.comparestrkeys)
        tree = omap.put(tree, 'S', 'Title 30', self.comparestrkeys)
        tree = omap.put(tree, 'X', 'Title 30', self.comparestrkeys)
        print("\nRBT Ordenado")
        print(tree)
Esempio n. 15
0
    def test_DisorderedRBT(self):
        """
        """
        tree = omap.newMap()

        tree = omap.put(tree, 'S', 'Title 50', self.comparekeys)
        tree = omap.put(tree, 'E', 'Title 70', self.comparekeys)
        tree = omap.put(tree, 'A', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'R', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'C', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'H', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'X', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'M', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'P', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'L', 'Title 30', self.comparekeys)
        print("\nRBT datos aleatorios")
        self.assertEqual(omap.size(tree), 10)
Esempio n. 16
0
    def test_duplicatedData(self):
        """
        """
        tree = omap.newMap()

        tree = omap.put(tree, 'S', 'Title 50', self.comparekeys)
        tree = omap.put(tree, 'S', 'Title 70', self.comparekeys)
        tree = omap.put(tree, 'A', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'R', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'R', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'H', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'X', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'M', 'Title 80', self.comparekeys)
        tree = omap.put(tree, 'M', 'Title 30', self.comparekeys)
        tree = omap.put(tree, 'L', 'Title 30', self.comparekeys)
        print("\nRBT datos duplicados")
        self.assertEqual(omap.size(tree), 7)
Esempio n. 17
0
 def test_keys(self):
     """
     """
     tree = omap.newMap()
     tree = omap.put(tree, 'A', 'Title 50', self.comparekeys)
     tree = omap.put(tree, 'C', 'Title 70', self.comparekeys)
     tree = omap.put(tree, 'E', 'Title 30', self.comparekeys)
     tree = omap.put(tree, 'H', 'Title 80', self.comparekeys)
     tree = omap.put(tree, 'L', 'Title 90', self.comparekeys)
     tree = omap.put(tree, 'M', 'Title 20', self.comparekeys)
     tree = omap.put(tree, 'P', 'Title 50', self.comparekeys)
     tree = omap.put(tree, 'R', 'Title 60', self.comparekeys)
     tree = omap.put(tree, 'S', 'Title 10', self.comparekeys)
     tree = omap.put(tree, 'X', 'Title 40', self.comparekeys)
     kList = omap.keys(tree, 'R', 'X', self.comparekeys)
     print("\nRBT keys between R and X")
     print(kList)
Esempio n. 18
0
def addAccidentMap1(catalog, row):
    """
    Adiciona libro al map con key=title
    """
    accident = newAccident(row)
    #catalog['booksTree'] = map.put(catalog['booksTree'], int(book['book_id']), book, greater)
    catalog['AccidentsTree'] = tree.put(catalog['AccidentsTree'],
                                        accident['Time']["DateHI"], accident,
                                        greater)
Esempio n. 19
0
 def test_valueRange(self):
     """
     """
     tree = omap.newMap()
     tree = omap.put(tree, 'A', 'Title 50', self.comparekeys)
     tree = omap.put(tree, 'C', 'Title 70', self.comparekeys)
     tree = omap.put(tree, 'E', 'Title 30', self.comparekeys)
     tree = omap.put(tree, 'H', 'Title 80', self.comparekeys)
     tree = omap.put(tree, 'L', 'Title 90', self.comparekeys)
     tree = omap.put(tree, 'M', 'Title 20', self.comparekeys)
     tree = omap.put(tree, 'P', 'Title 50', self.comparekeys)
     tree = omap.put(tree, 'R', 'Title 60', self.comparekeys)
     tree = omap.put(tree, 'S', 'Title 10', self.comparekeys)
     tree = omap.put(tree, 'X', 'Title 40', self.comparekeys)
     vList = omap.valueRange(tree, 'M', 'W', self.comparekeys)
     size = lt.size(vList)
     self.assertEqual((size), 4)
     print("\nValores entre M y W")
     print(vList)
Esempio n. 20
0
def addDateTree (catalog, row):
    """
    Adiciona el libro al arbol anual key=original_publication_year
    """
    DateText= row['Start_Time']     
    DateText = DateText[0:10]  
    date = strToDate(DateText,'%Y-%m-%d')
    dateNode = tree.get(catalog['dateTree'], date, greater)
    if dateNode:
        city = row['City']
        CityCount = map.get(dateNode['cityMap'], city, compareByKey)
        if  CityCount:
            CityCount+=1
            map.put(dateNode['cityMap'], city, CityCount, compareByKey)
        else:
            map.put(dateNode['cityMap'], city, 1, compareByKey)
    else:
        dateNode = newDate(date,row)
        tree.put(catalog['dateTree'],date,dateNode,greater)
Esempio n. 21
0
def Add_map_tree(catalogo, row):
    city_zipc = row['zip_code']
    lista_zip = city_zipc.split()
    city = lista_zip[2]
    city += lista_zip[3]

    formato = '%m/%d/%Y'
    fecha = strToDate(row['start_date'], formato)

    ciudad_arbol = map.get(catlog['map_city_req2'], city)
    if ciudad_arbol:
        arbol = tree.get(ciudad_arbol, fecha, compareByKey)
        if arbol:
            arbol['viajes'] += 1
        else:
            dic = {'date': fecha, 'viajes': 1}
            tree.put(ciudad_arbol, dic['date'], dic, compareByKey)
    else:
        value = tree.newMap()
        dic = {'date': fecha, 'viajes': 1}
        tree.put(value, dic['date'], dic, compareByKey)
        map.put(catalog['map_city_req2'], city, value)
Esempio n. 22
0
def newYear(year, row):
    """
    Crea una nueva estructura para almacenar los libros por año 
    """
    yearNode = {
        "year": year,
        "ratingMap": None,
        "count": 1,
        'severity': None,
        'state': None
    }
    yearNode['severity'] = {1: 0, 2: 0, 3: 0, 4: 0}
    sev = int(row['Severity'])
    yearNode['severity'][sev] += 1
    yearNode['ratingMap'] = map.newMap(40009, maptype='PROBING')
    city = {'Ciudad': row['City'], 'Accidentes': 1}
    map.put(yearNode['ratingMap'], city['Ciudad'], city, compareByKey)

    yearNode['state'] = tree.newMap()
    estado = {'Estado': row['State'], 'Accidentes': 1}
    tree.put(yearNode['state'], estado['Estado'], estado, greater)
    return yearNode
Esempio n. 23
0
def addAccidentDate(catalog, row):
    """
    Adiciona libro al map con key=title
    """
    #catalog['booksTree'] = map.put(catalog['booksTree'], int(book['book_id']), book, greater)
    Accidents = catalog['AccidentsTree']
    Exist = tree.get(Accidents, row["Start_Time"].split(" ")[0], greater)
    if Exist:
        lt.addLast(Exist['id'], row['ID'])
        Contador = row["Severity"]
        Nuevovalor = map.get(Exist["Severity"], Contador, compareByKey)
        if Nuevovalor:
            Nuevovalor += 1
            map.put(Exist["Severity"], Contador, Nuevovalor, compareByKey)
        else:
            map.put(Exist["Severity"], Contador, 1, compareByKey)
        tree.put(catalog['AccidentsTree'], row["Start_Time"].split(" ")[0],
                 Exist, greater)
        #director['sum_average_rating'] += float(row['vote_average'])
    else:
        Accident = newAccidentDate(catalog, row)
        catalog['AccidentsTree'] = tree.put(Accidents, Accident["Date"],
                                            Accident, greater)
Esempio n. 24
0
def addYearTree (catalog, row):
    """
    Adiciona el libro al arbol anual key=original_publication_year
    """
    yearText= row['original_publication_year']
    if row['original_publication_year']:
        yearText=row['original_publication_year'][0:row['original_publication_year'].index('.')]     
    year = strToDate(yearText,'%Y')
    yearNode = tree.get(catalog['yearsTree'] , year, greater)
    if yearNode:
        intRating = round(float(row['average_rating']))
        ratingCount = map.get(yearNode['ratingMap'], intRating, compareByKey)
        if  ratingCount:
            ratingCount+=1
            map.put(yearNode['ratingMap'], intRating, ratingCount, compareByKey)
        else:
            map.put(yearNode['ratingMap'], intRating, 1, compareByKey)
    else:
        yearNode = newYear(year,row)
        catalog['yearsTree']  = tree.put(catalog['yearsTree'] , year, yearNode, greater)
Esempio n. 25
0
def addYearTree (catalog, row):
    """
    Adiciona el libro al arbol anual key=original_publication_year
    """
    yearText= row['Start_Time']
    if row['Start_Time']:
        yearText=row['Start_Time']
        yearText.split(' ')   
        yearText= yearText[0]
    year = strToDate(yearText,'%Y-%m-%d')
    yearNode = tree.get(catalog['yearsTree'] , year, greater)
    if yearNode:
        intRating = round(float(row['Severity']))
        ratingCount = map.get(yearNode['ratingMap'], intRating, compareByKey)
        if  ratingCount:
            ratingCount+=1
            map.put(yearNode['ratingMap'], intRating, ratingCount, compareByKey)
        else:
            map.put(yearNode['ratingMap'], intRating, 1, compareByKey)
    else:
        yearNode = newYear(year,row)
        catalog['yearsTree']  = tree.put(catalog['yearsTree'] , year, yearNode, greater)
Esempio n. 26
0
def addDateTree(catalog, row):
    """
    Adiciona el accidente al arbol por día key=Start_Time
    """
    dateText = row['Start_Time']
    if row['Start_Time']:
        dateText = row['Start_Time'][0:row['Start_Time'].index(' ')]
    date = strToDate(dateText, '%Y-%m-%d')
    dateNode = tree.get(catalog['dateTree'], date, greater)
    if dateNode:
        severity = int(row['Severity'])
        accidentCount = map.get(dateNode['severityMap'], severity,
                                compareByKey)
        if accidentCount:
            accidentCount += 1
            map.put(dateNode['severityMap'], severity, accidentCount,
                    compareByKey)
        else:
            map.put(dateNode['severityMap'], severity, 1, compareByKey)
    else:
        dateNode = newDate(date, row)
        catalog['dateTree'] = tree.put(catalog['dateTree'], date, dateNode,
                                       greater)
Esempio n. 27
0
    def test_BSTCeiling(self):
        """
        """
        tree = bst.newMap('BST')
        self.assertTrue(bst.isEmpty(tree))
        bst.put(tree, '50', 'Title 50', self.comparekeys)
        bst.put(tree, '70', 'Title 70', self.comparekeys)
        bst.put(tree, '30', 'Title 30', self.comparekeys)
        bst.put(tree, '80', 'Title 80', self.comparekeys)
        bst.put(tree, '60', 'Title 60', self.comparekeys)
        bst.put(tree, '40', 'Title 40', self.comparekeys)
        bst.put(tree, '20', 'Title 20', self.comparekeys)
        bst.put(tree, '10', 'Title 10', self.comparekeys)
        bst.put(tree, '25', 'Title 6', self.comparekeys)
        bst.put(tree, '6', 'Title 3', self.comparekeys)
        bst.put(tree, '12', 'Title 12', self.comparekeys)
        bst.put(tree, '7', 'Title 7', self.comparekeys)
        bst.put(tree, '28', 'Title 28', self.comparekeys)

        node = bst.ceiling(tree, '29', self.comparekeys)
        self.assertEqual(node['key'], '30')

        node = bst.ceiling(tree, '28', self.comparekeys)
        self.assertEqual(node['key'], '28')

        node = bst.ceiling(tree, '30', self.comparekeys)
        self.assertEqual(node['key'], '30')

        node = bst.ceiling(tree, '72', self.comparekeys)
        self.assertEqual(node['key'], '80')
Esempio n. 28
0
    def test_BSTRemove(self):
        """
        """
        tree = bst.newMap('BST')
        self.assertTrue(bst.isEmpty(tree))
        bst.put(tree, '50', 'Title 50', self.comparekeys)
        bst.put(tree, '70', 'Title 70', self.comparekeys)
        bst.put(tree, '30', 'Title 30', self.comparekeys)
        bst.put(tree, '80', 'Title 80', self.comparekeys)
        bst.put(tree, '60', 'Title 60', self.comparekeys)
        bst.put(tree, '40', 'Title 40', self.comparekeys)
        bst.put(tree, '20', 'Title 20', self.comparekeys)
        bst.put(tree, '10', 'Title 10', self.comparekeys)
        bst.put(tree, '25', 'Title 6', self.comparekeys)
        bst.put(tree, '6', 'Title 3', self.comparekeys)
        bst.put(tree, '12', 'Title 12', self.comparekeys)
        bst.put(tree, '7', 'Title 7', self.comparekeys)
        bst.put(tree, '28', 'Title 28', self.comparekeys)

        bst.remove(tree, '20', self.comparekeys)
        self.assertIsNone(bst.get(tree, '20', self.comparekeys))
Esempio n. 29
0
 def test_DisorderedBST(self):
     """
     """
     tree = bst.newMap('BST')
     self.assertTrue(bst.isEmpty(tree))
     bst.put(tree, '50', 'Title 50', self.comparekeys)
     bst.put(tree, '70', 'Title 70', self.comparekeys)
     bst.put(tree, '30', 'Title 30', self.comparekeys)
     bst.put(tree, '80', 'Title 80', self.comparekeys)
     bst.put(tree, '60', 'Title 60', self.comparekeys)
     bst.put(tree, '40', 'Title 40', self.comparekeys)
     bst.put(tree, '20', 'Title 20', self.comparekeys)
     bst.put(tree, '10', 'Title 10', self.comparekeys)
     bst.put(tree, '25', 'Title 6', self.comparekeys)
     bst.put(tree, '6', 'Title 3', self.comparekeys)
     bst.put(tree, '12', 'Title 12', self.comparekeys)
     bst.put(tree, '7', 'Title 7', self.comparekeys)
     bst.put(tree, '28', 'Title 28', self.comparekeys)
     self.assertTrue(bst.contains(tree, '6', self.comparekeys))
     self.assertFalse(bst.contains(tree, '16', self.comparekeys))
     self.assertEqual(bst.min(tree)['key'], '6')
     self.assertEqual(bst.max(tree)['key'], '80')
     bst.deleteMin(tree)
     self.assertEqual(bst.min(tree)['key'], '7')
     bst.deleteMin(tree)
     self.assertEqual(bst.min(tree)['key'], '10')
     bst.deleteMax(tree)
     self.assertEqual(bst.max(tree)['key'], '70')
     bst.deleteMax(tree)
     self.assertEqual(bst.max(tree)['key'], '60')
Esempio n. 30
0
    def test_BSTValueSet(self):
        """
        """
        print('Test value')
        tree = bst.newMap('BST')
        self.assertTrue(bst.isEmpty(tree))
        bst.put(tree, '50', 'Title 50', self.comparekeys)
        bst.put(tree, '70', 'Title 70', self.comparekeys)
        bst.put(tree, '30', 'Title 30', self.comparekeys)
        bst.put(tree, '80', 'Title 80', self.comparekeys)
        bst.put(tree, '60', 'Title 60', self.comparekeys)
        bst.put(tree, '40', 'Title 40', self.comparekeys)
        bst.put(tree, '20', 'Title 20', self.comparekeys)
        bst.put(tree, '10', 'Title 10', self.comparekeys)
        bst.put(tree, '25', 'Title 25', self.comparekeys)
        bst.put(tree, '6', 'Title 6', self.comparekeys)
        bst.put(tree, '12', 'Title 12', self.comparekeys)
        bst.put(tree, '7', 'Title 7', self.comparekeys)
        bst.put(tree, '28', 'Title 28', self.comparekeys)

        lt = bst.valueSet(tree)

        print(lt)