From d5550cc53d600f9c1148a4843ffdb872e0379e10 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Mon, 24 Jul 2023 22:53:53 +0200 Subject: [PATCH] simulate without store --- src/modules/feature/feature-board.ts | 12 +++++++++--- src/modules/feature/store.ts | 20 ++++++++++++++------ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/modules/feature/feature-board.ts b/src/modules/feature/feature-board.ts index f1bba37..02d1dac 100644 --- a/src/modules/feature/feature-board.ts +++ b/src/modules/feature/feature-board.ts @@ -33,7 +33,7 @@ const hasQualityIssue = ({ return quality > qualityProbability / multiplicator } -export const newBoard = () => shuffleArray(initialFeatures) +export const newBacklog = () => shuffleArray(initialFeatures) export const initBoard = ( steps: FeatureStep[], @@ -212,7 +212,10 @@ const getQualityProbability = ( return probabilityOfGoodQuality } -export const nextDay = (state: State, strategy: Strategy): State => { +export const nextDay = ( + state: Omit, + strategy: Strategy +): Omit => { state.meta.totalDays++ state.meta.strategy[strategy]++ @@ -268,7 +271,10 @@ export const meanQualityIssue = (features: Feature[]) => { ) } -export const simulate = (state: State, strategy: Strategy): State => { +export const simulate = ( + state: Omit, + strategy: Strategy +): Omit => { let i = 0 while (!isProjectFinished(state.features) && i++ < HARD_STOP) { diff --git a/src/modules/feature/store.ts b/src/modules/feature/store.ts index ee72d77..8930587 100644 --- a/src/modules/feature/store.ts +++ b/src/modules/feature/store.ts @@ -35,9 +35,8 @@ export const useFeatureStore = defineStore('feature', { }), actions: { async initBoard() { - const newBoard = await instance.newBoard() - - this.backlog = newBoard + const newBacklog = await instance.newBacklog() + this.backlog = newBacklog this.steps = featureSteps this.features = await instance.initBoard( clone(this.steps), @@ -57,9 +56,19 @@ export const useFeatureStore = defineStore('feature', { this.features = newState.features }, async simulate(strategy: Strategy) { - await this.initBoard() + const backlog = await instance.newBacklog() + const steps = featureSteps + const features = await instance.initBoard(steps, backlog) - const newState = await instance.simulate(clone(this.$state), strategy) + const newState = await instance.simulate( + { + backlog, + steps, + features, + meta: resetMeta() + }, + strategy + ) const [worstFeature] = newState.features.sort((a, b) => a.qualityIssue > b.qualityIssue ? -1 : 1 @@ -78,7 +87,6 @@ export const useFeatureStore = defineStore('feature', { )[0][0] } }) - await this.initBoard() }, clearDashboard() { this.dashboards = []