示例#1
0
        private bool testArmTask(IDirectedNetwork <CommonJunction, CommonJunction> network, IDirectedNetwork <CommonJunction, CommonJunction> expected_result, int edgeID)
        {
            DirectedNetworkTracer tracer = new DirectedNetworkTracer(network);
            IDirectedNetwork <CommonJunction, CommonJunction> result = tracer.armTask(edgeID).network;

            return(compareNetworks(result, expected_result));
        }
示例#2
0
文件: BFSTest.cs 项目: nguseff31/grs
        public void testBFSUpVisitAllVertexesExpectedBlocked()
        {
            HashSet <int> shouldBeVisited = new HashSet <int>()
            {
                1, 2, 5, 6
            };

            DirectedNetworkTracer.BFSUp <int, int>(network, 1,
                                                   (vid) =>
            {
                if (!shouldBeVisited.Contains(vid))
                {
                    Assert.Fail("Вершина " + vid +
                                " не должна быть посещена (или была посещена повторно)");
                }
                else
                {
                    shouldBeVisited.Remove(vid);
                }
                return(false);
            },
                                                   (v, a) =>
            {
                Vertex <int> vf = network.getVertexFeature(a);
                //Если задвижка - дальше не идем
                return(vf.value != ARMAT_CLASS);
            });
            Assert.AreEqual <int>(shouldBeVisited.Count, 0, "Не все вершины были посещены");
        }
示例#3
0
        public void testArmatAlgFail()
        {
            yEdDirectedNetwork network = new yEdDirectedNetwork();

            network.setSymbols(this.symbols_to_classes);
            network.loadFromXml(this.getExample("test_arm_fail"));

            DirectedNetworkTracer tracer = new DirectedNetworkTracer(network);

            tracer.armTask(12);
        }
示例#4
0
        private bool testArmExample(string name, int EdgeID)
        {
            yEdDirectedNetwork network = new yEdDirectedNetwork();

            network.setSymbols(this.symbols_to_classes);
            network.loadFromXml(this.getExample(name));
            DirectedNetworkTracer tracer = new DirectedNetworkTracer(network);

            yEdDirectedNetwork expected_result = new yEdDirectedNetwork();

            expected_result.setSymbols(this.symbols_to_classes);

            expected_result.loadFromXml(this.getExample(name + "_result"));

            IDirectedNetwork <CommonJunction, CommonJunction> result = tracer.armTask(EdgeID).network;

            return(compareNetworks(result, expected_result));
        }
示例#5
0
文件: BFSTest.cs 项目: nguseff31/grs
        public void testBFSstopsAndReturnTarget()
        {
            //Ищем источник.
            int grs = DirectedNetworkTracer.BFSUp <int, int>(network, 1,
                                                             (vid) =>
            {
                Vertex <int> vf = network.getVertexFeature(vid);
                //Если vid - источник, то прекращаем выполнение
                return(vf.value == GRS_CLASS);
            },
                                                             (v, a) =>
            {
                Vertex <int> vf = network.getVertexFeature(a);
                //Если vf - задвижка, то дальше не идем
                return(vf.value != ARMAT_CLASS);
            });

            //должна найтись вершина 6, но не 4 (т.к. перед ней задвижка)
            Assert.AreEqual(6, grs);
        }