rankTopK method
Rank and return only the top-k items.
Implementation
RankedResults rankTopK(List<MatchResult> results, int k) {
final ranked = rank(results);
final truncated = ranked.items.length > k
? ranked.items.sublist(0, k)
: ranked.items;
final stableCount = truncated
.where((i) => i.rankConfidence.stability == RankStability.stable)
.length;
return RankedResults(
items: truncated,
summary: RankingSummary(
count: ranked.summary.count,
stableCount: stableCount,
tieGroupCount: ranked.summary.tieGroupCount,
medianGap: ranked.summary.medianGap,
),
);
}