Ejemplo n.º 1
0
        public void Equals_NonGeneric_ThisIsNotEqualToObj_ReturnsFalse(int xMin, int xMax, int yMin, int yMax)
        {
            var uut1 = new MinMaxPair <int>(xMin, xMax);
            var uut2 = new MinMaxPair <int>(yMin, yMax);

            uut1.Equals((object)uut2).ShouldBeFalse();
        }
Ejemplo n.º 2
0
        public void Equals_Generic_ThisIsEqualToPair_ReturnsTrue(int xMin, int xMax, int yMin, int yMax)
        {
            var uut1 = new MinMaxPair <int>(xMin, xMax);
            var uut2 = new MinMaxPair <int>(yMin, yMax);

            uut1.Equals(uut2).ShouldBeTrue();
        }
Ejemplo n.º 3
0
        public void Contains_ComparerAlwaysReturnsLessThan_ReturnsFalse(int min, int max, int value)
        {
            var comparer = new DelegateComparer <int>((x, y) => - 1);
            var uut      = new MinMaxPair <int>(min, max, comparer);

            uut.Contains(value).ShouldBeFalse();
        }
Ejemplo n.º 4
0
    static public float GetCornerDistanceExt(this Cover cover, bool rightSide, float testedCollisionDistance)
    {
        float testedCornerDistanceLeftRight = 1.2f;
        float testedCornerDistanceForward   = 1.0f;       // TODO : we can compute this calue using distance to the wall

        Vector3 fromPos, forward, rightPos, leftPos, right;

        cover.GetMetricsExt(out fromPos, out right, out forward, out rightPos, out leftPos);

        // new approach
        Vector3 fromPosRFrom = rightPos + right * testedCornerDistanceLeftRight;
        Vector3 fromPosRTo   = fromPosRFrom + forward * testedCornerDistanceForward;

        Vector3 fromPosLFrom = leftPos - right * testedCornerDistanceLeftRight;
        Vector3 fromPosLTo   = fromPosLFrom + forward * testedCornerDistanceForward;

        MinMaxPair tmp = new MinMaxPair();

        tmp.Reset();

        if (rightSide)
        {
            CoverUtils.LineDistanceCast(fromPosRFrom, fromPosRTo, -right, testedCollisionDistance, ref tmp, testedCornerDistanceLeftRight);
        }
        else         // left
        {
            CoverUtils.LineDistanceCast(fromPosLFrom, fromPosLTo, right, testedCollisionDistance, ref tmp, testedCornerDistanceLeftRight);
        }

        return(tmp.m_MaxValue);
    }
Ejemplo n.º 5
0
        public void Constructor_Value_ComparerIsNull_UsesDefault(int value)
        {
            var uut1 = new MinMaxPair <int>(value);
            var uut2 = new MinMaxPair <int>(value + 1);

            uut1.CompareTo(uut2).ShouldBe(-1);
        }
Ejemplo n.º 6
0
        public void Contains_ComparerAlwaysReturnsEqual_ReturnsTrue(int min, int max, int value)
        {
            var comparer = new DelegateComparer <int>((x, y) => 0);
            var uut      = new MinMaxPair <int>(min, max, comparer);

            uut.Contains(value).ShouldBeTrue();
        }
Ejemplo n.º 7
0
        public void CompareTo_NonGeneric_ThisIsEqualToObj_Returns0(int xMin, int xMax, int yMin, int yMax)
        {
            var uut1 = new MinMaxPair <int>(xMin, xMax);
            var uut2 = new MinMaxPair <int>(yMin, yMax);

            uut1.CompareTo((object)uut2).ShouldBe(0);
        }
Ejemplo n.º 8
0
        public void CompareTo_Generic_ThisIsLessThanPair_ReturnsNegative1(int xMin, int xMax, int yMin, int yMax)
        {
            var uut1 = new MinMaxPair <int>(xMin, xMax);
            var uut2 = new MinMaxPair <int>(yMin, yMax);

            uut1.CompareTo(uut2).ShouldBe(-1);
        }
