predict based on MAX DATE, not max value
parent
c7423f8f72
commit
a950c48ed1
|
|
@ -48,6 +48,9 @@ func registerWithContributionPredictionForNameForCurrency(reg Register, window t
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if time.Since(t) > time.Hour*24*180 {
|
||||
continue
|
||||
}
|
||||
if v, ok := reg[d][name][currency]; ok {
|
||||
contributions = append(contributions, contribution{t: t, v: v})
|
||||
}
|
||||
|
|
@ -55,7 +58,7 @@ func registerWithContributionPredictionForNameForCurrency(reg Register, window t
|
|||
sort.Slice(contributions, func(i, j int) bool {
|
||||
return contributions[i].t.Before(contributions[j].t)
|
||||
})
|
||||
if len(contributions) < 2 {
|
||||
if len(contributions) < 3 {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -106,13 +109,11 @@ func registerWithContributionPredictionForNameForCurrency(reg Register, window t
|
|||
}()
|
||||
|
||||
latest := func() float64 {
|
||||
max := 0.0
|
||||
for d := range reg {
|
||||
if other := reg[d][name][currency]; other > max {
|
||||
max = other
|
||||
}
|
||||
last := 0.0
|
||||
for _, d := range reg.Dates() {
|
||||
last = reg[d][name][currency]
|
||||
}
|
||||
return max
|
||||
return last
|
||||
}()
|
||||
for _, predictionTime := range predictionTimes(window) {
|
||||
k := predictionTime.Format("2006-01")
|
||||
|
|
|
|||
|
|
@ -75,16 +75,21 @@ func TestBPIPrediction(t *testing.T) {
|
|||
}
|
||||
|
||||
func newTestRegister() map[string]Balances {
|
||||
s := func(t time.Time) string {
|
||||
return t.Format("2006-01")
|
||||
}
|
||||
day := time.Hour * 24
|
||||
lastYear := time.Now().Add(-1 * day * time.Duration(time.Now().YearDay()))
|
||||
return map[string]Balances{
|
||||
"2001-01": Balances{"X": Balance{USD: 1}},
|
||||
"2001-02": Balances{"X": Balance{USD: 2}},
|
||||
"2001-03": Balances{"X": Balance{USD: 3}},
|
||||
"2001-04": Balances{"X": Balance{USD: 4}},
|
||||
"2001-05": Balances{"X": Balance{USD: 5}},
|
||||
"2001-06": Balances{"X": Balance{USD: 6}},
|
||||
"2001-07": Balances{"X": Balance{USD: 8}},
|
||||
"2001-08": Balances{"X": Balance{USD: 10}},
|
||||
"2001-09": Balances{"X": Balance{USD: 12}},
|
||||
"2001-10": Balances{"X": Balance{USD: 16}},
|
||||
s(lastYear.Add(day * 0)): Balances{"X": Balance{USD: 1}},
|
||||
s(lastYear.Add(day * 32)): Balances{"X": Balance{USD: 2}},
|
||||
s(lastYear.Add(day * 64)): Balances{"X": Balance{USD: 3}},
|
||||
s(lastYear.Add(day * 94)): Balances{"X": Balance{USD: 4}},
|
||||
s(lastYear.Add(day * 124)): Balances{"X": Balance{USD: 5}},
|
||||
s(lastYear.Add(day * 154)): Balances{"X": Balance{USD: 6}},
|
||||
s(lastYear.Add(day * 184)): Balances{"X": Balance{USD: 8}},
|
||||
s(lastYear.Add(day * 214)): Balances{"X": Balance{USD: 10}},
|
||||
s(lastYear.Add(day * 244)): Balances{"X": Balance{USD: 12}},
|
||||
s(lastYear.Add(day * 274)): Balances{"X": Balance{USD: 16}},
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue