Esempio n. 1
0
        public void GetShortestRoute_should_consider_routes_in_order_from_small_distance()
        {
            using (new IndirectionsContext())
            {
                // Arrange
                var slot                 = 0;
                var numAndDistances      = new[] { 4, 2, 4, 3, 1, 6, 7 };
                PRandom.NextInt32().Body = (@this, maxValue) => numAndDistances[slot++];

                var vil = new Village();

                var considerations = new List <RicePaddy>();
                PList <RicePaddy> .AddT().Body = (@this, item) =>
                {
                    IndirectionsContext.ExecuteOriginal(() =>
                    {
                        considerations.Add(item);
                        @this.Add(item);
                    });
                };


                // Act
                var result = vil.GetShortestRoute(vil.RicePaddies.ElementAt(2), vil.RicePaddies.ElementAt(0));


                // Assert
                Assert.AreEqual(3, result.TotalDistance);
                Assert.AreEqual(4, considerations.Count);
                Assert.AreEqual(2, considerations[0].Identifier);
                Assert.AreEqual(1, considerations[1].Identifier);
                Assert.AreEqual(0, considerations[2].Identifier);
                Assert.AreEqual(3, considerations[3].Identifier);
            }
        }
Esempio n. 2
0
        public void Add_should_be_callable_indirectly()
        {
            using (new IndirectionsContext())
            {
                // Arrange
                var actual = default(int);
                PList <int> .AddT().Body = (@this, item) => actual = item;

                // Act
                var list = new List <int>();
                list.Add(42);

                // Assert
                Assert.AreEqual(0, list.Count);
                Assert.AreEqual(42, actual);
            }
        }