Exemplo n.º 1
0
        private static bool Equals(Core.Models.OptimizationInput v1, Core.Models.OptimizationInput v2)
        {
            if (v1.Visits.Length != v2.Visits.Length)
            {
                return(false);
            }

            bool equals = true;

            for (int i = 0; equals && i < v1.Visits.Length; i++)
            {
                equals = true &&
                         v1.Visits[i].Id == v2.Visits[i].Id &&
                         v1.Visits[i].Duration == v2.Visits[i].Duration &&
                         v1.Visits[i].WayCostFromHome == v2.Visits[i].WayCostFromHome &&
                         v1.Visits[i].WayCostToHome == v2.Visits[i].WayCostToHome &&
                         v1.Visits[i].Desired.SequenceEqual(v2.Visits[i].Desired) &&
                         v1.Visits[i].Unavailable.SequenceEqual(v2.Visits[i].Unavailable) &&
                         v1.Visits[i].IsBreak.Equals(v2.Visits[i].IsBreak) &&
                         v1.Visits[i].SantaId.Equals(v2.Visits[i].SantaId)
                ;
            }

            return(equals &&
                   v1.Santas.SequenceEqual(v2.Santas) &&
                   v1.Days.SequenceEqual(v2.Days) &&
                   v1.RouteCosts.Cast <int>().SequenceEqual(v2.RouteCosts.Cast <int>())
                   );
        }
Exemplo n.º 2
0
        /// <summary>
        /// Checks all fields
        /// </summary>
        /// <param name="expected"></param>
        /// <param name="actual"></param>
        private static void AssertOptimizationInputEqual(Core.Models.OptimizationInput expected, Core.Models.OptimizationInput actual)
        {
            Assert.AreEqual(expected.Visits.Length, actual.Visits.Length);

            for (int i = 0; i < expected.Visits.Length; i++)
            {
                Assert.AreEqual(expected.Visits[i].Id, actual.Visits[i].Id);
                Assert.AreEqual(expected.Visits[i].Duration, actual.Visits[i].Duration);
                Assert.AreEqual(expected.Visits[i].WayCostFromHome, actual.Visits[i].WayCostFromHome);
                Assert.AreEqual(expected.Visits[i].WayCostToHome, actual.Visits[i].WayCostToHome);
                CollectionAssert.AreEqual(expected.Visits[i].Desired, actual.Visits[i].Desired);
                CollectionAssert.AreEqual(expected.Visits[i].Unavailable, actual.Visits[i].Unavailable);
                Assert.AreEqual(expected.Visits[i].IsBreak, actual.Visits[i].IsBreak);
                Assert.AreEqual(expected.Visits[i].SantaId, actual.Visits[i].SantaId);
            }

            CollectionAssert.AreEqual(expected.Santas, actual.Santas);
            CollectionAssert.AreEqual(expected.Days, actual.Days);
            CollectionAssert.AreEqual(expected.RouteCosts, actual.RouteCosts);
        }