Ejemplo n.º 9
0
        public void GetHashCode_ForPairsNotEqual_ResultsAreNotEqual(int xMin, int xMax, int yMin, int yMax)
        {
            var uut1 = new MinMaxPair <int>(xMin, xMax);
            var uut2 = new MinMaxPair <int>(yMin, yMax);

            uut1.GetHashCode().ShouldNotBe(uut2.GetHashCode());
        }
    /// <summary>
    /// Function returns for given axis min vertex index and breadth along it.
    /// </summary>
    public int GetAlongAxisData(Vector3 axis, out MinMaxPair breadthData)
    {
        Pair <int, float> minVertex = new Pair <int, float>(-1, float.MaxValue);

        breadthData = new MinMaxPair();

        Vector3 centroid = Centroid;

        for (int i = 0; i < mDataCloud.Count; i++)
        {
            Vector3 point = mDataCloud[i];

            Vector3 direction = point - centroid;
            float   distance  = Vector3.Dot(direction, axis);

            breadthData.CheckAgainst(distance);

            if (ExtMathf.Less(distance, minVertex.Second))
            {
                minVertex.First  = i;
                minVertex.Second = distance;
            }
        }

        return(minVertex.First);
    }
Ejemplo n.º 11
0
    public void AlgorithmAABB()
    {
        var dataCloud = mConvexHull3.DataCloud;
        var points    = mConvexHull3.Vertices;

        MinMaxPair X = new MinMaxPair();
        MinMaxPair Y = new MinMaxPair();
        MinMaxPair Z = new MinMaxPair();

        foreach (int point in points)
        {
            Vector3 dataCloudPoint = dataCloud[point];

            X.CheckAgainst(dataCloudPoint.x);
            Y.CheckAgainst(dataCloudPoint.y);
            Z.CheckAgainst(dataCloudPoint.z);
        }

        mVolume = X.Delta * Y.Delta * Z.Delta;

        mBox.Extents = new Vector3(X.Delta, Y.Delta, Z.Delta);
        mBox.Corner  = new Vector3(X.Min, Y.Min, Z.Min);
        mBox.X       = Vector3.right;
        mBox.Y       = Vector3.up;
        mBox.Z       = Vector3.forward;
    }
Ejemplo n.º 12
0
        public void CompareTo_NonGeneric_ObjIsNull_Returns1(int min, int max)
        {
            var uut = new MinMaxPair <int>(min, max);
            var obj = (object)null;

            uut.CompareTo(obj).ShouldBe(1);
        }
Ejemplo n.º 13
0
        public void OperatorNotEquals_XIsNotEqualToY_ReturnsTrue(int xMin, int xMax, int yMin, int yMax)
        {
            var uut1 = new MinMaxPair <int>(xMin, xMax);
            var uut2 = new MinMaxPair <int>(yMin, yMax);

            (uut1 != uut2).ShouldBeTrue();
        }
Ejemplo n.º 14
0
        public void CompareTo_NonGeneric_ThisIsGreaterThanObj_Returns1(int xMin, int xMax, int yMin, int yMax)
        {
            var uut1 = new MinMaxPair <int>(xMin, xMax);
            var uut2 = new MinMaxPair <int>(yMin, yMax);

            uut1.CompareTo((object)uut2).ShouldBe(1);
        }
Ejemplo n.º 15
0
        public void Equals_NonGeneric_ComparerAlwaysReturnsNegative1_ReturnsNegative1(int xMin, int xMax, int yMin, int yMax)
        {
            var comparer = new DelegateComparer <int>((x, y) => - 1);
            var uut1     = new MinMaxPair <int>(xMin, xMax, comparer);
            var uut2     = new MinMaxPair <int>(yMin, yMax, comparer);

            uut1.CompareTo((object)uut2).ShouldBe(-1);
        }
