Skip to content

Commit 249372f

Browse files
upupmingharttle
authored andcommitted
fix: TreeMultiSet delete
1 parent 38c0a07 commit 249372f

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

test/treeset.spec.ts

+5
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,10 @@ describe('treeset', () => {
5656
set.add(10)
5757
expect(set.count(10)).toEqual(2)
5858
})
59+
it('delete should only erase the value when count is 0', () => {
60+
const set = new TreeMultiSet([4, 4])
61+
set.delete(4)
62+
expect(set.values().next().value).toEqual(4)
63+
})
5964
})
6065
})

treeset.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,10 @@ class TreeMultiSet<T = number> {
128128
}
129129

130130
delete (val: T): void {
131-
this.tree.deleteByValue(val)
132131
this.decrease(val)
132+
if (this.count(val) === 0) {
133+
this.tree.deleteByValue(val)
134+
}
133135
this.#size--
134136
}
135137

0 commit comments

Comments
 (0)