Ejemplo n.º 1
0
        public void PointOnBoundIsRightToBound(
            int point)
        {
            var closedLowerBound = new OpenLowerBound <int>(
                point: point);

            Assert.True(
                closedLowerBound.CompareToPoint(
                    point: point,
                    comparer: Comparer <int> .Default) > 0);
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
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());
        }