private void Load(List <string> fileNames) { this.Total = fileNames.Count; FilesLoaded = new List <string>(); foreach (string fileName in fileNames) { try { if (this._isCancelationPending == true) { break; } ++this.Current; this.KeyCode = GetKeyCode(fileName); Trace trace = new Trace(this.KeyCode); trace.ClassificationActual = ActualClassificationFactory.Create(fileName); trace.ClassificationPredicted = PredictedClassificationFactory.Create(fileName); trace.Adopt(Adopter); trace.Load(); Add(trace); TraceAggregate.Load(trace); FilesLoaded.Add(fileName); } catch (Exception ex) { if (ex.Message.Contains(TwEnvironment.TwExemplars)) { string message = "This classifier requires the file " + TwEnvironment.TwExemplars + ", which is not installed by default due to its size."; message += " (" + ex.Message + ")"; MessageBox.Show(message); return; } else { throw new Exception(ex.Message + " KeyCode = " + this.KeyCode); } } } TraceAggregate.CalculateConfusionMatrix(); }
public IEnumerable <TraceAggregate> GroupByGrainAndSilo() { return(history.GroupBy(x => (x.Grain, x.SiloAddress)).Select(group => { var result = new TraceAggregate { SiloAddress = group.Key.SiloAddress, Grain = group.Key.Grain }; foreach (var record in group) { result.Count += record.Count; result.ExceptionCount += record.ExceptionCount; result.ElapsedTime += record.ElapsedTime; } return result; })); }