, compute_r_squared, print_model, get_highest_pair, forward_selection_r_squared, \
output_sel, select_best_k, test_foward_select


# useful defined constants for the city data
COMPLAINT_COLS = range(0, 7)
CRIME_TOTAL_COL = 7

file = "city"
variables, data = read_file("data/{}/training.csv".format(file))

if __name__ == "__main__":

    #Task 1a 
    print(file, "Task", "1A")
    print(r_squared_table(variables, data, CRIME_TOTAL_COL) )
    print() #\n

    #Task 1b
    print(file, "Task", "1B")
    model_1b = Model(variables, data, CRIME_TOTAL_COL, list(COMPLAINT_COLS) )
    r2 = compute_r_squared(model_1b.beta, model_1b.pre_col, model_1b.dep_col)
    print(print_model (model_1b.pre_var, r2) ) 
    print()#\n

    #Task 2
    print(file, "Task", "2")
    print(get_highest_pair(variables, data, list(COMPLAINT_COLS), CRIME_TOTAL_COL) )
    print() #\n

    #Task 3a
    select_best_k,
    test_foward_select,
)

# useful defined constants for the stock data
STOCKS = range(0, 11)
DJIA = 11

file = "stock"
variables, data = read_file("data/{}/training.csv".format(file))


if __name__ == "__main__":
    # Task 1a
    print(file, "Task", "1A")
    print(r_squared_table(variables, data, STOCKS))
    print()  # \n

    # Task 1b
    print(file, "Task", "1B")
    model_1b = Model(variables, data, STOCKS, list(COMPLAINT_COLS))
    r2 = compute_r_squared(model_1b.beta, model_1b.pre_col, model_1b.dep_col)
    print(print_model(model_1b.pre_var, r2))
    print()  # \n

    # Task 2
    print(file, "Task", "2")
    print(get_highest_pair(variables, data, list(COMPLAINT_COLS), STOCKS))
    print()  # \n

    # Task 3a