Ejemplo n.º 16
0
        public void OperatorNotEquals_XIsSameAsY_ReturnsFalse(int min, int max)
        {
            var uut = new MinMaxPair <int>(min, max);

            #pragma warning disable CS1718 // Comparison made to same variable
            (uut != uut).ShouldBeFalse();
            #pragma warning restore CS1718 // Comparison made to same variable
        }
Ejemplo n.º 17
0
        public void Equals_Generic_ComparerAlwaysReturnsNegative1_ReturnsFalse(int xMin, int xMax, int yMin, int yMax)
        {
            var comparer = new DelegateComparer <int>((x, y) => - 1);
            var uut1     = new MinMaxPair <int>(xMin, xMax, comparer);
            var uut2     = new MinMaxPair <int>(yMin, yMax, comparer);

            uut1.Equals(uut2).ShouldBeFalse();
        }
Ejemplo n.º 18
0
        public void CompareTo_NonGeneric_ComparerAlwaysReturns0_Returns0(int xMin, int xMax, int yMin, int yMax)
        {
            var comparer = new DelegateComparer <int>((x, y) => 0);
            var uut1     = new MinMaxPair <int>(xMin, xMax, comparer);
            var uut2     = new MinMaxPair <int>(yMin, yMax, comparer);

            uut1.CompareTo((object)uut2).ShouldBe(0);
        }
Ejemplo n.º 19
0
        public void OperatorNotEquals_ComparerAlwaysReturnsNegative1_ReturnsTrue(int xMin, int xMax, int yMin, int yMax)
        {
            var comparer = new DelegateComparer <int>((x, y) => - 1);
            var uut1     = new MinMaxPair <int>(xMin, xMax, comparer);
            var uut2     = new MinMaxPair <int>(yMin, yMax, comparer);

            (uut1 != uut2).ShouldBeTrue();
        }
Ejemplo n.º 20
0
        public void DataContract_Always_OnDeserializedSetsGetHashCodeToExpected(int min, int max)
        {
            var uut      = new MinMaxPair <int>(min, max);
            var expected = uut.GetHashCode();

            uut.OnDeserialized(new StreamingContext());

            uut.GetHashCode().ShouldBe(expected);
        }
Ejemplo n.º 21
0
        public void ToString_Always_ContainsMinToStringAndMaxToString(int min, int max)
        {
            var uut = new MinMaxPair <int>(min, max);

            var result = uut.ToString();

            result.ShouldSatisfyAllConditions(
                () => result.ShouldContain(min.ToString()),
                () => result.ShouldContain(max.ToString()));
        }
Ejemplo n.º 22
0
        public static MinMaxPair <T>?MaxMinMeta <TCollect, TMaxComparer, TMinComparer, T>(ref TCollect collect, ref TMaxComparer maxComparer, ref TMinComparer minComparer)
            where TCollect : struct, ICollectionWrapper <T>
            where TMaxComparer : struct, IFunctor <T, T, bool>
            where TMinComparer : struct, IFunctor <T, T, bool>
        {
            if (collect.HasIndexOverhead)
            {
                if (collect.HasNext)
                {
                    var item   = collect.Value;
                    var maxMin = new MinMaxPair <T>(item, item);
                    while (collect.HasNext)
                    {
                        item = collect.Value;
                        if (maxComparer.Invoke(item, maxMin.Max))
                        {
                            maxMin.Max = item;
                        }

                        if (minComparer.Invoke(item, maxMin.Min))
                        {
                            maxMin.Min = item;
                        }
                    }

                    return(maxMin);
                }
            }
            else
            {
                var size = collect.Size;
                if (size > 0)
                {
                    var item   = collect[0];
                    var maxMin = new MinMaxPair <T>(item, item);
                    for (var i = 1u; i < size; ++i)
                    {
                        item = collect[i];
                        if (maxComparer.Invoke(item, maxMin.Max))
                        {
                            maxMin.Max = item;
                        }

                        if (minComparer.Invoke(item, maxMin.Min))
                        {
                            maxMin.Min = item;
                        }
                    }

                    return(maxMin);
                }
            }

            return(null);
        }
