summaryrefslogtreecommitdiff
path: root/lib/containers
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-04-04 13:16:55 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2023-04-04 13:16:55 -0600
commitabad134af95903657b3a35ae69b827bcba22f841 (patch)
treebc7a628ffb336b1c790f84b3b489e8235b4ec81d /lib/containers
parent5d0bd02aefed7e08f3afddf20066605149cb0b87 (diff)
parent607ea25ea1c0397749db39a15bd52c5e0d3cf552 (diff)
Merge branch 'lukeshu/fixes'
Diffstat (limited to 'lib/containers')
-rw-r--r--lib/containers/intervaltree.go14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/containers/intervaltree.go b/lib/containers/intervaltree.go
index d2e2732..16a9fdd 100644
--- a/lib/containers/intervaltree.go
+++ b/lib/containers/intervaltree.go
@@ -4,6 +4,10 @@
package containers
+import (
+ "fmt"
+)
+
type interval[K Ordered[K]] struct {
Min, Max K
}
@@ -71,11 +75,17 @@ func (t *IntervalTree[K, V]) Equal(u *IntervalTree[K, V]) bool {
func (t *IntervalTree[K, V]) Insert(val V) {
t.init()
+ min := t.MinFn(val)
+ max := t.MaxFn(val)
+ if max.Compare(min) < 0 {
+ panic(fmt.Errorf("containers.IntervalTree.Insert: max < min: [%v, %v]: %v",
+ min, max, val))
+ }
t.inner.Insert(intervalValue[K, V]{
Val: val,
ValSpan: interval[K]{
- Min: t.MinFn(val),
- Max: t.MaxFn(val),
+ Min: min,
+ Max: max,
},
})
}