rankTopK method

RankedResults rankTopK(
  1. List<MatchResult> results,
  2. int k
)

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,
    ),
  );
}