Ejemplo n.º 23
0
        private void OnColorChanged(SerializedProperty property, MinMaxPair pair)
        {
            m_oldAlpha = -1;

            SerializedProperty minProp = property.FindPropertyRelative($"{pair.Name}Min");

            minProp.floatValue = pair.Min;
            SerializedProperty maxProp = property.FindPropertyRelative($"{pair.Name}Max");

            maxProp.floatValue = pair.Max;
        }
Ejemplo n.º 24
0
        public void CompareTo_ObjTypeIsWrong_ThrowsException(int min, int max)
        {
            var uut = new MinMaxPair <int>(min, max);
            var obj = new object();

            var result = Should.Throw <ArgumentException>(() =>
            {
                uut.CompareTo(obj);
            });

            result.ParamName.ShouldBe(nameof(obj));
        }
    /// <summary>
    /// Function for each axis returns it's min vertex index and breadth along it.
    /// </summary>
    public void GetAlongAxesData(
        Vector3 xAxis, Vector3 yAxis, Vector3 zAxis,
        out Pair <int, MinMaxPair> xAxisData,
        out Pair <int, MinMaxPair> yAxisData,
        out Pair <int, MinMaxPair> zAxisData
        )
    {
        Pair <int, float> minVertexX = new Pair <int, float>(0, float.MaxValue);
        Pair <int, float> minVertexY = new Pair <int, float>(0, float.MaxValue);
        Pair <int, float> minVertexZ = new Pair <int, float>(0, float.MaxValue);
        MinMaxPair        breadthX   = new MinMaxPair();
        MinMaxPair        breadthY   = new MinMaxPair();
        MinMaxPair        breadthZ   = new MinMaxPair();

        Vector3 centroid = Centroid;

        for (int i = 0; i < mDataCloud.Count; i++)
        {
            Vector3 point = mDataCloud[i];

            Vector3 direction = point - centroid;
            float   xDistance = Vector3.Dot(direction, xAxis);
            float   yDistance = Vector3.Dot(direction, yAxis);
            float   zDistance = Vector3.Dot(direction, zAxis);

            breadthX.CheckAgainst(xDistance);
            breadthY.CheckAgainst(yDistance);
            breadthZ.CheckAgainst(zDistance);

            if (ExtMathf.Less(xDistance, minVertexX.Second))
            {
                minVertexX.First  = i;
                minVertexX.Second = xDistance;
            }

            if (ExtMathf.Less(yDistance, minVertexY.Second))
            {
                minVertexY.First  = i;
                minVertexY.Second = yDistance;
            }

            if (ExtMathf.Less(zDistance, minVertexZ.Second))
            {
                minVertexZ.First  = i;
                minVertexZ.Second = zDistance;
            }
        }

        xAxisData = new Pair <int, MinMaxPair>(minVertexX.First, breadthX);
        yAxisData = new Pair <int, MinMaxPair>(minVertexY.First, breadthY);
        zAxisData = new Pair <int, MinMaxPair>(minVertexZ.First, breadthZ);
    }
Ejemplo n.º 26
0
        public void BaseModelChanged_ModelDoesNotEqualNewValueAndThisMaximumIsNotNullOrEmpty_SetsThisMaximumToEmpty(int previousMinimum, int previousMaximum, int modelMin, int modelMax)
        {
            var context = new TestContext <int>();
            var uut     = context.ConstructUUT();

            uut.Minimum = previousMinimum;
            uut.Maximum = previousMaximum;

            var model = new MinMaxPair <int>(modelMin, modelMax);

            uut.Model = model;

            uut[nameof(uut.Maximum)].ShouldBeEmpty();
        }
