Пример #1
0
def newCatalog():
    """
    Inicializa el catálogo y retorna el catalogo inicializado.
    """
    catalog = {'booksTitleTree':None,'yearsTree':None,'booksList':None}
    #implementación de Black-Red Tree (brt) por default
    catalog['booksTitleTree'] = tree.newMap ()
    catalog['yearsTree'] = tree.newMap ()
    catalog['booksList'] = lt.newList("ARRAY_LIST")
    return catalog
Пример #2
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')
Пример #3
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')
Пример #4
0
def newCatalog():
    '''
    Inicializa catalogo
    '''
    catalog = {'accidentsDateTree':None}
    catalog['accidentsDateTree'] = map.newMap('BST')
    catalog
    return catalog
Пример #5
0
def newCatalog():
    """
    Inicializa el catálogo y retorna el catalogo inicializado.
    """
    catalog = {'dateTree': None}
    #implementación de Black-Red Tree (brt) por default
    catalog['dateTree'] = tree.newMap()
    return catalog
Пример #6
0
def newCatalog():
    """
    Inicializa el catálogo y retorna el catalogo inicializado.
    """
    catalog = {'booksTree': None, 'booksList': None}
    catalog['booksTree'] = map.newMap("BST")
    catalog['booksList'] = lt.newList("ARRAY_LIST")

    return catalog
Пример #7
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)
Пример #8
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
Пример #9
0
def newCatalog():
    """
    Inicializa el catálogo y retorna el catalogo inicializado.
    
    catalog = {'booksTree':None,'booksList':None}
    catalog['booksTree'] = map.newMap ("BST")
    catalog['booksList'] = lt.newList("ARRAY_LIST")

    """
    catalog = {'accidentsTree':None,'accidentsList':None, "accidentsHash": None, 'accidentsByDate':None}
    catalog['accidentsTree'] = map.newMap ("RBT")
    catalog['accidentsList'] = lt.newList("ARRAY_LIST")
    catalog['accidentsHash'] = hashmap.newMap(6000011, maptype='PROBING') # 3`000,000 accidentes
    #Esta tabla de Hash se va a usar para encontrar datos repetidos por lo que sólo va a contener un dato por cada accidente: la fecha exacta
    #La fecha de cada accidente repetido se va a cambiar por unos segundos(no afectará mucho la fecha) para que no hayan datos repetidos    
    #Esta es la estrategía usada para evitar la pérdida de datos por sobreescritura
    # ESTA EN PRUEBA
    #catalog["accidentsByDate"] = hashmap.newMap(1831, maptype='CHAINING') # 365 (días) * 5 (años) = 1825 (1830 por si las moscas jaja, también hay años bisiestos y eso)
    catalog["accidentsByDate"] = map.newMap('RBT')
    #catalog["accidentsBySeverity"] = {"size":0, "data": hashmap.newMap(4, maptype='CHAINING')} # 4 Severidades posibles
    #catalog["accidentsByCity"] = {"size":0, "data":hashmap.newMap(1613, maptype='CHAINING'), "ciudad_mas_accidentada":None, "num_accidentes_ciudad_mas_accidentada":0} # 3225 ciudades en USA (Aprox.)

    return catalog
Пример #10
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)
Пример #11
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)
Пример #12
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')
Пример #13
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)
Пример #14
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)
Пример #15
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")
Пример #16
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)
Пример #17
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)
Пример #18
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)
Пример #19
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)
Пример #20
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)
Пример #21
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))
Пример #22
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)
Пример #23
0
    def test_BSTRank(self):
        """
        """
        print('Test rank')
        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)

        rank = bst.rank(tree, '30', self.comparekeys)
        print("rank 30: ", rank)
Пример #24
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
Пример #25
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)
Пример #26
0
    def test_BSTSelect(self):
        """
        """
        print('Test select')
        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)

        node = bst.select(tree, 1)
        #assert ??
        print("select 1:", node['key'])
Пример #27
0
def newCatalog_2 ():
    catalog = {'AccidentsTree': None, 'AccidentsList': None}
    catalog['AccidentsTree'] = map.newMap ("BST")
    catalog['AccidentsList'] = lt.newList("ARRAY_LIST")
    return catalog