Exemplo n.º 1
0
        public void TestComparerWithValueComparer()
        {
            Assert.Throws <ArgumentNullException>(() => Maybe.Comparer <int>(null));
            var valueComparer = Comparer <TestRef> .Create((x, y) => x.Value.CompareTo(y.Value));

            var comparer = Maybe.Comparer(valueComparer);

            {
                var x = Maybe <TestRef> .Nothing;
                var y = Maybe <TestRef> .Nothing;

                var result = comparer.Compare(x, y);
                Assert.AreEqual(0, result);
            }
            {
                var x      = Maybe <TestRef> .Nothing;
                var y      = Maybe.Just(new TestRef(1));
                var result = comparer.Compare(x, y);
                Assert.AreEqual(-1, result);
            }
            {
                var x = Maybe <TestRef> .Just(new TestRef(1));

                var y      = Maybe <TestRef> .Nothing;
                var result = comparer.Compare(x, y);
                Assert.AreEqual(1, result);
            }
            {
                var x = Maybe <TestRef> .Just(new TestRef(1));

                var y = Maybe <TestRef> .Just(new TestRef(1));

                var result = comparer.Compare(x, y);
                Assert.AreEqual(0, result);
            }
            {
                var x = Maybe <TestRef> .Just(new TestRef(2));

                var y = Maybe <TestRef> .Just(new TestRef(1));

                var result = comparer.Compare(x, y);
                Assert.AreEqual(1, result);
            }
            {
                var x = Maybe <TestRef> .Just(new TestRef(1));

                var y = Maybe <TestRef> .Just(new TestRef(2));

                var result = comparer.Compare(x, y);
                Assert.AreEqual(-1, result);
            }
        }
Exemplo n.º 2
0
        public void TestComparerValueComparable()
        {
            var comparer = Maybe.Comparer <int>();

            {
                var x = Maybe <int> .Nothing;
                var y = Maybe <int> .Nothing;

                var result = comparer.Compare(x, y);
                Assert.AreEqual(0, result);
            }
            {
                var x      = Maybe <int> .Nothing;
                var y      = Maybe.Just(1);
                var result = comparer.Compare(x, y);
                Assert.AreEqual(-1, result);
            }
            {
                var x = Maybe <int> .Just(1);

                var y      = Maybe <int> .Nothing;
                var result = comparer.Compare(x, y);
                Assert.AreEqual(1, result);
            }
            {
                var x = Maybe <int> .Just(1);

                var y = Maybe <int> .Just(1);

                var result = comparer.Compare(x, y);
                Assert.AreEqual(0, result);
            }
            {
                var x = Maybe <int> .Just(2);

                var y = Maybe <int> .Just(1);

                var result = comparer.Compare(x, y);
                Assert.AreEqual(1, result);
            }
            {
                var x = Maybe <int> .Just(1);

                var y = Maybe <int> .Just(2);

                var result = comparer.Compare(x, y);
                Assert.AreEqual(-1, result);
            }
        }