ReviewResult
calculate({ - required String algorithm,
- required int quality,
- required int repetitions,
- required double easinessFactor,
- required int intervalDays,
- double? stability,
- double? difficulty,
- String? cardState,
- double? lastElapsedDays,
- double targetRetention = 0.9,
})
Implementation
static ReviewResult calculate({
required String algorithm,
required int quality,
// SM-2 fields
required int repetitions,
required double easinessFactor,
required int intervalDays,
// FSRS fields (nullable)
double? stability,
double? difficulty,
String? cardState,
double? lastElapsedDays,
double targetRetention = 0.9,
}) {
if (algorithm == 'fsrs') {
return _calculateFsrs(
quality: quality,
stability: stability ?? 0,
difficulty: difficulty ?? 0,
cardState: cardState ?? 'new',
lastElapsedDays: lastElapsedDays ?? 0,
targetRetention: targetRetention,
repetitions: repetitions,
easinessFactor: easinessFactor,
);
}
return SpacedRepetition.calculate(
quality: quality,
repetitions: repetitions,
easinessFactor: easinessFactor,
intervalDays: intervalDays,
);
}