diff --git a/duration/operation.go b/duration/operation.go index 76f16e2..261d3e5 100644 --- a/duration/operation.go +++ b/duration/operation.go @@ -49,6 +49,14 @@ func (d Duration) RangeTo(dur Duration, rateP, rateI, rateD float64) []Duration r = append(make([]Duration, 0), d, dur) } + if r[0] > d { + r = append(append(make([]Duration, 0), d), r...) + } + + if r[len(r)-1] < dur { + r = append(r, dur) + } + return r } @@ -70,6 +78,14 @@ func (d Duration) RangeFrom(dur Duration, rateP, rateI, rateD float64) []Duratio r = append(make([]Duration, 0), d, dur) } + if r[0] > dur { + r = append(append(make([]Duration, 0), dur), r...) + } + + if r[len(r)-1] < d { + r = append(r, d) + } + return r }