namespace ReportGenerator.Models; internal readonly struct ImageStats { public string ImageName { get; } = string.Empty; public ICollection Reference { get; } = Array.Empty(); public ICollection Stats { get; } = Array.Empty(); public ImageStats( string imageName, ICollection taggedWords, IEnumerable scanResult ) { Reference = taggedWords; ImageName = imageName; Stats = scanResult .Select(t => new ProcessorStat(t.ProcessorName, taggedWords, t.GetWords())) .ToArray(); } public IEnumerable> ToTable() { // Title yield return Reference .Prepend("Processor") .Append("WER") .Append("CER (avg)") .Append("CER (sum)"); // Spacer yield return Enumerable.Range(0, Reference.Count + 4).Select(_ => "---"); // Content foreach (var stat in Stats) { yield return stat.ToRow(); } } }