Ejemplo n.º 1
0
def main():
    input_file = "./input.txt"
    output_file = "./output.txt"
    table_size = 4
    doubling_threshold = 0.75
    halving_threshold = 0.25
    try:
        arguments, values = getopt.getopt(argument_list, options, long_options)
        for currentArgument, currentValue in arguments:
            if currentArgument in ("-i", "--input"):
                input_file = currentValue
            elif currentArgument in ("-o", "--output"):
                output_file = currentValue
            elif currentArgument in ("-s", "--table-size"):
                table_size = int(currentValue)
            elif currentArgument in ("-d", "--doubling-threshold"):
                doubling_threshold = float(currentValue)
            elif currentArgument in ("-h", "--halving-threshold"):
                halving_threshold = float(currentValue)
    except getopt.error as err:
        print(str(err))

    inputs = parse_input(input_file)
    logger = Logger()
    hashtable = Hashtable(table_size,
                          logger,
                          grow_threshold=doubling_threshold,
                          shrink_threshold=halving_threshold)

    for ipt in inputs:
        cmd, value = ipt
        hashtable.apply(cmd, value)

    logger.write(output_file)