Пример #1
0
        public void TestEqualityOperators()
        {
            var value1 = new MinMaxConstraints <int>(20, 80);

            // Проверяем равенство одинаковых значений.
            var value2 = new MinMaxConstraints <int>(20, 80);

            Assert.IsTrue(value1 == value2);
            Assert.IsFalse(value1 != value2);

            // Проверяем неравенство значений, с совпадающей верхней границей.
            value2 = new MinMaxConstraints <int>(5, 80);
            Assert.IsFalse(value1 == value2);
            Assert.IsTrue(value1 != value2);

            // Проверяем неравенство значений, с совпадающей нижней границей.
            value2 = new MinMaxConstraints <int>(20, 105);
            Assert.IsFalse(value1 == value2);
            Assert.IsTrue(value1 != value2);

            // Проверяем неравенство значений всех границ.
            value2 = new MinMaxConstraints <int>(35, 67);
            Assert.IsFalse(value1 == value2);
            Assert.IsTrue(value1 != value2);
        }
Пример #2
0
        public void TestEquals()
        {
            object value1 = new MinMaxConstraints <int>(30, 60);

            // Проверяем равенство одинаковых значений.
            var value2 = new MinMaxConstraints <int>(30, 60);

            Assert.IsTrue(value1.Equals(value2));
            Assert.IsTrue(value1.GetHashCode() == value2.GetHashCode());

            // Проверяем неравенство значений, с совпадающей верхней границей.
            value2 = new MinMaxConstraints <int>(5, 60);
            Assert.IsFalse(value1.Equals(value2));
            Assert.IsFalse(value1.GetHashCode() == value2.GetHashCode());

            // Проверяем неравенство значений, с совпадающей нижней границей.
            value2 = new MinMaxConstraints <int>(30, 105);
            Assert.IsFalse(value1.Equals(value2));
            Assert.IsFalse(value1.GetHashCode() == value2.GetHashCode());

            // Проверяем неравенство значений всех границ.
            value2 = new MinMaxConstraints <int>(37, 54);
            Assert.IsFalse(value1.Equals(value2));
            Assert.IsFalse(value1.GetHashCode() == value2.GetHashCode());
        }
Пример #3
0
        public void CtorAssignsMinMax()
        {
            const int Min = 10;
            const int Max = 100;

            var minMax = new MinMaxConstraints <int>(Min, Max);

            Assert.AreEqual(Min, minMax.Min);
            Assert.AreEqual(Max, minMax.Max);
        }
Пример #4
0
        public void ApplyAppliesConstraints()
        {
            var minMax = new MinMaxConstraints <int>(10, 100);

            const int Smaller = 5;
            const int Greater = 105;
            const int Fits1   = 11;
            const int Fits2   = 99;

            Assert.AreEqual(minMax.Max, minMax.Apply(Greater));
            Assert.AreEqual(minMax.Min, minMax.Apply(Smaller));
            Assert.AreEqual(Fits1, minMax.Apply(Fits1));
            Assert.AreEqual(Fits2, minMax.Apply(Fits2));
        }
Пример #5
0
        public void TestIEquatable()
        {
            IEquatable <MinMaxConstraints <int> > value1 = new MinMaxConstraints <int>(10, 100);

            // Проверяем равенство одинаковых значений.
            var value2 = new MinMaxConstraints <int>(10, 100);

            Assert.IsTrue(value1.Equals(value2));

            // Проверяем неравенство значений, с совпадающей верхней границей.
            value2 = new MinMaxConstraints <int>(5, 100);
            Assert.IsFalse(value1.Equals(value2));

            // Проверяем неравенство значений, с совпадающей нижней границей.
            value2 = new MinMaxConstraints <int>(10, 105);
            Assert.IsFalse(value1.Equals(value2));

            // Проверяем неравенство значений всех границ.
            value2 = new MinMaxConstraints <int>(25, 48);
            Assert.IsFalse(value1.Equals(value2));
        }
Пример #6
0
        public void ApplyUsesSpecifiedComparer()
        {
            var minMax = new MinMaxConstraints <int>(10, 100);

            const int Smaller = 5;
            const int Greater = 105;

            var comparer = Substitute.For <Comparer <int> >();

            // Настраиваем Comparer так, что Greater считается числом, меньшим Max.
            comparer.Compare(Arg.Is(Greater), Arg.Is(minMax.Max)).Returns(-1);
            comparer.Compare(Arg.Is(minMax.Max), Arg.Is(Greater)).Returns(1);
            Assert.AreEqual(Greater, minMax.Apply(Greater, comparer));
            comparer.Received().Compare(Arg.Any <int>(), Arg.Any <int>());

            comparer.ClearReceivedCalls();

            // Настраиваем Comparer так, что Smaller считается числом, большим Min.
            comparer.Compare(Arg.Is(Smaller), Arg.Is(minMax.Min)).Returns(1);
            comparer.Compare(Arg.Is(minMax.Min), Arg.Is(Smaller)).Returns(-1);
            Assert.AreEqual(Smaller, minMax.Apply(Smaller, comparer));
            comparer.Received().Compare(Arg.Any <int>(), Arg.Any <int>());
        }