Skip to content
Snippets Groups Projects
Commit 9102bce7 authored by Julia Friesel's avatar Julia Friesel
Browse files

Return cycle phase starts

parent 836bea77
No related branches found
No related tags found
No related merge requests found
......@@ -2,18 +2,32 @@ import getTemperatureShift from './temperature'
import getMucusShift from './mucus'
export default function (cycleDays) {
const assumeFertile = { assumeFertility: true }
const assumeFertileStatus = { assumeFertility: true }
// TODO second phase calculation
if (cycleDays.length) assumeFertileStatus.phases = [
{
startDate: cycleDays[0].date,
startTime: '00:00'
},
'TODO'
]
const temperatureShift = getTemperatureShift(cycleDays)
if (!temperatureShift.detected) return assumeFertile
if (!temperatureShift.detected) return assumeFertileStatus
const tempEvalEndIndex = cycleDays.indexOf(temperatureShift.evaluationCompleteDay)
const mucusShift = getMucusShift(cycleDays, tempEvalEndIndex)
if (!mucusShift.detected) return assumeFertile
if (!mucusShift.detected) return assumeFertileStatus
const phase2 = {
startDate: temperatureShift.evaluationCompleteDay.date,
startTime: '18:00'
}
return {
assumeFertility: false,
temperatureShift,
mucusShift
mucusShift,
phases: assumeFertileStatus.phases.concat(phase2)
}
}
\ No newline at end of file
......@@ -4,18 +4,18 @@ import getSensiplanStatus from '../../lib/sympto'
const expect = chai.expect
function convertToSymptoFormat(val, i) {
return {
date: i,
temperature: val.temperature ? { value: val.temperature } : null,
mucus: val.mucus ? { value: val.mucus } : null
}
const sympto = { date: i }
if (val.temperature) sympto.temperature = { value: val.temperature }
if (val.mucus) sympto.mucus = { value: val.mucus }
if (val.bleeding) sympto.bleeding = { value: val.bleeding }
return sympto
}
describe('sympto', () => {
describe('evaluating mucus and temperature shift together', () => {
it('reports fertile when mucus reaches best quality again within temperature evaluation phase', function () {
const values = [
{ temperature: 36.6 },
{ temperature: 36.6 , bleeding: 2 },
{ temperature: 36.65 },
{ temperature: 36.5 },
{ temperature: 36.6 },
......@@ -48,6 +48,11 @@ describe('sympto', () => {
const status = getSensiplanStatus(temperatures)
expect(status).to.eql({
assumeFertility: false,
phases: [
{ startDate: 0, startTime: '00:00'},
'TODO',
{ startDate: 17, startTime: '18:00'}
],
temperatureShift: {
detected: true,
ltl: 36.55,
......@@ -60,7 +65,7 @@ describe('sympto', () => {
evaluationCompleteDay: {
date: 17,
temperature: { value: 36.75 },
mucus: { value: 4 }
mucus: { value: 4 },
}
},
mucusShift: {
......@@ -68,7 +73,7 @@ describe('sympto', () => {
mucusPeak: {
date: 17,
mucus: { value: 4 },
temperature: { value: 36.75 }
temperature: { value: 36.75 },
}
}
})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment