public static IRecorder GetRecorder(RecorderType recorderType) { IRecorder recorder; switch (recorderType) { case RecorderType.File: recorder = new FileRecorder(); break; case RecorderType.Console: recorder = new ConsoleRecorder(); break; case RecorderType.Remote: recorder = new RemoteRecorder(); break; default: recorder = null; break; } return(recorder); }
public void SaveMetrics(string path) { ComputeAlgorithmMetrics(); var searchTimeDict = MetricsDictionary.ElementAt(0); string csvFormatMessage = "Algorithm, SearchTime, CustomerNumber"; foreach (var metrics in searchTimeDict.Value)//writes base csv format message { var metricName = metrics.Key; csvFormatMessage += ", " + metricName; } var recorder = new FileRecorder(path, csvFormatMessage); var fileLogger = new Logger.Logger(recorder); foreach (var currentMetricDictionary in MetricsDictionary) { string csvMessage = currentMetricDictionary.Key.Item1 + ", " + currentMetricDictionary.Key.Item2 + ", " + currentMetricDictionary.Key.Item3; foreach (var metric in currentMetricDictionary.Value) { var metricValue = metric.Value; csvMessage += ", " + metricValue; } fileLogger.Log(csvMessage); } }
public void SaveStats(string path) { IRecorder fileRecorder = new FileRecorder(path); var myFileLogger = new Logger.Logger(fileRecorder); var statsPrintableList = GetStatsPrintableList(); myFileLogger.Log(statsPrintableList); }
private void LoadRecords() { FileRecorder fileRecorder = new FileRecorder(); foreach (Record record in fileRecorder.RecordList) { AddRecord(record, false); foreach (SubRecord subRecord in record.SubRecords) { AddSubRecord(record.ID, subRecord, false); } } }
public override void OnSimulationStart() { IRecorder fileRecorder = new FileRecorder(Path.Combine(Params.CurrentSimulationLoggerPath, @"event_logs.txt")); EventLogger = new Logger.Logger(fileRecorder); IRecorder validationsRecorder = new FileRecorder(Path.Combine(Params.CurrentSimulationLoggerPath, @"validations.txt"), "ValidationId,CustomerId,Category,OperationSuccess,VehicleId,RouteId,TripId,ServiceStartTime,StopId,Time"); ValidationsLogger = new Logger.Logger(validationsRecorder); if (Params.NumberDynamicRequestsPerHour > 0) { AddAllDynamicRequestEvents(); } Params.VehicleNumber = Context.VehicleFleet.Count; Params.PrintParams(); var paramsPath = Path.Combine(Params.CurrentSimulationLoggerPath, @"params.txt"); Params.SaveParams(paramsPath); Stats = new SimulationStats(this);//initializes Stats SortEvents(); }
public void TestFixtureTearDown() { _fileRecorder.Clear(); _fileRecorder = null; }
public void TestFixtureSetup() { _fileRecorder = new PaloAltoUrlUnifiedRecorder(); _context = new FileLineRecorderContext(_base); }
public void StructureFile(string path) { FileDataReader fdr = new FileDataReader(); var unstructuredData = fdr.ImportData(path, ',', false); var algorithmCounter = 0; var datasetId = 1; var algorithmsList = new List <string>(); var dataSetList = new List <string[]>(); var dataList = new List <string[]>(); string[] currentDataset = null; foreach (var data in unstructuredData) { if (algorithmCounter == 0) { string[] dataSet = new string[data.Length + 1]; dataSet[0] = datasetId++.ToString(); for (int i = 0; i < data.Length; i++) { dataSet[i + 1] = data[i]; } Console.WriteLine("Dataset " + dataSet[0] + "- Customer Number: " + dataSet[1] + "; Vehicle number: " + dataSet[2] + " ; MaxRideTime: " + dataSet[3] + " ; MaxAllowedUpperBound: " + dataSet[4]); dataSetList.Add(dataSet); currentDataset = dataSet; } else { var algorithmStats = data; Console.WriteLine(algorithmStats[0]); if (!algorithmsList.Contains(algorithmStats[0])) { algorithmsList.Add(algorithmStats[0]); } string[] algData = new string[algorithmStats.Length + 1]; algData[0] = algorithmsList.FindIndex(a => a == algorithmStats[0]).ToString(); for (int i = 1; i < algorithmStats.Length; i++) { algData[i] = algorithmStats[i]; } algData[algorithmStats.Length] = dataSetList.FindIndex(d => d == currentDataset).ToString(); dataList.Add(algData); Console.WriteLine("Alg: " + algData[0] + " ; AllowdropNodes:" + algData[1] + " ; Feasible: " + algData[2] + " ; SearchTime: " + algData[3] + " ; ComputationTime:" + algData[4] + " ; ObjValue: " + algData[5] + " ; MaximumAllowedDeliveryDelay: " + algData[6] + " ; TotalServedRequests: " + algData[7] + " ; TotalDistance: " + algData[8] + " ; TotalTime: " + algData[9] + " ; VehiclesUsed: " + algData[10] + " ; Dataset: " + algData[11]); } algorithmCounter++; if (algorithmCounter == 8) { algorithmCounter = 0; } } IRecorder algorithmStructRecorder = new FileRecorder(Path.Combine(@Path.Combine(Environment.CurrentDirectory, @"Logger", @"AlgorithmsStruct.csv"))); IRecorder datasetRecorder = new FileRecorder(Path.Combine(@Path.Combine(Environment.CurrentDirectory, @"Logger", @"Dataset.csv"))); for (int j = 0; j < 2; j++) { IRecorder recorder; List <string[]> dataToBeRecorded = null; if (j == 0) { dataToBeRecorded = dataList; recorder = algorithmStructRecorder; string firstLine = "AlgId, AllowdropNodes,Feasible,SearchTime,ComputationTime,ObjValue,MaximumAllowedDeliveryDelay,TotalServedRequests,TotalDistance,TotalTime, VehiclesUsed, DatasetId"; recorder.Record(firstLine); } else { dataToBeRecorded = dataSetList; recorder = datasetRecorder; string firstLine = "DatasetId,CustomerNumber, Vehicle number,MaxRideTime,MaxAllowedUpperBound"; recorder.Record(firstLine); } foreach (var data in dataToBeRecorded) { var toBeRecorded = ""; var splitter = ','; for (int i = 0; i < data.Length; i++) { if (i != data.Length - 1) { toBeRecorded += data[i] + splitter; } else { toBeRecorded += data[i]; } } recorder.Record(toBeRecorded); } } }