Ignore highest quality after end of eval
This commit is contained in:
+9
-4
@@ -1,10 +1,15 @@
|
||||
export default function (cycleDays, tempEvalEndIndex) {
|
||||
const mucusDays = cycleDays.filter(day => day.mucus && !day.mucus.exclude)
|
||||
const bestQuality = Math.max(...mucusDays.map(day => day.mucus.value))
|
||||
let currentBestQuality = 0
|
||||
|
||||
for (let i = 0; i < mucusDays.length; i++) {
|
||||
const day = mucusDays[i]
|
||||
if (day.mucus.value !== bestQuality) continue
|
||||
|
||||
if (day.mucus.value > currentBestQuality) {
|
||||
currentBestQuality = day.mucus.value
|
||||
}
|
||||
|
||||
if (day.mucus.value !== currentBestQuality) continue
|
||||
|
||||
// the three following days must be of lower quality
|
||||
// AND no best quality day may occur until temperature evaluation has
|
||||
@@ -13,7 +18,7 @@ export default function (cycleDays, tempEvalEndIndex) {
|
||||
if (threeFollowingDays.length < 3) continue
|
||||
|
||||
const bestQualityOccursIn3FollowingDays = threeFollowingDays.some(day => {
|
||||
return day.mucus.value >= bestQuality
|
||||
return day.mucus.value >= currentBestQuality
|
||||
})
|
||||
if (bestQualityOccursIn3FollowingDays) continue
|
||||
|
||||
@@ -23,7 +28,7 @@ export default function (cycleDays, tempEvalEndIndex) {
|
||||
.filter(day => day.mucus && !day.mucus.exclude)
|
||||
|
||||
const noBestQualityUntilEndOfTempEval = relevantDays.every(day => {
|
||||
return day.mucus.value < bestQuality
|
||||
return day.mucus.value < currentBestQuality
|
||||
})
|
||||
|
||||
if (noBestQualityUntilEndOfTempEval) {
|
||||
|
||||
Reference in New Issue
Block a user