public override void Run() { // Read files IEnumerable <Run> runs = AbstractCommand.ReadInputFile(this._inputPath); IEnumerable <RelevanceEstimate> judged = new RelevanceEstimate[] { }; if (this._judgedPath != null) { judged = AbstractCommand.ReadKnownJudgments(this._judgedPath); } // Initialize wrapped estimator this._estimator.Initialize(runs, judged); // Compile list of all query-doc pairs Dictionary <string, HashSet <string> > querydocs = AbstractCommand.ToQueryDocuments(runs); // Estimate relevance of all query-doc pairs List <RelevanceEstimate> estimates = new List <RelevanceEstimate>(); foreach (var qd in querydocs) { foreach (var doc in qd.Value) { estimates.Add(this._estimator.Estimate(qd.Key, doc)); } } // Output estimates TabSeparated io = new TabSeparated(this._decimalDigits); ((IWriter <RelevanceEstimate>)io).Write(Console.Out, estimates); }