コード例 #1
0
ファイル: SingleRange.cs プロジェクト: yuba/ValueRange
            public static SingleRange Intersect(SingleRange a, SingleRange b)
            {
                BoundValue <T> newLower = a.lower < b.lower ? b.lower : a.lower;
                BoundValue <T> newUpper = a.upper < b.upper ? a.upper : b.upper;

                return(new SingleRange(newLower, newUpper));
            }
コード例 #2
0
ファイル: SingleRange.cs プロジェクト: yuba/ValueRange
            public override Range <T> GreaterThan(T value)
            {
                var newBound = BoundValue <T> .UpperBound(value);

                if (upper < newBound)
                {
                    return(EmptyRange.Instance);
                }
                return(new SingleRange(newBound.Max(lower), upper));
            }
コード例 #3
0
ファイル: SingleRange.cs プロジェクト: yuba/ValueRange
            public override Range <T> LessThanOrEquals(T value)
            {
                var newBound = BoundValue <T> .UpperBound(value);

                if (newBound < lower)
                {
                    return(EmptyRange.Instance);
                }
                return(new SingleRange(lower, newBound.Min(upper)));
            }
コード例 #4
0
ファイル: BoundValue.cs プロジェクト: yuba/ValueRange
 public override int CompareTo(BoundValue <T> other)
 {
     return(other.CompareWith(this));
 }
コード例 #5
0
ファイル: BoundValue.cs プロジェクト: yuba/ValueRange
 public BoundValue <T> Min(BoundValue <T> right)
 {
     return(this < right ? this : right);
 }
コード例 #6
0
ファイル: BoundValue.cs プロジェクト: yuba/ValueRange
 public BoundValue <T> Max(BoundValue <T> right)
 {
     return(this > right ? this : right);
 }
コード例 #7
0
ファイル: BoundValue.cs プロジェクト: yuba/ValueRange
 public abstract int CompareTo(BoundValue <T> other);
コード例 #8
0
ファイル: SingleRange.cs プロジェクト: yuba/ValueRange
 public override bool Includes(T value)
 {
     return(lower <= BoundValue <T> .UpperBound(value) && BoundValue <T> .LowerBound(value) <= upper);
 }
コード例 #9
0
ファイル: SingleRange.cs プロジェクト: yuba/ValueRange
 public static SingleRange ThatLessThanOrEquals(T value)
 {
     return(new SingleRange(BoundValue <T> .NegativeInfinity, BoundValue <T> .UpperBound(value)));
 }
コード例 #10
0
ファイル: SingleRange.cs プロジェクト: yuba/ValueRange
 public static SingleRange ThatGreaterThanOrEquals(T value)
 {
     return(new SingleRange(BoundValue <T> .LowerBound(value), BoundValue <T> .PositiveInfinity));
 }
コード例 #11
0
ファイル: SingleRange.cs プロジェクト: yuba/ValueRange
 private SingleRange(BoundValue <T> lower, BoundValue <T> upper)
 {
     this.lower = lower;
     this.upper = upper;
 }