示例#1
0
        public void TestDepotDynamicAsymmetricRouteEmpty()
        {
            var route = new DepotRoute(
                new DynamicAsymmetricRoute(10, false));

            route.InsertAfter(0, 1);

            var customers = new List <int>(route);

            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);
        }
示例#2
0
        public void TestDepotDynamicAsymmetricRouteReplaceEdge()
        {
            var route = new DepotRoute(
                new DynamicAsymmetricRoute(10, false));

            route.InsertAfter(0, 1);
            route.InsertAfter(1, 2);
            route.InsertAfter(2, 3);
            route.InsertAfter(3, 4);

            var customers = new List <int>(route);

            Assert.AreEqual(5, customers.Count);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);
            Assert.AreEqual(2, customers[2]);
            Assert.AreEqual(3, customers[3]);
            Assert.AreEqual(4, customers[4]);
            //route.ReplaceEdgeFrom(0, 1);
            Assert.IsTrue(route.IsValid());

            route.ReplaceEdgeFrom(2, 4);
            route.ReplaceEdgeFrom(4, 3);
            route.ReplaceEdgeFrom(3, 0);

            customers = new List <int>(route);
            Assert.AreEqual(5, customers.Count);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);
            Assert.AreEqual(2, customers[2]);
            Assert.AreEqual(4, customers[3]);
            Assert.AreEqual(3, customers[4]);
            Assert.IsTrue(route.IsValid());

            route.ReplaceEdgeFrom(0, 0);
            customers = new List <int>(route);
            Assert.AreEqual(1, customers.Count);
            Assert.AreEqual(0, customers[0]);

            Assert.IsTrue(route.IsValid());
        }
示例#3
0
        public void TestDepotDynamicAsymmetricRouteInsertAfter()
        {
            var route = new DepotRoute(
                new DynamicAsymmetricRoute(10, false));

            route.InsertAfter(0, 1);

            var customers = new List <int>(route);

            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);

            route.InsertAfter(1, 2);

            customers = new List <int>(route);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);
            Assert.AreEqual(2, customers[2]);

            route.InsertAfter(1, 3);

            customers = new List <int>(route);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);
            Assert.AreEqual(3, customers[2]);
            Assert.AreEqual(2, customers[3]);

            route.InsertAfter(0, 4);

            customers = new List <int>(route);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(4, customers[1]);
            Assert.AreEqual(1, customers[2]);
            Assert.AreEqual(3, customers[3]);
            Assert.AreEqual(2, customers[4]);
        }
示例#4
0
        public void TestDepotDynamicAsymmetricRouteReplaceEdge()
        {
            var route = new DepotRoute(
                new DynamicAsymmetricRoute(10, false));
            route.InsertAfter(0, 1);
            route.InsertAfter(1, 2);
            route.InsertAfter(2, 3);
            route.InsertAfter(3, 4);

            var customers = new List<int>(route);
            Assert.AreEqual(5, customers.Count);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);
            Assert.AreEqual(2, customers[2]);
            Assert.AreEqual(3, customers[3]);
            Assert.AreEqual(4, customers[4]);
            //route.ReplaceEdgeFrom(0, 1);
            Assert.IsTrue(route.IsValid());

            route.ReplaceEdgeFrom(2, 4);
            route.ReplaceEdgeFrom(4, 3);
            route.ReplaceEdgeFrom(3, 0);

            customers = new List<int>(route);
            Assert.AreEqual(5, customers.Count);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);
            Assert.AreEqual(2, customers[2]);
            Assert.AreEqual(4, customers[3]);
            Assert.AreEqual(3, customers[4]);
            Assert.IsTrue(route.IsValid());

            route.ReplaceEdgeFrom(0, 0);
            customers = new List<int>(route);
            Assert.AreEqual(1, customers.Count);
            Assert.AreEqual(0, customers[0]);

            Assert.IsTrue(route.IsValid());
        }
示例#5
0
        public void TestDepotDynamicAsymmetricRouteInsertAfter()
        {
            var route = new DepotRoute(
                new DynamicAsymmetricRoute(10, false));

            route.InsertAfter(0, 1);

            var customers = new List<int>(route);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);

            route.InsertAfter(1, 2);

            customers = new List<int>(route);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);
            Assert.AreEqual(2, customers[2]);

            route.InsertAfter(1, 3);

            customers = new List<int>(route);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);
            Assert.AreEqual(3, customers[2]);
            Assert.AreEqual(2, customers[3]);

            route.InsertAfter(0, 4);

            customers = new List<int>(route);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(4, customers[1]);
            Assert.AreEqual(1, customers[2]);
            Assert.AreEqual(3, customers[3]);
            Assert.AreEqual(2, customers[4]);
        }
示例#6
0
        public void TestDepotDynamicAsymmetricRouteEmpty()
        {
            var route = new DepotRoute(
                new DynamicAsymmetricRoute(10, false));

            route.InsertAfter(0, 1);

            var customers = new List<int>(route);
            Assert.AreEqual(0, customers[0]);
            Assert.AreEqual(1, customers[1]);
        }