diff --git a/src/forecaster/service/old/greet_server.py b/src/forecaster/service/old/greet_server.py deleted file mode 100644 index 362a258561995a541a4583084b80cb61f0ae1415..0000000000000000000000000000000000000000 --- a/src/forecaster/service/old/greet_server.py +++ /dev/null @@ -1,99 +0,0 @@ -from concurrent import futures -import time - -import grpc -import greet_pb2 -import greet_pb2_grpc - -#imported by me -import pandas as pd -import numpy as np -from prophet import Prophet -import matplotlib.pyplot as plt -import time -from sklearn.ensemble import RandomForestRegressor -import datetime as dt -from statistics import mean - -class GreeterServicer(greet_pb2_grpc.GreeterServicer): - def ComputeTopologyForecast(self, request, context): - print("The following request has been received:") - print(request) - - #this value indicates the size of the trainset. - #For example a history ratio of 10 would imply that the trainset will be 10 times bigger than the testset. - forecast_to_history_ratio = 10 - #history_window_seconds indicates the size of the trainset based on the requested size of the testset and the predifined history ratio - history_window_seconds = forecast_to_history_ratio * request.forecast_window_seconds - - df = getTopology(request.topology_id) - - df["ds"] = pd.to_datetime(df["ds"]) - dt.datetime(1970, 1, 1) - df["ds"] = df["ds"].dt.total_seconds() - - maximum = df["ds"].max() - minimum = maximum - history_window_seconds - print(f"The dates of the trainset would have the following range of values: From {minimum} until {maximum} ") - #smallest = df["ds"].drop_duplicates().nsmallest(2) - #smallest = smallest.reset_index() - #sampleDifference = smallest["ds"][1] - smallest["ds"][0] - #calculating the maximum size of the dataset - #futureMaximum = sampleDifference * request.forecast_window_seconds - #futureMaximum = futureMaximum + maximum - #print(f"Sample frequency: {sampleDifference}") - #print(f"The testset would have the following range of values: From {maximum} until {futureMaximum} ") - - #filtering by linkId and parsing it into integers - link_capacity = greet_pb2.LinkCapacity() - forecast_reply = greet_pb2.ForecastReply() - - for linkid in df["linkid"].unique()[:10]: - print(linkid) - newdf = df[df.linkid == linkid ] - #converting linkid to float to avoid problems with machine learning, since there is only one option. It is converted to 1.0 - newdf.loc[:,"linkid"] = 1.0 - trainset = newdf[int(newdf.shape[0] / 10):newdf.shape[0]] - testset = newdf[0:int(newdf.shape[0] / 10)] - - rf = RandomForestRegressor(n_estimators = 600, random_state = 42) - rf.fit(trainset.drop(['y'], axis=1), trainset['y']) - - forecast = rf.predict(testset.drop(['y'], axis=1)) - averageResult = round( mean(testset['y']), 2 ) - maximumCapacity = round( trainset["y"].max(), 2) - - link_capacity.linkuuid = linkid - link_capacity.forecasted_capacity = averageResult - link_capacity.total_capacity_gbps = maximumCapacity - - forecast_reply.LinkCapacityList.append(link_capacity) - - - print("The results were completely generated") - - return forecast_reply - -def getTopology(topologyId): - if topologyId == "1": - df = pd.read_csv('dataset.csv') - elif topologyId == "2": - df = pd.read_csv('dataset2.csv') - print(df.columns) - #Adapting the dataframe to have the same structure - df = df.drop(['Unnamed: 0', 'source', 'target'], axis=1) - df.rename(columns = {'id':'linkid'}, inplace = True) - df.rename(columns = {'demandValue':'y'}, inplace = True) - else: - df = pd.read_csv('./PythonGrpc-main/dataset.csv') - return df - - -def serve(): - server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) - greet_pb2_grpc.add_GreeterServicer_to_server(GreeterServicer(), server) - server.add_insecure_port("localhost:50051") - server.start() - server.wait_for_termination() - -if __name__ == "__main__": - serve() \ No newline at end of file diff --git a/src/forecaster/tests/Tools.py b/src/forecaster/tests/Tools.py index d55d1e5dedc98d51e2f122dd5150bf7fb5e7df55..e7d67e69c8dd4a8f0993648111afbf71056fce20 100644 --- a/src/forecaster/tests/Tools.py +++ b/src/forecaster/tests/Tools.py @@ -33,14 +33,14 @@ def read_csv(csv_file : str) -> pandas.DataFrame: LOGGER.info(' DONE') LOGGER.info('Parsing and Adapting columns...') - if 'dataset.csv' in csv_file or 'dataset-short.csv' in csv_file: + if 'dataset.csv' in csv_file: df.rename(columns={'linkid': 'link_id', 'ds': 'timestamp', 'y': 'used_capacity_gbps'}, inplace=True) df[['source', 'destination']] = df['link_id'].str.split('_', expand=True) - elif 'dataset2.csv' in csv_file: - df.drop(columns=['Unnamed: 0'], inplace=True) - df.rename(columns={ - 'target': 'destination', 'id': 'link_id', 'ds': 'timestamp', 'demandValue': 'used_capacity_gbps' - }, inplace=True) + #elif 'dataset2.csv' in csv_file: + # df.drop(columns=['Unnamed: 0'], inplace=True) + # df.rename(columns={ + # 'target': 'destination', 'id': 'link_id', 'ds': 'timestamp', 'demandValue': 'used_capacity_gbps' + # }, inplace=True) LOGGER.info(' DONE') LOGGER.info('Updating timestamps...') diff --git a/src/forecaster/tests/data/dataset-short.csv b/src/forecaster/tests/data/dataset-short.csv deleted file mode 100644 index 476bfccb53f2903a22f709b30c83d404b52c41d1..0000000000000000000000000000000000000000 --- a/src/forecaster/tests/data/dataset-short.csv +++ /dev/null @@ -1,328 +0,0 @@ -"linkid","ds","y" -"be1.be_de1.de","2005-07-29 11:30:00",13.633721 -"be1.be_fr1.fr","2005-07-29 11:30:00",37.369276 -"be1.be_gr1.gr","2005-07-29 11:30:00",0.023673 -"be1.be_it1.it","2005-07-29 11:30:00",0.251916 -"be1.be_uk1.uk","2005-07-29 11:30:00",26.126846 -"de1.de_be1.be","2005-07-29 11:30:00",41.771397 -"de1.de_gr1.gr","2005-07-29 11:30:00",137.840494 -"de1.de_uk1.uk","2005-07-29 11:30:00",187.909209 -"es1.es_fr1.fr","2005-07-29 11:30:00",9.989878 -"es1.es_it1.it","2005-07-29 11:30:00",15.279216 -"es1.es_pt1.pt","2005-07-29 11:30:00",18.024652 -"fr1.fr_be1.be","2005-07-29 11:30:00",3.491062 -"fr1.fr_es1.es","2005-07-29 11:30:00",27.289934 -"fr1.fr_it1.it","2005-07-29 11:30:00",5.19262 -"fr1.fr_pt1.pt","2005-07-29 11:30:00",2.075046 -"fr1.fr_uk1.uk","2005-07-29 11:30:00",171.856756 -"gr1.gr_be1.be","2005-07-29 11:30:00",0.463852 -"gr1.gr_de1.de","2005-07-29 11:30:00",4070.266255 -"gr1.gr_it1.it","2005-07-29 11:30:00",6.49398 -"it1.it_be1.be","2005-07-29 11:30:00",26.771257 -"it1.it_es1.es","2005-07-29 11:30:00",209.799198 -"it1.it_fr1.fr","2005-07-29 11:30:00",7.919724 -"it1.it_gr1.gr","2005-07-29 11:30:00",4.624628 -"pt1.pt_es1.es","2005-07-29 11:30:00",89.292105 -"pt1.pt_fr1.fr","2005-07-29 11:30:00",0.978255 -"pt1.pt_uk1.uk","2005-07-29 11:30:00",62.342932 -"uk1.uk_be1.be","2005-07-29 11:30:00",11.812727 -"uk1.uk_de1.de","2005-07-29 11:30:00",255.863122 -"uk1.uk_fr1.fr","2005-07-29 11:30:00",233.412507 -"uk1.uk_pt1.pt","2005-07-29 11:30:00",502.236205 -"be1.be_de1.de","2005-06-20 18:15:00",46.947486 -"be1.be_fr1.fr","2005-06-20 18:15:00",73.202652 -"be1.be_gr1.gr","2005-06-20 18:15:00",0.084347 -"be1.be_it1.it","2005-06-20 18:15:00",0.386309 -"be1.be_uk1.uk","2005-06-20 18:15:00",181.377554 -"de1.de_be1.be","2005-06-20 18:15:00",12.337703 -"de1.de_gr1.gr","2005-06-20 18:15:00",166.013822 -"de1.de_uk1.uk","2005-06-20 18:15:00",196.713395 -"es1.es_fr1.fr","2005-06-20 18:15:00",10.50535 -"es1.es_it1.it","2005-06-20 18:15:00",8.637348 -"es1.es_pt1.pt","2005-06-20 18:15:00",20.493486 -"fr1.fr_be1.be","2005-06-20 18:15:00",15.280566 -"fr1.fr_es1.es","2005-06-20 18:15:00",41.105169 -"fr1.fr_it1.it","2005-06-20 18:15:00",6.188476 -"fr1.fr_pt1.pt","2005-06-20 18:15:00",7.292464 -"fr1.fr_uk1.uk","2005-06-20 18:15:00",39.916047 -"gr1.gr_be1.be","2005-06-20 18:15:00",0.987871 -"gr1.gr_de1.de","2005-06-20 18:15:00",3761.528535 -"gr1.gr_it1.it","2005-06-20 18:15:00",0.762946 -"it1.it_be1.be","2005-06-20 18:15:00",11.693967 -"it1.it_es1.es","2005-06-20 18:15:00",20.093962 -"it1.it_fr1.fr","2005-06-20 18:15:00",25.279273 -"it1.it_gr1.gr","2005-06-20 18:15:00",54.110787 -"pt1.pt_es1.es","2005-06-20 18:15:00",12.870606 -"pt1.pt_fr1.fr","2005-06-20 18:15:00",1.294275 -"pt1.pt_uk1.uk","2005-06-20 18:15:00",335.570213 -"uk1.uk_be1.be","2005-06-20 18:15:00",7.096555 -"uk1.uk_de1.de","2005-06-20 18:15:00",356.532161 -"uk1.uk_fr1.fr","2005-06-20 18:15:00",20.45373 -"uk1.uk_pt1.pt","2005-06-20 18:15:00",791.04219 -"be1.be_de1.de","2005-08-29 16:45:00",20.400142 -"be1.be_fr1.fr","2005-08-29 16:45:00",31.346514 -"be1.be_gr1.gr","2005-08-29 16:45:00",0.026822 -"be1.be_it1.it","2005-08-29 16:45:00",0.357069 -"be1.be_uk1.uk","2005-08-29 16:45:00",8.252107 -"de1.de_be1.be","2005-08-29 16:45:00",57.709307 -"de1.de_gr1.gr","2005-08-29 16:45:00",110.602237 -"de1.de_uk1.uk","2005-08-29 16:45:00",239.446965 -"es1.es_fr1.fr","2005-08-29 16:45:00",20.517778 -"es1.es_it1.it","2005-08-29 16:45:00",15.353667 -"es1.es_pt1.pt","2005-08-29 16:45:00",5.643483 -"fr1.fr_be1.be","2005-08-29 16:45:00",4.804849 -"fr1.fr_es1.es","2005-08-29 16:45:00",96.682749 -"fr1.fr_it1.it","2005-08-29 16:45:00",3.330747 -"fr1.fr_pt1.pt","2005-08-29 16:45:00",1.916587 -"fr1.fr_uk1.uk","2005-08-29 16:45:00",28.144199 -"gr1.gr_be1.be","2005-08-29 16:45:00",0.895539 -"gr1.gr_de1.de","2005-08-29 16:45:00",4930.897339 -"gr1.gr_it1.it","2005-08-29 16:45:00",7.983659 -"it1.it_be1.be","2005-08-29 16:45:00",10.327772 -"it1.it_es1.es","2005-08-29 16:45:00",18.97108 -"it1.it_fr1.fr","2005-08-29 16:45:00",98.574706 -"it1.it_gr1.gr","2005-08-29 16:45:00",1.593313 -"pt1.pt_es1.es","2005-08-29 16:45:00",13.32428 -"pt1.pt_fr1.fr","2005-08-29 16:45:00",3.733925 -"pt1.pt_uk1.uk","2005-08-29 16:45:00",51.415678 -"uk1.uk_be1.be","2005-08-29 16:45:00",14.334868 -"uk1.uk_de1.de","2005-08-29 16:45:00",199.272255 -"uk1.uk_fr1.fr","2005-08-29 16:45:00",55.182499 -"uk1.uk_pt1.pt","2005-08-29 16:45:00",652.70225 -"be1.be_de1.de","2005-08-16 07:30:00",27.712568 -"be1.be_fr1.fr","2005-08-16 07:30:00",3.889573 -"be1.be_gr1.gr","2005-08-16 07:30:00",0.086821 -"be1.be_it1.it","2005-08-16 07:30:00",0.005398 -"be1.be_uk1.uk","2005-08-16 07:30:00",4.136991 -"de1.de_be1.be","2005-08-16 07:30:00",41.662646 -"de1.de_gr1.gr","2005-08-16 07:30:00",83.698837 -"de1.de_uk1.uk","2005-08-16 07:30:00",75.24126 -"es1.es_fr1.fr","2005-08-16 07:30:00",2.219729 -"es1.es_it1.it","2005-08-16 07:30:00",7.145139 -"es1.es_pt1.pt","2005-08-16 07:30:00",1.677266 -"fr1.fr_be1.be","2005-08-16 07:30:00",7.666459 -"fr1.fr_es1.es","2005-08-16 07:30:00",13.062805 -"fr1.fr_it1.it","2005-08-16 07:30:00",0.266986 -"fr1.fr_pt1.pt","2005-08-16 07:30:00",0.883506 -"fr1.fr_uk1.uk","2005-08-16 07:30:00",11.742382 -"gr1.gr_be1.be","2005-08-16 07:30:00",0.61562 -"gr1.gr_de1.de","2005-08-16 07:30:00",2001.396054 -"gr1.gr_it1.it","2005-08-16 07:30:00",2.294517 -"it1.it_be1.be","2005-08-16 07:30:00",3.148501 -"it1.it_es1.es","2005-08-16 07:30:00",5.216237 -"it1.it_fr1.fr","2005-08-16 07:30:00",3.382423 -"it1.it_gr1.gr","2005-08-16 07:30:00",4.762001 -"pt1.pt_es1.es","2005-08-16 07:30:00",0.328222 -"pt1.pt_fr1.fr","2005-08-16 07:30:00",0.544094 -"pt1.pt_uk1.uk","2005-08-16 07:30:00",6.946024 -"uk1.uk_be1.be","2005-08-16 07:30:00",14.723145 -"uk1.uk_de1.de","2005-08-16 07:30:00",101.817113 -"uk1.uk_fr1.fr","2005-08-16 07:30:00",13.165427 -"uk1.uk_pt1.pt","2005-08-16 07:30:00",59.307456 -"be1.be_de1.de","2005-05-07 23:45:00",3.00826 -"be1.be_fr1.fr","2005-05-07 23:45:00",18.221967 -"be1.be_gr1.gr","2005-05-07 23:45:00",0.173417 -"be1.be_it1.it","2005-05-07 23:45:00",0.00523 -"be1.be_uk1.uk","2005-05-07 23:45:00",1.61097 -"de1.de_be1.be","2005-05-07 23:45:00",56.899745 -"de1.de_gr1.gr","2005-05-07 23:45:00",631.542367 -"de1.de_uk1.uk","2005-05-07 23:45:00",210.597064 -"es1.es_fr1.fr","2005-05-07 23:45:00",4.532915 -"es1.es_it1.it","2005-05-07 23:45:00",3.393107 -"es1.es_pt1.pt","2005-05-07 23:45:00",12.377514 -"fr1.fr_be1.be","2005-05-07 23:45:00",0.414987 -"fr1.fr_es1.es","2005-05-07 23:45:00",6.300601 -"fr1.fr_it1.it","2005-05-07 23:45:00",3.127358 -"fr1.fr_pt1.pt","2005-05-07 23:45:00",0.651608 -"fr1.fr_uk1.uk","2005-05-07 23:45:00",33.277552 -"gr1.gr_be1.be","2005-05-07 23:45:00",0.199733 -"gr1.gr_de1.de","2005-05-07 23:45:00",933.371627 -"gr1.gr_it1.it","2005-05-07 23:45:00",1.692505 -"it1.it_be1.be","2005-05-07 23:45:00",27.93755 -"it1.it_es1.es","2005-05-07 23:45:00",46.131064 -"it1.it_fr1.fr","2005-05-07 23:45:00",16.271473 -"it1.it_gr1.gr","2005-05-07 23:45:00",739.540984 -"pt1.pt_es1.es","2005-05-07 23:45:00",0.777791 -"pt1.pt_fr1.fr","2005-05-07 23:45:00",0.319394 -"pt1.pt_uk1.uk","2005-05-07 23:45:00",176.696919 -"uk1.uk_be1.be","2005-05-07 23:45:00",1.521 -"uk1.uk_de1.de","2005-05-07 23:45:00",153.659587 -"uk1.uk_fr1.fr","2005-05-07 23:45:00",16.592104 -"uk1.uk_pt1.pt","2005-05-07 23:45:00",292.931055 -"be1.be_de1.de","2005-06-07 00:15:00",11.527804 -"be1.be_fr1.fr","2005-06-07 00:15:00",22.142524 -"be1.be_gr1.gr","2005-06-07 00:15:00",0.005173 -"be1.be_it1.it","2005-06-07 00:15:00",1.885266 -"be1.be_uk1.uk","2005-06-07 00:15:00",1.226966 -"de1.de_be1.be","2005-06-07 00:15:00",82.949555 -"de1.de_gr1.gr","2005-06-07 00:15:00",214.578575 -"de1.de_uk1.uk","2005-06-07 00:15:00",173.876359 -"es1.es_fr1.fr","2005-06-07 00:15:00",19.262246 -"es1.es_it1.it","2005-06-07 00:15:00",3.708902 -"es1.es_pt1.pt","2005-06-07 00:15:00",27.095824 -"fr1.fr_be1.be","2005-06-07 00:15:00",4.848429 -"fr1.fr_es1.es","2005-06-07 00:15:00",20.620681 -"fr1.fr_it1.it","2005-06-07 00:15:00",7.290271 -"fr1.fr_pt1.pt","2005-06-07 00:15:00",4.311982 -"fr1.fr_uk1.uk","2005-06-07 00:15:00",70.120616 -"gr1.gr_be1.be","2005-06-07 00:15:00",1.011151 -"gr1.gr_de1.de","2005-06-07 00:15:00",4235.315598 -"gr1.gr_it1.it","2005-06-07 00:15:00",2.605588 -"it1.it_be1.be","2005-06-07 00:15:00",29.244533 -"it1.it_es1.es","2005-06-07 00:15:00",18.239399 -"it1.it_fr1.fr","2005-06-07 00:15:00",38.556206 -"it1.it_gr1.gr","2005-06-07 00:15:00",25.842485 -"pt1.pt_es1.es","2005-06-07 00:15:00",3.852742 -"pt1.pt_fr1.fr","2005-06-07 00:15:00",0.065172 -"pt1.pt_uk1.uk","2005-06-07 00:15:00",367.749119 -"uk1.uk_be1.be","2005-06-07 00:15:00",12.040352 -"uk1.uk_de1.de","2005-06-07 00:15:00",162.255549 -"uk1.uk_fr1.fr","2005-06-07 00:15:00",58.607545 -"uk1.uk_pt1.pt","2005-06-07 00:15:00",433.376631 -"be1.be_de1.de","2005-06-22 20:30:00",20.497253 -"be1.be_fr1.fr","2005-06-22 20:30:00",20.782852 -"be1.be_gr1.gr","2005-06-22 20:30:00",0.005848 -"be1.be_it1.it","2005-06-22 20:30:00",0.090026 -"be1.be_uk1.uk","2005-06-22 20:30:00",2.056996 -"de1.de_be1.be","2005-06-22 20:30:00",27.225774 -"de1.de_gr1.gr","2005-06-22 20:30:00",272.761011 -"de1.de_uk1.uk","2005-06-22 20:30:00",199.828438 -"es1.es_fr1.fr","2005-06-22 20:30:00",22.522197 -"es1.es_it1.it","2005-06-22 20:30:00",13.393051 -"es1.es_pt1.pt","2005-06-22 20:30:00",5.932286 -"fr1.fr_be1.be","2005-06-22 20:30:00",15.616435 -"fr1.fr_es1.es","2005-06-22 20:30:00",29.365936 -"fr1.fr_it1.it","2005-06-22 20:30:00",2.797562 -"fr1.fr_pt1.pt","2005-06-22 20:30:00",10.604824 -"fr1.fr_uk1.uk","2005-06-22 20:30:00",45.283715 -"gr1.gr_be1.be","2005-06-22 20:30:00",1.087738 -"gr1.gr_de1.de","2005-06-22 20:30:00",4865.371323 -"gr1.gr_it1.it","2005-06-22 20:30:00",3.528006 -"it1.it_be1.be","2005-06-22 20:30:00",11.366813 -"it1.it_es1.es","2005-06-22 20:30:00",7.02441 -"it1.it_fr1.fr","2005-06-22 20:30:00",22.716083 -"it1.it_gr1.gr","2005-06-22 20:30:00",25.769665 -"pt1.pt_es1.es","2005-06-22 20:30:00",8.340278 -"pt1.pt_fr1.fr","2005-06-22 20:30:00",0.860282 -"pt1.pt_uk1.uk","2005-06-22 20:30:00",293.90633 -"uk1.uk_be1.be","2005-06-22 20:30:00",13.314889 -"uk1.uk_de1.de","2005-06-22 20:30:00",168.266278 -"uk1.uk_fr1.fr","2005-06-22 20:30:00",7.017269 -"uk1.uk_pt1.pt","2005-06-22 20:30:00",575.047825 -"be1.be_de1.de","2005-06-12 04:45:00",48.027576 -"be1.be_fr1.fr","2005-06-12 04:45:00",58.392573 -"be1.be_gr1.gr","2005-06-12 04:45:00",0.115611 -"be1.be_it1.it","2005-06-12 04:45:00",0.011134 -"be1.be_uk1.uk","2005-06-12 04:45:00",1.715897 -"de1.de_be1.be","2005-06-12 04:45:00",84.910002 -"de1.de_gr1.gr","2005-06-12 04:45:00",120.996306 -"de1.de_uk1.uk","2005-06-12 04:45:00",155.065369 -"es1.es_fr1.fr","2005-06-12 04:45:00",7.534709 -"es1.es_it1.it","2005-06-12 04:45:00",12.081569 -"es1.es_pt1.pt","2005-06-12 04:45:00",7.131193 -"fr1.fr_be1.be","2005-06-12 04:45:00",2.231369 -"fr1.fr_es1.es","2005-06-12 04:45:00",3.40216 -"fr1.fr_it1.it","2005-06-12 04:45:00",0.943786 -"fr1.fr_pt1.pt","2005-06-12 04:45:00",17.078504 -"fr1.fr_uk1.uk","2005-06-12 04:45:00",35.828258 -"gr1.gr_be1.be","2005-06-12 04:45:00",3.374157 -"gr1.gr_de1.de","2005-06-12 04:45:00",3976.311229 -"gr1.gr_it1.it","2005-06-12 04:45:00",0.046784 -"it1.it_be1.be","2005-06-12 04:45:00",12.296485 -"it1.it_es1.es","2005-06-12 04:45:00",18.296193 -"it1.it_fr1.fr","2005-06-12 04:45:00",4.634694 -"it1.it_gr1.gr","2005-06-12 04:45:00",0.255965 -"pt1.pt_es1.es","2005-06-12 04:45:00",1.012388 -"pt1.pt_fr1.fr","2005-06-12 04:45:00",0.612415 -"pt1.pt_uk1.uk","2005-06-12 04:45:00",254.932438 -"uk1.uk_be1.be","2005-06-12 04:45:00",0.815578 -"uk1.uk_de1.de","2005-06-12 04:45:00",83.263213 -"uk1.uk_fr1.fr","2005-06-12 04:45:00",16.271979 -"uk1.uk_pt1.pt","2005-06-12 04:45:00",324.332057 -"be1.be_de1.de","2005-07-30 02:00:00",40.205525 -"be1.be_fr1.fr","2005-07-30 02:00:00",17.725783 -"be1.be_gr1.gr","2005-07-30 02:00:00",0.013102 -"be1.be_uk1.uk","2005-07-30 02:00:00",8.324196 -"de1.de_be1.be","2005-07-30 02:00:00",29.881858 -"de1.de_gr1.gr","2005-07-30 02:00:00",62.722043 -"de1.de_uk1.uk","2005-07-30 02:00:00",216.185439 -"es1.es_fr1.fr","2005-07-30 02:00:00",22.856548 -"es1.es_it1.it","2005-07-30 02:00:00",11.847197 -"es1.es_pt1.pt","2005-07-30 02:00:00",15.523204 -"fr1.fr_be1.be","2005-07-30 02:00:00",7.983659 -"fr1.fr_es1.es","2005-07-30 02:00:00",3.740785 -"fr1.fr_it1.it","2005-07-30 02:00:00",0.502595 -"fr1.fr_pt1.pt","2005-07-30 02:00:00",0.199565 -"fr1.fr_uk1.uk","2005-07-30 02:00:00",12.856717 -"gr1.gr_be1.be","2005-07-30 02:00:00",1.1077 -"gr1.gr_de1.de","2005-07-30 02:00:00",3570.000337 -"gr1.gr_it1.it","2005-07-30 02:00:00",4.323903 -"it1.it_be1.be","2005-07-30 02:00:00",5.286414 -"it1.it_es1.es","2005-07-30 02:00:00",121.213021 -"it1.it_fr1.fr","2005-07-30 02:00:00",6.819559 -"it1.it_gr1.gr","2005-07-30 02:00:00",1.487767 -"pt1.pt_es1.es","2005-07-30 02:00:00",1.189291 -"pt1.pt_fr1.fr","2005-07-30 02:00:00",1.43311 -"pt1.pt_uk1.uk","2005-07-30 02:00:00",54.263399 -"uk1.uk_be1.be","2005-07-30 02:00:00",2.675709 -"uk1.uk_de1.de","2005-07-30 02:00:00",117.714986 -"uk1.uk_fr1.fr","2005-07-30 02:00:00",35.445042 -"uk1.uk_pt1.pt","2005-07-30 02:00:00",232.448872 -"be1.be_de1.de","2005-05-24 00:00:00",7.462676 -"be1.be_fr1.fr","2005-05-24 00:00:00",46.305493 -"be1.be_gr1.gr","2005-05-24 00:00:00",0.260969 -"be1.be_it1.it","2005-05-24 00:00:00",0.002643 -"be1.be_uk1.uk","2005-05-24 00:00:00",21.759308 -"de1.de_be1.be","2005-05-24 00:00:00",15.698308 -"de1.de_gr1.gr","2005-05-24 00:00:00",2032.807459 -"de1.de_uk1.uk","2005-05-24 00:00:00",550.498265 -"es1.es_fr1.fr","2005-05-24 00:00:00",20.892334 -"es1.es_it1.it","2005-05-24 00:00:00",99.741955 -"es1.es_pt1.pt","2005-05-24 00:00:00",16.16261 -"fr1.fr_be1.be","2005-05-24 00:00:00",2.836755 -"fr1.fr_es1.es","2005-05-24 00:00:00",10.259564 -"fr1.fr_it1.it","2005-05-24 00:00:00",2.967943 -"fr1.fr_pt1.pt","2005-05-24 00:00:00",2.573705 -"fr1.fr_uk1.uk","2005-05-24 00:00:00",40.368708 -"gr1.gr_be1.be","2005-05-24 00:00:00",2.010099 -"gr1.gr_de1.de","2005-05-24 00:00:00",4563.719698 -"gr1.gr_it1.it","2005-05-24 00:00:00",3.384785 -"it1.it_be1.be","2005-05-24 00:00:00",24.598593 -"it1.it_es1.es","2005-05-24 00:00:00",123.836434 -"it1.it_fr1.fr","2005-05-24 00:00:00",113.240327 -"it1.it_gr1.gr","2005-05-24 00:00:00",23.121173 -"pt1.pt_es1.es","2005-05-24 00:00:00",5.621496 -"pt1.pt_fr1.fr","2005-05-24 00:00:00",0.128713 -"pt1.pt_uk1.uk","2005-05-24 00:00:00",382.279278 -"uk1.uk_be1.be","2005-05-24 00:00:00",2.423005 -"uk1.uk_de1.de","2005-05-24 00:00:00",225.272469 -"uk1.uk_fr1.fr","2005-05-24 00:00:00",29.664524 -"uk1.uk_pt1.pt","2005-05-24 00:00:00",515.544459 -"be1.be_de1.de","2005-07-08 22:45:00",41.721914 -"be1.be_fr1.fr","2005-07-08 22:45:00",22.271518 -"be1.be_uk1.uk","2005-07-08 22:45:00",0.565237 -"de1.de_be1.be","2005-07-08 22:45:00",18.116253 -"de1.de_gr1.gr","2005-07-08 22:45:00",84.363659 -"de1.de_uk1.uk","2005-07-08 22:45:00",198.657985 -"es1.es_fr1.fr","2005-07-08 22:45:00",26.077588 -"es1.es_it1.it","2005-07-08 22:45:00",10.734268 -"es1.es_pt1.pt","2005-07-08 22:45:00",3.212886 -"fr1.fr_be1.be","2005-07-08 22:45:00",2.165579 -"fr1.fr_es1.es","2005-07-08 22:45:00",49.61386 -"fr1.fr_it1.it","2005-07-08 22:45:00",7.861918 -"fr1.fr_pt1.pt","2005-07-08 22:45:00",1.42833 -"fr1.fr_uk1.uk","2005-07-08 22:45:00",175.702188 -"gr1.gr_be1.be","2005-07-08 22:45:00",2.705961 -"gr1.gr_de1.de","2005-07-08 22:45:00",4139.070272 -"gr1.gr_it1.it","2005-07-08 22:45:00",2.765173 -"it1.it_be1.be","2005-07-08 22:45:00",22.960183 -"it1.it_es1.es","2005-07-08 22:45:00",191.877562 -"it1.it_fr1.fr","2005-07-08 22:45:00",10.385578 -"it1.it_gr1.gr","2005-07-08 22:45:00",0.905886 -"pt1.pt_es1.es","2005-07-08 22:45:00",6.78166 -"pt1.pt_fr1.fr","2005-07-08 22:45:00",0.162677 -"pt1.pt_uk1.uk","2005-07-08 22:45:00",131.320816 -"uk1.uk_be1.be","2005-07-08 22:45:00",0.836384 -"uk1.uk_de1.de","2005-07-08 22:45:00",547.487643 -"uk1.uk_fr1.fr","2005-07-08 22:45:00",102.387861 -"uk1.uk_pt1.pt","2005-07-08 22:45:00",381.91698 diff --git a/src/forecaster/tests/data/dataset.csv b/src/forecaster/tests/data/dataset.csv index ff418e985800c984d8f5f86a860079731fcc4eee..476bfccb53f2903a22f709b30c83d404b52c41d1 100644 Binary files a/src/forecaster/tests/data/dataset.csv and b/src/forecaster/tests/data/dataset.csv differ diff --git a/src/forecaster/tests/data/dataset2.csv b/src/forecaster/tests/data/dataset2.csv deleted file mode 100644 index 817c6f5149cfda3ce13359aaed976372cdc440a2..0000000000000000000000000000000000000000 Binary files a/src/forecaster/tests/data/dataset2.csv and /dev/null differ diff --git a/src/forecaster/tests/old/parse_csv.py b/src/forecaster/tests/old/parse_csv.py deleted file mode 100644 index d0565cbb8f538c2e25dd222eeec7ca962a5f7acf..0000000000000000000000000000000000000000 --- a/src/forecaster/tests/old/parse_csv.py +++ /dev/null @@ -1,72 +0,0 @@ -import calendar, pandas -from datetime import datetime, timezone - -def time_datetime_to_int(dt_time : datetime) -> int: - return int(calendar.timegm(dt_time.timetuple())) - -def time_datetime_to_float(dt_time : datetime) -> float: - return time_datetime_to_int(dt_time) + (dt_time.microsecond / 1.e6) - -def time_utc_now_to_datetime() -> datetime: - return datetime.now(tz=timezone.utc) - -def time_utc_now_to_float() -> float: - return time_datetime_to_float(time_utc_now_to_datetime()) - -def read_csv(csv_file : str) -> pandas.DataFrame: - df = pandas.read_csv(csv_file) - - if 'dataset.csv' in csv_file: - df.rename(columns={'linkid': 'link_id', 'ds': 'timestamp', 'y': 'used_capacity_gbps'}, inplace=True) - df[['source', 'destination']] = df['link_id'].str.split('_', expand=True) - elif 'dataset2.csv' in csv_file: - df.drop(columns=['Unnamed: 0'], inplace=True) - df.rename(columns={ - 'target': 'destination', 'id': 'link_id', 'ds': 'timestamp', 'demandValue': 'used_capacity_gbps' - }, inplace=True) - - df['timestamp'] = pandas.to_datetime(df['timestamp']) - max_timestamp = time_datetime_to_int(df['timestamp'].max()) - now_timestamp = time_datetime_to_int(datetime.now(tz=timezone.utc)) - df['timestamp'] = df['timestamp'] + pandas.offsets.Second(now_timestamp - max_timestamp) - df.sort_values('timestamp', ascending=True, inplace=True) - return df - -CSV_FILE = 'data/forecaster_data/dataset.csv' -#CSV_FILE = 'data/forecaster_data/dataset2.csv' - -def main(): - df = read_csv(CSV_FILE) - #print(df) - - devices = dict() - links = dict() - - #df1.groupby(['A','B']).size().reset_index().rename(columns={0:'count'}) - df_links = df[['link_id', 'source', 'destination']].drop_duplicates() - for row in df_links.itertuples(index=False): - #print(row) - link_uuid = row.link_id - src_device_uuid = row.source - dst_device_uuid = row.destination - src_port_uuid = row.destination - dst_port_uuid = row.source - - if src_device_uuid not in devices: - devices[src_device_uuid] = {'id': src_device_uuid, 'endpoints': set()} - devices[src_device_uuid]['endpoints'].add(src_port_uuid) - - if dst_device_uuid not in devices: - devices[dst_device_uuid] = {'id': dst_device_uuid, 'endpoints': set()} - devices[dst_device_uuid]['endpoints'].add(dst_port_uuid) - - if link_uuid not in links: - links[link_uuid] = { - 'id': link_uuid, - 'src_dev': src_device_uuid, 'src_port': dst_device_uuid, - 'dst_dev': dst_device_uuid, 'dst_port': src_device_uuid, - } - - -if __name__ == '__main__': - main() diff --git a/src/forecaster/tests/test_unitary.py b/src/forecaster/tests/test_unitary.py index a7dbeb2eda41d7ace8edbc83ad12a6efc3352609..4d53e68df369113610f414d58664bf67e2e5d0b9 100644 --- a/src/forecaster/tests/test_unitary.py +++ b/src/forecaster/tests/test_unitary.py @@ -44,9 +44,7 @@ JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) -CSV_DATA_FILE = 'forecaster/tests/data/dataset-short.csv' -#CSV_DATA_FILE = 'forecaster/tests/data/dataset.csv' -#CSV_DATA_FILE = 'forecaster/tests/data/dataset2.csv' +CSV_DATA_FILE = 'forecaster/tests/data/dataset.csv' #DESC_DATS_FILE = 'forecaster/tests/data/descriptor.json' @pytest.fixture(scope='session')