Ejemplo n.º 1
0
        internal Interval(T minimum, IntervalEndPoint minimumPoint, T maximum, IntervalEndPoint maximumPoint)
        {
            Minimum = minimum;
            Maximum = maximum;

            _flags = CalculateFlags(minimum, minimumPoint, maximum, maximumPoint);
        }
Ejemplo n.º 2
0
        public static byte CalcFlag(IntervalEndPoint minimumPoint, IntervalEndPoint maximumPoint, bool isEmpty)
        {
            var minimumPointVal = (int)minimumPoint << MinimumPointOpenShift;
            var maximumPointVal = (int)maximumPoint << MaximumPointOpenShift;

            var isEmptyVal = isEmpty ? 1 : 0;

            return((byte)(minimumPointVal | maximumPointVal | isEmptyVal));
        }
Ejemplo n.º 3
0
        internal static int CompareMinimumEndPoint(IntervalEndPoint first, IntervalEndPoint second)
        {
            if (first == second)
            {
                return(0);
            }

            if (second == IntervalEndPoint.Unbounded)
            {
                return(1);
            }

            return(first == IntervalEndPoint.Closed ? -1 : 1);
        }
Ejemplo n.º 4
0
            private static int GetEndPointValue(IntervalEndPoint endPoint)
            {
                switch (endPoint)
                {
                case IntervalEndPoint.Closed:
                    return(0);

                case IntervalEndPoint.Open:
                    return(1);

                default:
                    throw new ArgumentOutOfRangeException(nameof(endPoint), endPoint, null);
                }
            }
Ejemplo n.º 5
0
        private static IntervalEndPoint InverseEndPoint(IntervalEndPoint endPoint)
        {
            switch (endPoint)
            {
            case IntervalEndPoint.Open:
                return(IntervalEndPoint.Closed);

            case IntervalEndPoint.Closed:
                return(IntervalEndPoint.Open);

            case IntervalEndPoint.Unbounded:
                return(IntervalEndPoint.Unbounded);

            default:
                throw new ArgumentOutOfRangeException(nameof(endPoint));
            }
        }
Ejemplo n.º 6
0
 internal static Interval <T> CreateMinimumUnbounded <T>(T maximum, IntervalEndPoint maximumPoint = IntervalEndPoint.Closed) where T : IComparable <T>
 {
     return(new Interval <T>(maximum, IntervalEndPoint.Unbounded, maximum, maximumPoint));
 }
Ejemplo n.º 7
0
 public RangeEndPointValue(T value, IntervalEndPoint endPoint, int rangeIndex)
 {
     Value      = value;
     EndPoint   = endPoint;
     RangeIndex = rangeIndex;
 }
Ejemplo n.º 8
0
 public SplitPointData(T point, IntervalEndPoint endPoint)
 {
     Point    = point;
     EndPoint = endPoint;
 }