List <Interval> GetIntervalsList() { List <Interval> intervals = new List <Interval>(); List <string> intervalsStr = new List <string>(); intervalsStr = IntervalString.Split('U').ToList(); foreach (var interStr in intervalsStr) { intervals.Add(Interval.Parse(interStr)); } return(intervals); }
internal Intervals Subs(Function func) { List <string> intervalsStr; List <Interval> intervals = new List <Interval>(); if (func.Argument.Power == 1) { intervalsStr = IntervalString.Split('U').ToList(); foreach (var interStr in intervalsStr) { intervals.Add(Interval.Parse(interStr)); } foreach (var interval in intervals) { if (!interval.IsInfinityInterval) { Fraction leftBorder = func.Eq(interval.LeftBorder); Fraction rightBorder = func.Eq(interval.RightBorder); interval.ChangeBorders(leftBorder, rightBorder); } else { Fraction border = func.Eq(interval.Border); interval.ChangeBorderForInfinity(border); } } } Intervals newIntervals = new Intervals(intervals); Intervals endInterval; if (func.ValuesRange != null) { endInterval = newIntervals * func.ValuesRange; } else { endInterval = newIntervals; } return(endInterval); }
public Property SimpleTryParseStringOfComparablesIsEquivalentToComparerBasedOne(IntervalString <T, DefaultValueComparer <T> > intervalString) => Result.From(() => (Interval <T> .TryParse(intervalString.String, out var interval), interval)).Equals(
public Property FullTryParseSpanOfComparablesIsEquivalentToComparerBasedOne(IntervalString <T, DefaultValueComparer <T> > intervalString, Parser <T> parser) => Result.From(() => (Interval <T> .TryParse(intervalString.Span, parser.TryParseSpan, out var interval), interval)).Equals(
public Property SimpleParseStringOfComparablesIsEquivalentToComparerBasedOne(IntervalString <T, DefaultValueComparer <T> > intervalString) => Result.From(() => Interval <T> .Parse(intervalString.String)).Equals( Result.From(() => Interval <T, DefaultValueComparer <T> > .Parse(intervalString.String))).ToProperty();
public Property FullParseSpanOfComparablesIsEquivalentToComparerBasedOne(IntervalString <T, DefaultValueComparer <T> > intervalString, Parser <T> parser) => Result.From(() => Interval <T> .Parse(intervalString.Span, parser.ParseSpan)).Equals( Result.From(() => Interval <T, DefaultValueComparer <T> > .Parse(intervalString.Span, parser.ParseSpan))).ToProperty();
internal Intervals(List <Interval> intervals) { IntervalString = string.Empty; IncludedPoints = new List <Fraction>(); NotIncludedPoints = new List <Fraction>(); Points = new List <Fraction>(); IntervalsList = intervals; foreach (var interval in intervals) { if (interval.IsInfinityInterval) { if (interval.WichSide) { IntervalString += $"(-inf {interval.Border}{(interval.BorderIsIncluded ? "]" : ")")}U"; } else { IntervalString += $"{(interval.BorderIsIncluded ? "[" : "(")}{interval.Border} +inf)"; } if (interval.BorderIsIncluded) { IncludedPoints.Add(interval.Border); } else { NotIncludedPoints.Add(interval.Border); } Points.Add(interval.Border); } else { if (!interval.LeftBorder.Equals(interval.RightBorder)) { IntervalString += $"{(interval.LeftIsIncluded ? "[" : "(")}{interval.LeftBorder} {interval.RightBorder}{(interval.RightIsIncluded ? "]" : ")")}U"; } else { IntervalString += $"{{{interval.LeftBorder}}}U"; } if (interval.LeftIsIncluded) { IncludedPoints.Add(interval.LeftBorder); } else { NotIncludedPoints.Add(interval.LeftBorder); } if (interval.RightIsIncluded) { IncludedPoints.Add(interval.RightBorder); } else { NotIncludedPoints.Add(interval.RightBorder); } Points.Add(interval.LeftBorder); Points.Add(interval.RightBorder); } } IntervalString = IntervalString.Trim('U'); }
public Property SimpleTryParseStringIsEquivalentToFullTryParseSpan(IntervalString <T, TComparer> intervalString) => Result.From(() => (Interval <T, TComparer> .TryParse(intervalString.String, out var interval), interval)).Equals(
public Property FullParseStringIsEquivalentToFullParseSpan(IntervalString <T, TComparer> intervalString, Parser <T> parser) => Result.From(() => Interval <T, TComparer> .Parse(intervalString.String, parser.ParseString)).Equals( Result.From(() => Interval <T, TComparer> .Parse(intervalString.Span, parser.ParseSpan))). When(intervalString.String != null). Or(!parser.IsSupported);
public Property SimpleParseStringIsEquivalentToFullParseString(IntervalString <T, TComparer> intervalString) => Result.From(() => Interval <T, TComparer> .Parse(intervalString.String)).Equals( Result.From(() => Interval <T, TComparer> .Parse(intervalString.String, GetSimpleParser <Parse <T> >("Parse")))). When(intervalString.String != null);
public Property SimpleParseSpanIsEquivalentToFullParseSpan(IntervalString <T, TComparer> intervalString) => Result.From(() => Interval <T, TComparer> .Parse(intervalString.Span)).Equals( Result.From(() => Interval <T, TComparer> .Parse(intervalString.Span, GetSimpleParser <ParseSpan <T> >("Parse")))).ToProperty();