Exemple #1
0
        public void PartialProblemsMessageXmlIsProperlySerializedAndDeserialized()
        {
            var pp = new PartialProblemsMessage.PartialProblem
            {
                Data = new byte[] {1, 2, 3},
                TaskManagerId = 5,
                PartialProblemId = 10
            };

            var message = new PartialProblemsMessage
            {
                CommonData = new byte[] {1, 2, 3, 4, 5},
                PartialProblems = new List<PartialProblemsMessage.PartialProblem> {pp},
                ProblemInstanceId = 15,
                ProblemType = "Dvrp",
                SolvingTimeout = 20
            };

            var serializedMessage = _serializer.Serialize(message);
            var deserializedMessage = _serializer.Deserialize(serializedMessage);

            Assert.IsInstanceOfType(deserializedMessage, typeof (PartialProblemsMessage));
        }
Exemple #2
0
        /// <summary>
        /// Create partial problems message that can be send to a computational node.
        /// </summary>
        /// <returns>Partial problems message.</returns>
        public override Message CreateMessage()
        {
            var msgPartialProblems = new List<PartialProblemsMessage.PartialProblem>(PartialProblems.Count);

            foreach (var pp in PartialProblems)
            {
                var msgPp = new PartialProblemsMessage.PartialProblem
                {
                    Data = pp.PrivateData,
                    PartialProblemId = pp.Id,
                    TaskManagerId = pp.Problem.DividingNodeId.Value
                };
                msgPartialProblems.Add(msgPp);
            }

            var problem = PartialProblems[0].Problem;

            var message = new PartialProblemsMessage
            {
                CommonData = problem.CommonData,
                PartialProblems = msgPartialProblems,
                ProblemInstanceId = problem.Id,
                ProblemType = problem.Type,
                SolvingTimeout = problem.SolvingTimeout
            };

            return message;
        }