statistics property

SearchStatistics get statistics

Get statistics about the search results

Implementation

SearchStatistics get statistics {
  final surahCounts = <int, int>{};
  final juzCounts = <int, int>{};
  int meccanCount = 0;
  int medinanCount = 0;

  for (final ayah in results) {
    surahCounts[ayah.surah.id] = (surahCounts[ayah.surah.id] ?? 0) + 1;
    juzCounts[ayah.juz] = (juzCounts[ayah.juz] ?? 0) + 1;

    if (ayah.surah.isMeccan) {
      meccanCount++;
    } else {
      medinanCount++;
    }
  }

  return SearchStatistics(
    totalResults: totalResults,
    uniqueSurahs: surahCounts.length,
    uniqueJuz: juzCounts.length,
    meccanResults: meccanCount,
    medinanResults: medinanCount,
    surahDistribution: surahCounts,
    juzDistribution: juzCounts,
  );
}