using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HeuristicLab.Problems.GrammaticalOptimization { public class SentenceSetStatistics { public int NumberOfSentences { get; private set; } public string BestSentence { get; private set; } public string FirstSentence { get; private set; } public string LastSentence { get; private set; } public double BestSentenceQuality { get; private set; } public double FirstSentenceQuality { get; private set; } public double LastSentenceQuality { get; private set; } public double AverageQuality { get { return sumQualities / NumberOfSentences; } } // public double MedianQuality { get; private set; } private double sumQualities; public void AddSentence(string sentence, double quality) { if (NumberOfSentences == 0) { FirstSentence = sentence; FirstSentenceQuality = quality; } if (quality > BestSentenceQuality) { BestSentence = sentence; BestSentenceQuality = quality; } sumQualities += quality; NumberOfSentences++; LastSentence = sentence; LastSentenceQuality = quality; } public override string ToString() { return string.Format("Sentences: {0,10} avg.-quality {1,7:F5} best {2,7:F5} {3} first {4,7:F5} {5} last {6,7:F5} {7}", NumberOfSentences, AverageQuality, BestSentenceQuality, BestSentence, FirstSentenceQuality, FirstSentence, LastSentenceQuality, LastSentence ); } } }