Ejemplo n.º 1
0
        public void TestCompareReferenceType()
        {
            Assert.Throws <ArgumentNullException>(() => Maybe.Compare(Maybe <int> .Nothing, Maybe <int> .Nothing, null));
            Assert.Throws <ArgumentNullException>(() => Maybe.Compare(Maybe.Just(1), Maybe <int> .Nothing, null));
            Assert.Throws <ArgumentNullException>(() => Maybe.Compare(Maybe.Just(1), Maybe <int> .Just(1), null));
            Assert.Throws <ArgumentNullException>(() => Maybe.Compare(Maybe <int> .Nothing, Maybe <int> .Just(1), null));

            var valueComparer = Comparer <TestRef> .Create((x, y) => x.Value.CompareTo(y.Value));

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

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

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

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

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

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

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

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

                var result = Maybe.Compare(x, y, valueComparer);
                Assert.AreEqual(-1, result);
            }
        }
Ejemplo n.º 2
0
        public void TestCompareValueType()
        {
            {
                var x = Maybe <int> .Nothing;
                var y = Maybe <int> .Nothing;

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

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

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

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

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

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

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

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