package org.moeaframework.algorithm.single; import org.junit.Assert; import org.junit.Test; import org.moeaframework.TestUtils; import org.moeaframework.core.Solution; import org.moeaframework.util.Vector; public class VectorAngleDistanceScalingComparatorTest { @Test public void testCalculateFitness() { Solution solution1 = TestUtils.newSolution(1.0, 1.0); Solution solution2 = TestUtils.newSolution(1.0, 1.0); double[] weights = Vector.normalize(new double[] { 1.0, 1.0 }); Assert.assertTrue(VectorAngleDistanceScalingComparator.calculateFitness(solution1, weights, 100.0) == VectorAngleDistanceScalingComparator.calculateFitness(solution2, weights, 100.0)); solution2 = TestUtils.newSolution(0.5, 0.5); Assert.assertTrue(VectorAngleDistanceScalingComparator.calculateFitness(solution1, weights, 100.0) > VectorAngleDistanceScalingComparator.calculateFitness(solution2, weights, 100.0)); solution2 = TestUtils.newSolution(1.5, 1.5); Assert.assertTrue(VectorAngleDistanceScalingComparator.calculateFitness(solution1, weights, 100.0) < VectorAngleDistanceScalingComparator.calculateFitness(solution2, weights, 100.0)); solution2 = TestUtils.newSolution(1.0, 0.0); Assert.assertTrue(VectorAngleDistanceScalingComparator.calculateFitness(solution1, weights, 100.0) < VectorAngleDistanceScalingComparator.calculateFitness(solution2, weights, 100.0)); solution1 = TestUtils.newSolution(0.5, 0.0); solution2 = TestUtils.newSolution(1.0, 0.0); Assert.assertTrue(VectorAngleDistanceScalingComparator.calculateFitness(solution1, weights, 100.0) < VectorAngleDistanceScalingComparator.calculateFitness(solution2, weights, 100.0)); solution1 = TestUtils.newSolution(0.75, 0.35); solution2 = TestUtils.newSolution(0.75, 0.25); Assert.assertTrue(VectorAngleDistanceScalingComparator.calculateFitness(solution1, weights, 100.0) < VectorAngleDistanceScalingComparator.calculateFitness(solution2, weights, 100.0)); } }