Example #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));
        }
Example #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);
        }