private static double GetMedian(int latency, string protocol, int setId, DataSetDao dao) { var items = new List <int>(); var requests = dao.GetRequestRecords(setId, protocol, latency); foreach (var record in requests) { items.Add(record.ResponseTime); } items.Sort(); if (items.Count % 2 == 0) { return((items.ElementAt(items.Count / 2 - 1) + items.ElementAt(items.Count / 2)) / 2.0); } return(items.ElementAt(items.Count / 2)); }
private static void DoRequestAnalysis(int latency, string protocol, int setId, DataSetDao dao, InvertedCSVFile file, Func <int, string, int, Dictionary <string, StatEntry> > selector, string[] entryHeaders) { Console.Write($"Analyzing requests for protocol {protocol}/{latency}ms -> "); //var stats = dao.GetStats(setId, protocol, latency); var stats = selector(setId, protocol, latency); Append(protocol, latency, stats, file, t => t.Mean, entryHeaders); Append(protocol, latency, stats, file, t => t.StandardDeviation, entryHeaders); //Append(protocol, latency, stats, file, t => GetMedian(latency, protocol, setId, dao)); Console.WriteLine("DONE!"); }