public void EvaluateFitnessAllInOneRow() { var fitness = new StretchFitness(definitionSample); var chromosome = new StretchChromosome(24, 5, 0, 1, 2, 3, 4); Assert.That( fitness.WeightedDistanceFor(chromosome), Is.EqualTo(1 * 7 + 2 * 4 + 3 * 2 + 1 * 6) ); Assert.AreEqual(0.2437085, fitness.Evaluate(chromosome), precision); }
public void DefineFitnessFromString() { var fitness = new StretchFitness(definitionSample); Assert.That(fitness.Width, Is.EqualTo(6)); Assert.That(fitness.Height, Is.EqualTo(4)); Assert.That(fitness.Nodes.Length, Is.EqualTo(5)); Assert.That( fitness.Nodes.Select(n => n.Name), Is.EqualTo(new string[] { "Superman", "Kryptonite", "LexLuthor", "Batman", "Joker" }) ); }
public void EvaluateFitnessWithDiagonal() { var fitness = new StretchFitness(definitionSample); var chromosome = new StretchChromosome(24, 5, 0, 7, 14, 21, 16); var sqrt2 = Math.Sqrt(2); Assert.AreEqual( fitness.WeightedDistanceFor(chromosome), sqrt2 * 7 + 2 * sqrt2 * 4 + 3 * sqrt2 * 2 + sqrt2 * 6, precision ); Assert.AreEqual(0.3446559, fitness.Evaluate(chromosome), precision); }
public void EvaluateGeneralFitness() { var fitness = new StretchFitness(definitionSample); var chromosome = new StretchChromosome(24, 5, 5, 12, 19, 0, 23); var diag = Math.Sqrt(34); var diag2 = Math.Sqrt(25); var diag3 = Math.Sqrt(29); Assert.AreEqual( fitness.WeightedDistanceFor(chromosome), diag3 * 7 + diag2 * 4 + 5 * 2 + diag * 6, precision ); Assert.AreEqual(0.9268313, fitness.Evaluate(chromosome), precision); }
public override IFitness CreateFitness() { if (string.IsNullOrEmpty(m_problemDefinition)) { return(null); } try { m_fitness = new StretchFitness(m_problemDefinition); InitializeDrawingScales(); return(m_fitness); } catch (Exception) { var md = new MessageDialog(Context.GtkWindow, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Close, "Error loading file"); md.Run(); md.Destroy(); return(null); } }