public void PointOnBoundIsRightToBound( int point) { var closedLowerBound = new OpenLowerBound <int>( point: point); Assert.True( closedLowerBound.CompareToPoint( point: point, comparer: Comparer <int> .Default) > 0); }
public void PointToTheRightTest( int lowerBoundPoint, int point) { var closedLowerBound = new OpenLowerBound <int>( point: lowerBoundPoint); Assert.True( closedLowerBound.CompareToPoint( point: point, comparer: Comparer <int> .Default) < 0); }
public static List <Interval <TPoint> > Exclude <TPoint>( this Interval <TPoint> interval, HashSet <TPoint> pointSet, IComparer <TPoint> comparer) where TPoint : notnull { var orderedExclusions = pointSet .OrderBy( key => key, comparer: comparer) .Where( p => interval.Contains( point: p, comparer: comparer)); var lowerBound = interval.LowerBound; var upperBound = interval.UpperBound; var intervalList = new List <IInterval <TPoint> >(); foreach (var exclude in orderedExclusions) { intervalList.Add( item: IntervalFactory .Build( lowerBound: lowerBound, upperBound: new OpenUpperBound <TPoint>( point: exclude), comparer: comparer)); lowerBound = new OpenLowerBound <TPoint>( point: exclude); } intervalList .Add( item: IntervalFactory .Build( lowerBound: lowerBound, upperBound: upperBound, comparer: Comparer <TPoint> .Default)); return(intervalList .OfType <Interval <TPoint> >() .ToList()); }