示例#1
0
 public ClosedOpenInterval(
     LowerClosedBoundary <TPoint, TPointComparer> lowerBoundary,
     UpperOpenBoundary <TPoint, TPointComparer> upperBoundary)
 {
     this.LowerBoundary = lowerBoundary;
     this.UpperBoundary = upperBoundary;
 }
示例#2
0
 internal OpenInterval(
     LowerOpenBoundary <TPoint, TPointComparer> lowerBoundary,
     UpperOpenBoundary <TPoint, TPointComparer> upperBoundary)
 {
     this.LowerBoundary = lowerBoundary;
     this.UpperBoundary = upperBoundary;
 }
 public static int Compare <TPoint, TPointComparer>(
     this UpperInfinityBoundary <TPoint, TPointComparer> leftClosed,
     UpperOpenBoundary <TPoint, TPointComparer> rightOpen,
     TPointComparer pointComparer)
     where TPoint : notnull
     where TPointComparer : IComparer <TPoint>, new()
 {
     return(1);
 }
 public static int Compare <TPoint, TPointComparer>(
     this UpperOpenBoundary <TPoint, TPointComparer> leftClosed,
     UpperOpenBoundary <TPoint, TPointComparer> rightOpen,
     TPointComparer pointComparer)
     where TPoint : notnull
     where TPointComparer : IComparer <TPoint>, new()
 {
     return(pointComparer.Compare(leftClosed.Point, rightOpen.Point));
 }
        public static int Compare <TPoint, TPointComparer>(
            this UpperOpenBoundary <TPoint, TPointComparer> leftClosed,
            UpperClosedBoundary <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>(
     LowerOpenBoundary <TPoint, TPointComparer> lowerOpen,
     UpperOpenBoundary <TPoint, TPointComparer> upperClosed,
     TPointComparer pointComparer)
     where TPoint : notnull
     where TPointComparer : IComparer <TPoint>, new()
 {
     return(OpenIntervalFactory.Build(
                lowerBoundary: lowerOpen,
                upperBoundary: upperClosed,
                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());
        }
示例#8
0
 public InfinityOpenInterval(
     UpperOpenBoundary <TPoint, TPointComparer> upperBoundary)
 {
     this.UpperBoundary = upperBoundary;
 }