示例#1
0
 internal ClosedInterval(
     LowerClosedBoundary <TPoint, TPointComparer> lowerBoundary,
     UpperClosedBoundary <TPoint, TPointComparer> upperBoundary)
 {
     this.LowerBoundary = lowerBoundary;
     this.UpperBoundary = upperBoundary;
 }
示例#2
0
 public ClosedOpenInterval(
     LowerClosedBoundary <TPoint, TPointComparer> lowerBoundary,
     UpperOpenBoundary <TPoint, TPointComparer> upperBoundary)
 {
     this.LowerBoundary = lowerBoundary;
     this.UpperBoundary = upperBoundary;
 }
        public ClosedInfinityInterval(
            LowerClosedBoundary <TPoint, TPointComparer> lowerBoundary)
        {
            UpperInfinityBoundary <TPoint, TPointComparer> upperBoundary;

            this.LowerBoundary = lowerBoundary;
            this.UpperBoundary = upperBoundary;
        }
 public static int Compare <TPoint, TPointComparer>(
     this LowerClosedBoundary <TPoint, TPointComparer> leftClosed,
     LowerInfinityBoundary <TPoint, TPointComparer> rightClosed,
     TPointComparer pointComparer)
     where TPoint : notnull
     where TPointComparer : IComparer <TPoint>, new()
 {
     return(1);
 }
        public static int Compare <TPoint, TPointComparer>(
            this LowerOpenBoundary <TPoint, TPointComparer> leftClosed,
            LowerClosedBoundary <TPoint, TPointComparer> rightClosed,
            TPointComparer pointComparer)
            where TPoint : notnull
            where TPointComparer : IComparer <TPoint>, new()
        {
            var comparison = pointComparer.Compare(leftClosed.Point, rightClosed.Point);

            return(comparison == 0 ? 1 : comparison);
        }
示例#6
0
 public static IInterval <TPoint, TPointComparer> Build <TPoint, TPointComparer>(
     LowerClosedBoundary <TPoint, TPointComparer> lowerClosed,
     UpperOpenBoundary <TPoint, TPointComparer> upperOpen,
     TPointComparer pointComparer)
     where TPoint : notnull
     where TPointComparer : IComparer <TPoint>, new()
 {
     return(ClosedOpenIntervalFactory.Build(
                lowerBoundary: lowerClosed,
                upperBoundary: upperOpen,
                pointComparer: pointComparer)
            .Match(
                closedInterval => (IInterval <TPoint, TPointComparer>)closedInterval,
                () => new EmptyInterval.EmptyInterval <TPoint, TPointComparer>()));
 }
示例#7
0
        public static Option <ClosedOpenInterval <TPoint, TPointComparer> > Build <TPoint, TPointComparer>(
            LowerClosedBoundary <TPoint, TPointComparer> lowerBoundary,
            UpperOpenBoundary <TPoint, TPointComparer> upperBoundary,
            TPointComparer pointComparer)
            where TPoint : notnull
            where TPointComparer : IComparer <TPoint>, new()
        {
            if (pointComparer.Compare(lowerBoundary.Point, upperBoundary.Point) >= 0)
            {
                return(Option.None <ClosedOpenInterval <TPoint, TPointComparer> >());
            }

            return(new ClosedOpenInterval <TPoint, TPointComparer>(
                       lowerBoundary: lowerBoundary,
                       upperBoundary: upperBoundary)
                   .Some());
        }