# Form feature vectors for training data
trainingInputData, trainingOutputData = util.formFeatureVectors(trainingData)
actualOutputData = minMax.inverse_transform(testingData)[:, 0]

# Initial seed
initialSeedForValidation = trainingData[-1]
networkSize = 500
populationSize = 10
noOfBest = int(populationSize / 2)
noOfGenerations = 10
predictedOutputData, bestPopulation = utilityGA.tuneTrainPredictConnectivityGA(
    trainingInputData=trainingInputData,
    trainingOutputData=trainingOutputData,
    validationOutputData=validationData,
    initialInputSeedForValidation=initialSeedForValidation,
    horizon=nTesting,
    noOfBest=noOfBest,
    resTopology=utilityGA.Topology.ErdosRenyi,
    size=networkSize,
    popSize=populationSize,
    maxGeneration=noOfGenerations,
)

predictedOutputData = minMax.inverse_transform(predictedOutputData)

# Plotting of the prediction output and error
outputFolderName = "Outputs/Erdos_Renyi_Outputs" + datetime.now().strftime("%Y_%m_%d_%H_%M_%S")
os.mkdir(outputFolderName)
outplot = outputPlot.OutputPlot(
    outputFolderName + "/Prediction.html",
    "Mackey-Glass Time Series - GA Optimization)",
    "Prediction on Testing data",
# Form feature vectors for training data
trainingInputData, trainingOutputData = util.formFeatureVectors(trainingData)
actualOutputData = minMax.inverse_transform(testingData)[:, 0]

# Initial seed
initialSeedForValidation = trainingData[-1]
networkSize = 500
populationSize = 200
noOfBest = int(populationSize / 2)
noOfGenerations = 100
predictedOutputData, bestPopulation = utilityGA.tuneTrainPredictConnectivityGA(
    trainingInputData=trainingInputData,
    trainingOutputData=trainingOutputData,
    validationOutputData=validationData,
    initialInputSeedForValidation=initialSeedForValidation,
    horizon=nTesting,
    noOfBest=noOfBest,
    resTopology=utilityGA.Topology.Random,
    size=networkSize,
    popSize=populationSize,
    maxGeneration=noOfGenerations)

predictedOutputData = minMax.inverse_transform(predictedOutputData)

#Plotting of the prediction output and error
outputFolderName = "Outputs/Random_Graph_Outputs" + datetime.now().strftime(
    "%Y_%m_%d_%H_%M_%S")
os.mkdir(outputFolderName)
outplot = outputPlot.OutputPlot(outputFolderName + "/Prediction.html",
                                "Mackey-Glass Time Series - GA Optimization)",
                                "Prediction on Testing data", "Time", "Output")