internal ClosedInterval( LowerClosedBoundary <TPoint, TPointComparer> lowerBoundary, UpperClosedBoundary <TPoint, TPointComparer> upperBoundary) { this.LowerBoundary = lowerBoundary; this.UpperBoundary = upperBoundary; }
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); }
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>())); }
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()); }