Ejemplo n.º 27
0
    static public MinMaxPair GetWallDistanceExt(this Cover cover, float testedWallDistance)
    {
        float   testedDistance = testedWallDistance + 0.05f;
        Vector3 fromPos, forward, rightPos, leftPos, right;

        cover.GetMetricsExt(out fromPos, out right, out forward, out rightPos, out leftPos);

        MinMaxPair tmp = new MinMaxPair();

        tmp.Reset();

        CoverUtils.LineDistanceCast(rightPos, leftPos, forward, testedDistance, ref tmp);

        return(tmp);
    }
Ejemplo n.º 28
0
        public void BaseModelChanged_ModelDoesNotEqualNewValueAndThisMaximumIsNotNullOrEmptyAndNewValueMaxEqualsMaximum_InvokesRaisePropertyChangedWithMaximum(int previousMinimum, int previousMaximum, int modelMin, int modelMax)
        {
            var context = new TestContext <int>();
            var uut     = context.ConstructUUT();

            uut.Minimum = previousMinimum;
            uut.Maximum = previousMaximum;

            var model = new MinMaxPair <int>(modelMin, modelMax);

            context.ClearReceivedCalls();

            uut.Model = model;

            context.propertyChangedHandler.Received(1).Invoke(uut, Arg.Is <PropertyChangedEventArgs>(x => x.PropertyName == nameof(uut.Maximum)));
        }
Ejemplo n.º 29
0
        private Color GetColor()
        {
            float pingPong = Mathf.PingPong((float)EditorApplication.timeSinceStartup, 1);

            MinMaxPair huePair = GetHsvProperty(HsvLookup.H);
            float      hue     = Mathf.Lerp(huePair.Min, huePair.Max, pingPong);

            Color rgba = Color.HSVToRGB(
                hue,
                GetHsvProperty(HsvLookup.S).Min,
                GetHsvProperty(HsvLookup.V).Min
                );

            rgba.a = GetHsvProperty(HsvLookup.A).Min;

            return(rgba);
        }
Ejemplo n.º 30
0
        private bool TryUpdateHsvLookup(SerializedProperty property, string name, HsvLookup id)
        {
            SerializedProperty minProp = property.FindPropertyRelative($"{name}Min");
            SerializedProperty maxProp = property.FindPropertyRelative($"{name}Max");

            if (m_hsvLookup.TryGetValue(id, out MinMaxPair pair))
            {
                pair.Min = minProp.floatValue;
                pair.Max = maxProp.floatValue;
                return(true);
            }
            else
            {
                m_hsvLookup[id] = new MinMaxPair(name, minProp.floatValue, maxProp.floatValue);
                return(false);
            }
        }
Ejemplo n.º 31
0
 public VIZSGALATILAP( MinMaxPair<double?> _Brix,
                      MinMaxPair<double?> _Citromsav,
                      MinMaxPair<double?> _Ph,
                      MinMaxPair<double?> _Bostwick,
                      MinMaxPair<double?> _CitromsavAdagolas,
                      double? _Aszkorbinsav,
                      string _Hoteko,
                      string _Sarzs,
                      string _Megnevezes,
                      string _Paszirozottsag,
                      string _Csomagolas,
                      string _SzarmazasiHely )
 {
     Brix = _Brix;
     Citromsav = _Citromsav;
     Ph = _Ph;
     Bostwick = _Bostwick;
     CitromsavAdagolas = _CitromsavAdagolas;
     Aszkorbinsav = _Aszkorbinsav;
     Hoteko = _Hoteko;
     Sarzs = _Sarzs;
     Megnevezes = _Megnevezes;
     Paszirozottsag = _Paszirozottsag;
     Csomagolas = _Csomagolas;
     SzarmazasiHely = _SzarmazasiHely;
 }
Ejemplo n.º 32
0
        MinMax( MinMaxPair<double?> _minmax )
        {
            string value = null;

            if ( _minmax.min == null && _minmax.max == null ) { return value; }
            if ( _minmax.min != null && _minmax.max != null ) { value = _minmax.min + " - " + _minmax.max; }
            else if ( _minmax.min != null ) { value = _minmax.min.ToString( ); }
            else { value = _minmax.max.ToString( ); }
            return value;
        }