示例#1
0
        public void SerializationTests_FSharp_Collections()
        {
            var elements = new List <int>()
            {
                0, 1, 2
            };

            var mapElements = new List <Tuple <int, string> >()
            {
                new Tuple <int, string>(0, "zero"),
                new Tuple <int, string>(1, "one")
            };

            // F# list
            RoundtripSerializationTest(ListModule.Empty <int>());
            RoundtripSerializationTest(ListModule.OfSeq(elements));

            // F# set
            RoundtripSerializationTest(SetModule.Empty <int>());
            RoundtripSerializationTest(SetModule.OfSeq(elements));

            // F# map
            RoundtripSerializationTest(MapModule.OfSeq(new List <Tuple <int, string> >()));
            RoundtripSerializationTest(MapModule.OfSeq(mapElements));
        }
示例#2
0
        public void DifferentGraphsTest()
        {
            var g1 = new BidirectionalGraph <int, Edge <int> >();
            var g2 = new BidirectionalGraph <int, Edge <int> >();

            g1.AddVerticesAndEdgeRange(new[]
                                       { new Edge <int>(1, 2), new Edge <int>(1, 3), new Edge <int>(2, 4), new Edge <int>(2, 5) });

            g2.AddVerticesAndEdgeRange(new[] { new Edge <int>(1, 2), new Edge <int>(2, 3), new Edge <int>(2, 4) });

            var dictionary = new Dictionary <Tuple <int, int>, double>();

            foreach (var i in g1.Vertices)
            {
                foreach (var j in g2.Vertices)
                {
                    dictionary[Tuple.Create(i, j)] = 0.0;
                }
            }

            dictionary[Tuple.Create(1, 1)] = 1.0;
            dictionary[Tuple.Create(2, 2)] = 1.0;
            dictionary[Tuple.Create(3, 2)] = 0.6;
            dictionary[Tuple.Create(4, 3)] = 1.0;
            dictionary[Tuple.Create(5, 4)] = 1.0;

            var algo = new MaxCardinality <int, Edge <int> >(g1, g2, dictionary, 0.5, (u, v) => new Edge <int>(u, v));
            var res  = algo.compMaxCardinality();

            var correctResult =
                SetModule.Empty <Tuple <int, int> >()
                .Add(Tuple.Create(1, 1))
                .Add(Tuple.Create(2, 2))
                .Add(Tuple.Create(3, 2))
                .Add(Tuple.Create(4, 3))
                .Add(Tuple.Create(5, 4));

            Assert.AreEqual(res, correctResult);
        }