public static void CreateTestLogContent(out InMemoryLogger logger, out Dictionary <string, string> strMsg, out Dictionary <string, string> popTags)
        {
            logger = new InMemoryLogger();
            strMsg =
                new Dictionary <string, string>()
            {
                { "Message", "the string message" },
                { "Category", "the string category" }
            };

            logger.Write("String message", strMsg);

            var evaluator = new IdentityObjEval();
            var inPoints  = new List <TestHyperCube>();

            inPoints.Add(createPoint(1.0, 2.0, 3.0));
            inPoints.Add(createPoint(1.0, 2.2, 4.0));
            inPoints.Add(createPoint(2.0, 3.0, 5.0));
            var inScores = Array.ConvertAll(inPoints.ToArray(), (x => (IObjectiveScores)evaluator.EvaluateScore(x)));


            popTags = new Dictionary <string, string>()
            {
                { "Message", "initial population msg" },
                { "Category", "initial population category" }
            };

            logger.Write(inScores, popTags);
        }
        public void TestInterpolator()
        {
            var evaluator = new IdentityObjEval();
            var inPoints  = new List <TestHyperCube>();

            inPoints.Add(createPoint(1.0, 2.0, 3.0));
            inPoints.Add(createPoint(1.0, 2.0, 4.0));
            inPoints.Add(createPoint(2.0, 3.0, 5.0));
            var inScores  = Array.ConvertAll(inPoints.ToArray(), (x => evaluator.EvaluateScore(x)));
            var outPoints = MetaheuristicsHelper.InterpolateBetweenPoints <TestHyperCube>(evaluator, inScores, 0.1 + 1e-11);

            Assert.AreEqual(21, outPoints.Length);
            assertPoint(outPoints[0], 1.0, 2.0, 3.0);
            assertPoint(outPoints[1], 1.0, 2.0, 3.1);
            assertPoint(outPoints[10], 1.0, 2.0, 4.0);
            assertPoint(outPoints[15], 1.5, 2.5, 4.5);
        }