public void StandardFactory()
        {
            var graph             = new BidirectionalGraph <int, Edge <int> >();
            var verticesPositions = new Dictionary <int, Point>();
            var verticesSizes     = new Dictionary <int, Size>();
            var context           = new LayoutContext <int, Edge <int>, BidirectionalGraph <int, Edge <int> > >(
                graph,
                verticesPositions,
                verticesSizes,
                LayoutMode.Simple);

            var factory = new StandardEdgeRoutingAlgorithmFactory <int, Edge <int>, BidirectionalGraph <int, Edge <int> > >();

            CollectionAssert.IsEmpty(factory.AlgorithmTypes);


            Assert.IsNull(factory.CreateAlgorithm(
                              string.Empty,
                              context,
                              null));

            Assert.IsNull(factory.CreateAlgorithm(
                              string.Empty,
                              context,
                              new EdgeRoutingParameters()));

            Assert.IsNull(factory.CreateAlgorithm(
                              "TestType",
                              context,
                              new EdgeRoutingParameters()));


            var parameters = new EdgeRoutingParameters();
            IEdgeRoutingParameters createdParameters = factory.CreateParameters(string.Empty, null);

            Assert.IsInstanceOf <EdgeRoutingParameters>(createdParameters);
            Assert.AreNotSame(parameters, createdParameters);

            createdParameters = factory.CreateParameters(string.Empty, null);
            Assert.IsInstanceOf <EdgeRoutingParameters>(createdParameters);
            Assert.AreNotSame(parameters, createdParameters);

            createdParameters = factory.CreateParameters("TestType", null);
            Assert.IsInstanceOf <EdgeRoutingParameters>(createdParameters);
            Assert.AreNotSame(parameters, createdParameters);

            createdParameters = factory.CreateParameters("TestType", null);
            Assert.IsInstanceOf <EdgeRoutingParameters>(createdParameters);
            Assert.AreNotSame(parameters, createdParameters);


            Assert.IsFalse(factory.IsValidAlgorithm(null));
            Assert.IsFalse(factory.IsValidAlgorithm(string.Empty));
            Assert.IsFalse(factory.IsValidAlgorithm("TestType"));


            var algorithm = new TestEdgeRoutingAlgorithm(graph, verticesPositions);

            Assert.IsEmpty(factory.GetAlgorithmType(algorithm));
        }
Example #2
0
        public void Constructor()
        {
            var graph             = new AdjacencyGraph <int, Edge <int> >();
            var verticesPositions = new Dictionary <int, Point>();
            var algorithm         = new TestEdgeRoutingAlgorithm(graph, verticesPositions);

            AssertAlgorithmProperties(algorithm, graph);

            #region Local function

            void AssertAlgorithmProperties(
                TestEdgeRoutingAlgorithm algo,
                AdjacencyGraph <int, Edge <int> > g)
            {
                AssertAlgorithmState(algo, g);
                Assert.IsNotNull(algo.EdgeRoutes);
            }

            #endregion
        }