public void GetSpansStartingInSpan1(int sl, int sc, int el, int ec, int s, int e) { var span = new LinePositionSpan(new(sl, sc), new(el, ec)); var array = ImmutableArray.Create( new LinePositionSpan(new(3, 0), new(3, 1)), new LinePositionSpan(new(3, 5), new(3, 6)), new LinePositionSpan(new(4, 4), new(4, 18)), new LinePositionSpan(new(5, 1), new(5, 2)), new LinePositionSpan(new(5, 2), new(5, 8)), new LinePositionSpan(new(19, 0), new(19, 42))); Assert.Equal(new Range(s, e), ActiveStatementsMap.GetSpansStartingInSpan(span.Start, span.End, array, startPositionComparer: (x, y) => x.Start.CompareTo(y))); }
public void GetSpansStartingInSpan2() { var span = TextSpan.FromBounds(8, 11); var array = ImmutableArray.Create( TextSpan.FromBounds(1, 6), // does not overlap TextSpan.FromBounds(3, 9), // overlaps TextSpan.FromBounds(4, 5), // does not overlap TextSpan.FromBounds(6, 7), // does not overlap TextSpan.FromBounds(7, 9), // overlaps TextSpan.FromBounds(10, 12), // overlaps TextSpan.FromBounds(13, 15)); // does not overlap // only one span has start position within the span: Assert.Equal(new Range(5, 6), ActiveStatementsMap.GetSpansStartingInSpan(span.Start, span.End, array, startPositionComparer: (x, y) => x.Start.CompareTo(y))); }