This commit is contained in:
@@ -44,20 +44,26 @@ func (n Normalizer) Normalize(deltas ledger.Deltas) ledger.Deltas {
|
||||
if !like(delta) {
|
||||
continue
|
||||
}
|
||||
func() {
|
||||
for pattern := range n.m {
|
||||
if regexp.MustCompile(pattern).MatchString(delta.Name) {
|
||||
for _, normalize := range n.m[pattern] {
|
||||
if normalize.startDate < delta.Date {
|
||||
delta.Value /= normalize.factor
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
deltas[i] = delta
|
||||
deltas[i] = n.NormalizeDelta(delta)
|
||||
}
|
||||
|
||||
return deltas
|
||||
}
|
||||
|
||||
func (n Normalizer) NormalizeDelta(delta ledger.Delta) ledger.Delta {
|
||||
delta.Value /= n.NormalizeFactor(delta)
|
||||
return delta
|
||||
}
|
||||
|
||||
func (n Normalizer) NormalizeFactor(delta ledger.Delta) float64 {
|
||||
for pattern := range n.m {
|
||||
if regexp.MustCompile(pattern).MatchString(delta.Name) {
|
||||
for _, normalize := range n.m[pattern] {
|
||||
if normalize.startDate < delta.Date {
|
||||
return normalize.factor
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1.0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user