validateQuranData static method
Validate the loaded data structure
Implementation
static bool validateQuranData(QuranData data) {
try {
// Check basic structure
if (data.surahs.length != 114) {
return false;
}
// Check total ayat count
final totalAyat =
data.surahs.fold<int>(0, (sum, surah) => sum + surah.numberOfAyahs);
if (totalAyat != 6236) {
return false;
}
// Check surah ordering
for (int i = 0; i < data.surahs.length; i++) {
if (data.surahs[i].id != i + 1) {
return false;
}
}
// Check ayah ordering within surahs
for (final surah in data.surahs) {
if (surah.ayat.length != surah.numberOfAyahs) {
return false;
}
for (int i = 0; i < surah.ayat.length; i++) {
if (surah.ayat[i].id != i + 1) {
return false;
}
}
}
// Check Juz and Hizb mappings
final juzSet = <int>{};
final hizbSet = <int>{};
for (final surah in data.surahs) {
for (final ayah in surah.ayat) {
if (ayah.juz < 1 || ayah.juz > 30) {
return false;
}
if (ayah.hizb < 1 || ayah.hizb > 60) {
return false;
}
juzSet.add(ayah.juz);
hizbSet.add(ayah.hizb);
}
}
// Should have all 30 Juz and 60 Hizb
if (juzSet.length != 30 || hizbSet.length != 60) {
return false;
}
return true;
} catch (e) {
return false;
}
}