shinout / interval-tree2

interval tree in CoffeeScript, available in any JS runtime
MIT License
34 stars 15 forks source link

PointSearch Issue #11

Open alikhanovlevon opened 6 years ago

alikhanovlevon commented 6 years ago

Hello,

Please see the code below to find the issue that I have faced.

var itree = new IntervalTree(10);

itree.add(50, 80, 'foo'); itree.add(44, 199, 'bar');

itree.pointSearch(55);

The result of the last call should contain 2 objects, but it returns only one of them. After digging a bit, I found out the in Node.js endPointSearch function calculates the index where 55 should be inserted.

index = this.ends.firstPositionOf({ end: val });

The returned value is -1. So this code returns the last item in the list: return this.ends.slice(index);

Can you please look into this?

Thanks, Levon

ephemer commented 2 years ago

I just spent the afternoon painstakingly porting this code to Swift and then came across the same bug :(

I will try to debug this but I'm not sure it'll help you