Пример #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)
Пример #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
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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"]
Пример #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
Пример #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')
Пример #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)
Пример #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)
Пример #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)
Пример #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")
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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')
Пример #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))
Пример #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')
Пример #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)