Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/08/16 15:30:46 (9 years ago)
Author:
bwerth
Message:

#1087 several fixes according to the reviev comments in comment 31

Location:
branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests
Files:
3 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/CrowdingTest.cs

    r14021 r14030  
    2525namespace MultiObjectiveTestfunctionTests {
    2626  [TestClass]
    27   public class SpacingTest {
     27  public class CrowdingTest {
    2828
    2929    [TestMethod]
     
    3434      double[][] front = { };
    3535
    36       Spacing.Calculate(front);
     36      Crowding.Calculate(front, null);
    3737    }
    3838
     
    5050      point1[1] = 0.5;
    5151      double[][] front = { point, point1 };
    52       double dist = Spacing.Calculate(front);
    53       Assert.AreEqual(0, dist);
     52      double dist = Crowding.Calculate(front, new double[,] { { 0, 1 }, { 0, 1 } });
     53      Assert.AreEqual(double.PositiveInfinity, dist);
    5454    }
    5555
     
    6262      point[1] = 0;
    6363      double[][] front = { point };
    64       double dist = Spacing.Calculate(front);
    65       Assert.AreEqual(0, dist);
     64      double dist = Crowding.Calculate(front, new double[,] { { 0, 1 }, { 0, 1 } });
     65      Assert.AreEqual(double.PositiveInfinity, dist);
    6666    }
    6767
     
    6969    [TestCategory("Problems.TestFunctions")]
    7070    [TestProperty("Time", "short")]
    71     public void QuadraticTest() {
     71    public void DiagonalTest() {
    7272      double[] point = new double[2];
    7373      point[0] = 0;
    7474      point[1] = 0;
    7575      double[] point1 = new double[2];
    76       point1[0] = 0;
    77       point1[1] = 1;
     76      point1[0] = 0.5;
     77      point1[1] = 0.5;
    7878
    7979      double[] point2 = new double[2];
    8080      point2[0] = 1;
    81       point2[1] = 0;
    82       double[] point3 = new double[2];
    83       point3[0] = 1;
    84       point3[1] = 1;
    85       double[][] front = { point, point1, point2, point3 };
    86       double dist = Spacing.Calculate(front);
    87       Assert.AreEqual(0, dist);
     81      point2[1] = 1;
     82      double[][] front = { point, point1, point2 };
     83      double dist = Crowding.Calculate(front, new double[,] { { 0, 1 }, { 0, 1 } });
     84      Assert.AreEqual(2, dist);
    8885    }
    8986
     
    9188    [TestCategory("Problems.TestFunctions")]
    9289    [TestProperty("Time", "short")]
    93     public void RectangularTest() {
     90    public void DiamondTest() {
    9491      double[] point = new double[2];
    9592      point[0] = 0;
    9693      point[1] = 0;
    9794      double[] point1 = new double[2];
    98       point1[0] = 0;
    99       point1[1] = 1;
     95      point1[0] = 1;
     96      point1[1] = 1.5;
    10097
    10198      double[] point2 = new double[2];
    102       point2[0] = 2;
    103       point2[1] = 0;
     99      point2[0] = 3;
     100      point2[1] = 0.5;
    104101      double[] point3 = new double[2];
    105       point3[0] = 2;
    106       point3[1] = 1;
     102      point3[0] = 4;
     103      point3[1] = 2;
    107104      double[][] front = { point, point1, point2, point3 };
    108       double dist = Spacing.Calculate(front);
    109       Assert.AreEqual(0, dist);
     105      double dist = Crowding.Calculate(front, new double[,] { { 0, 2 }, { 0, 1 } }); ;
     106      Assert.AreEqual(4.5, dist);
    110107    }
    111108
    112109    /// <summary>
    113     /// deltoid with 3 points of the 1-unit-square and the northeastern point at 4,4
    114     /// which gives d=(1,1,1,5) for minimal distances. Mean of d is 2 and variance of d is 3
    115     /// Spacing is defined as the standarddeviation of d
     110    /// deltoid with 4 points of the 1-unit-square and the northeastern point at 4,4
     111    ///
    116112    /// </summary>
    117113    [TestMethod]
     
    123119      point[1] = 0;
    124120      double[] point1 = new double[2];
    125       point1[0] = 0;
    126       point1[1] = 1;
     121      point1[0] = 0.00000001;         //points should not be exactly equal because sorting behaviour could change result
     122      point1[1] = 1.00000001;
    127123
    128124      double[] point2 = new double[2];
     
    132128      point3[0] = 4;
    133129      point3[1] = 4;
    134       double[][] front = { point, point1, point2, point3 };
    135       double dist = Spacing.Calculate(front);
    136       Assert.AreEqual(Math.Sqrt(3), dist);
     130
     131
     132      double[][] front = { point, point1, point2, point3, };
     133      double dist = Crowding.Calculate(front, new double[,] { { 0, 4 }, { 0, 4 } });
     134      Assert.AreEqual(1.25, dist);
    137135    }
    138136
  • branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/FastHyperVolumeTests.cs

    r13729 r14030  
    4646      double[][] front = { point };
    4747      double[] referencePoint = new double[] { 1, 1, 1 };
    48       double hv = MultiDimensionalHypervolume.Calculate(front, referencePoint);
     48      double hv = Hypervolume.Calculate(front, referencePoint, new bool[3]);
    4949      Assert.AreEqual(0.125, hv);
    5050    }
     
    8181      referencePoint[1] = 1;
    8282      referencePoint[2] = 1;
    83       double hv = MultiDimensionalHypervolume.Calculate(front, referencePoint);
     83      double hv = Hypervolume.Calculate(front, referencePoint, new bool[3]);
    8484      double hv2 = 1;
    8585      foreach (double d in point) {
     
    109109
    110110      double[] referencePoint = new double[] { 1, 1, 1 };
    111       double hv = MultiDimensionalHypervolume.Calculate(front, referencePoint);
     111      double hv = Hypervolume.Calculate(front, referencePoint, new bool[3]);
    112112      Assert.AreEqual(0.25, hv);
    113113    }
     
    127127      var front = NonDominatedSelect.selectNonDominatedVectors(points, maximization, true);
    128128
    129       double dim3hv = MultiDimensionalHypervolume.Calculate(front, referencePoint);
     129      double dim3hv = Hypervolume.Calculate(front, referencePoint, new bool[3]);
    130130      double dim2hv = Hypervolume.Calculate(front, referencePoint, maximization);
    131131
  • branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/MultiObjectiveTestfunctionTests.csproj

    r13673 r14030  
    6464  <ItemGroup>
    6565    <Compile Include="FastHyperVolumeTests.cs" />
     66    <Compile Include="CrowdingTest.cs" />
    6667    <Compile Include="SpacingTest.cs" />
    6768    <Compile Include="InvertedGenerationalDistanceTest.cs" />
  • branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/SpacingTest.cs

    r13988 r14030  
    2626  [TestClass]
    2727  public class SpacingTest {
     28
    2829
    2930    [TestMethod]
Note: See TracChangeset for help on using the changeset viewer.