Free cookie consent management tool by TermsFeed Policy Generator

Changeset 10118


Ignore:
Timestamp:
11/10/13 21:55:56 (10 years ago)
Author:
ascheibe
Message:

#1886 added another unit test for permutations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Analysis.AlgorithmBehavior/AlgorithmBehaviorUnitTests/DistanceMatrixToPointsTest.cs

    r10109 r10118  
    4545      CalculateDistanceMatrix(orgDm, orgPoints);
    4646
    47       newPoints = DistanceMatrixToPoints.MetricMDS(orgDm);
     47      newPoints = DistanceMatrixToPoints.MetricMDS(orgDm, dim, true);
    4848
    4949      CalculateDistanceMatrix(newDm, newPoints);
     
    156156    [TestMethod]
    157157    public void TestMetricMDSForPermutations() {
    158       int nrOfPoints = 30;
    159       int dim = 20;
     158      int nrOfPoints = 10;
     159      int dim = 5;
    160160      Permutation[] orgPoints = new Permutation[nrOfPoints];
    161161      double[][] orgDm;
     
    168168      orgDm = CalculateDistanceMatrixFromPermutations(orgPoints);
    169169
    170       newPoints = DistanceMatrixToPoints.MetricMDS(orgDm, dim);
    171 
    172       CalculateDistanceMatrix(newDm, newPoints);
    173       Console.WriteLine("orgDm:");
    174       PrintDM(orgDm);
    175       Console.WriteLine("newDm:");
    176       PrintDM(newDm);
    177 
    178       for (int i = 0; i < orgDm.Length; i++) {
    179         for (int j = 0; j < orgDm.Length; j++) {
    180           double diff = orgDm[i][j] - newDm[i][j];
    181           Assert.IsTrue(diff.IsAlmost(0.0));
    182         }
    183       }
     170      newPoints = DistanceMatrixToPoints.MetricMDS(orgDm, dim, true);
     171
     172      CalculateDistanceMatrix(newDm, newPoints);
     173      Console.WriteLine("orgDm:");
     174      PrintDM(orgDm);
     175      Console.WriteLine("newDm:");
     176      PrintDM(newDm);
     177
     178      for (int i = 0; i < orgDm.Length; i++) {
     179        for (int j = 0; j < orgDm.Length; j++) {
     180          double diff = orgDm[i][j] - newDm[i][j];
     181          Assert.IsTrue(diff.IsAlmost(0.0));
     182        }
     183      }
     184    }
     185
     186    [TestMethod]
     187    public void TestMetricMDSForPermutationsStatic() {
     188      int nrOfPoints = 15;
     189      int dim = 5;
     190
     191      double[][] orgDm = StaticPermutationDM();
     192      double[][] newDm = new double[nrOfPoints][];
     193      double[][] newPoints = null;
     194
     195      AllocArray(newDm, nrOfPoints);
     196
     197      newPoints = DistanceMatrixToPoints.MetricMDS(orgDm, dim, true);
     198
     199      CalculateDistanceMatrix(newDm, newPoints);
     200      Console.WriteLine("orgDm:");
     201      PrintDM(orgDm);
     202      Console.WriteLine("newDm:");
     203      PrintDM(newDm);
     204
     205      for (int i = 0; i < orgDm.Length; i++) {
     206        for (int j = 0; j < orgDm.Length; j++) {
     207          double diff = Math.Abs(orgDm[i][j] - newDm[i][j]);
     208          if (diff < 0.000001) diff = 0.0;
     209          Assert.IsTrue(diff.IsAlmost(0.0));
     210        }
     211      }
     212    }
     213
     214    private static double[][] StaticPermutationDM() {
     215      double[][] dm = new double[15][];
     216      AllocArray(dm, 15);
     217
     218      dm[0] = new[] {
     219        0, 1.09544511501033, 1.09544511501033, 0.894427190999916, 0.894427190999916, 1.4142135623731, 0.894427190999916,
     220        0, 1.09544511501033, 1.09544511501033, 0, 1.09544511501033, 1.09544511501033,
     221        1.4142135623731, 0.894427190999916 };
     222      dm[1] = new[]
     223      {
     224        1.09544511501033, 0, 1.09544511501033, 0.894427190999916, 0.894427190999916, 0.894427190999916, 0.894427190999916,
     225        1.09544511501033, 1.09544511501033, 1.09544511501033, 1.09544511501033, 1.09544511501033, 1.09544511501033,
     226        0.894427190999916, 0.894427190999916
     227      };
     228      dm[2] = new[]
     229      {
     230        1.09544511501033, 1.09544511501033, 0, 0.894427190999916, 0.894427190999916, 0.894427190999916, 1.4142135623731,
     231        1.09544511501033, 1.09544511501033, 1.09544511501033, 1.09544511501033, 0, 1.09544511501033, 0.894427190999916,
     232        0.894427190999916
     233      };
     234      dm[3] = new[]
     235      {
     236        0.894427190999916, 0.894427190999916, 0.894427190999916, 0, 1.09544511501033, 1.09544511501033, 1.09544511501033,
     237        0.894427190999916, 1.4142135623731, 0.894427190999916, 0.894427190999916, 0.894427190999916, 0.894427190999916,
     238        1.09544511501033, 1.09544511501033
     239      };
     240      dm[4] = new[]
     241      {
     242        0.894427190999916, 0.894427190999916, 0.894427190999916, 1.09544511501033, 0, 1.09544511501033, 1.09544511501033,
     243        0.894427190999916, 0.894427190999916, 1.4142135623731, 0.894427190999916, 0.894427190999916, 1.4142135623731,
     244        1.09544511501033, 0
     245      };
     246      dm[5] = new[]
     247      {
     248        1.4142135623731, 0.894427190999916, 0.894427190999916, 1.09544511501033, 1.09544511501033, 0, 1.09544511501033,
     249        1.4142135623731, 0.894427190999916, 0.894427190999916, 1.4142135623731, 0.894427190999916, 0.894427190999916, 0,
     250        1.09544511501033
     251      };
     252      dm[6] = new[]
     253      {
     254        0.894427190999916, 0.894427190999916, 1.4142135623731, 1.09544511501033, 1.09544511501033, 1.09544511501033, 0,
     255        0.894427190999916, 0.894427190999916, 0.894427190999916, 0.894427190999916, 1.4142135623731, 0.894427190999916,
     256        1.09544511501033, 1.09544511501033
     257      };
     258      dm[7] = new[]
     259      {
     260        0, 1.09544511501033, 1.09544511501033, 0.894427190999916, 0.894427190999916, 1.4142135623731, 0.894427190999916,
     261        0, 1.09544511501033, 1.09544511501033, 0, 1.09544511501033, 1.09544511501033, 1.4142135623731, 0.894427190999916
     262      };
     263      dm[8] = new[]
     264      {
     265        1.09544511501033, 1.09544511501033, 1.09544511501033, 1.4142135623731, 0.894427190999916, 0.894427190999916,
     266        0.894427190999916, 1.09544511501033, 0, 1.09544511501033, 1.09544511501033, 1.09544511501033, 1.09544511501033,
     267        0.894427190999916, 0.894427190999916
     268      };
     269      dm[9] = new[]
     270      {
     271        1.09544511501033, 1.09544511501033, 1.09544511501033, 0.894427190999916, 1.4142135623731, 0.894427190999916,
     272        0.894427190999916, 1.09544511501033, 1.09544511501033, 0, 1.09544511501033, 1.09544511501033, 0,
     273        0.894427190999916, 1.4142135623731
     274      };
     275      dm[10] = new[]
     276      {
     277        0, 1.09544511501033, 1.09544511501033, 0.894427190999916, 0.894427190999916, 1.4142135623731, 0.894427190999916,
     278        0, 1.09544511501033, 1.09544511501033, 0, 1.09544511501033, 1.09544511501033, 1.4142135623731, 0.894427190999916
     279      };
     280      dm[11] = new[]
     281      {
     282        1.09544511501033, 1.09544511501033, 0, 0.894427190999916, 0.894427190999916, 0.894427190999916, 1.4142135623731,
     283        1.09544511501033, 1.09544511501033, 1.09544511501033, 1.09544511501033, 0, 1.09544511501033, 0.894427190999916,
     284        0.894427190999916
     285      };
     286      dm[12] = new[]
     287      {
     288        1.09544511501033, 1.09544511501033, 1.09544511501033, 0.894427190999916, 1.4142135623731, 0.894427190999916,
     289        0.894427190999916, 1.09544511501033, 1.09544511501033, 0, 1.09544511501033, 1.09544511501033, 0,
     290        0.894427190999916, 1.4142135623731
     291      };
     292      dm[13] = new[]
     293      {
     294        1.4142135623731, 0.894427190999916, 0.894427190999916, 1.09544511501033, 1.09544511501033, 0, 1.09544511501033,
     295        1.4142135623731, 0.894427190999916, 0.894427190999916, 1.4142135623731, 0.894427190999916, 0.894427190999916, 0,
     296        1.09544511501033
     297      };
     298      dm[14] = new[]
     299      {
     300        0.894427190999916, 0.894427190999916, 0.894427190999916, 1.09544511501033, 0, 1.09544511501033, 1.09544511501033,
     301        0.894427190999916, 0.894427190999916, 1.4142135623731, 0.894427190999916, 0.894427190999916, 1.4142135623731,
     302        1.09544511501033, 0
     303      };
     304      return dm;
    184305    }
    185306
Note: See TracChangeset for help on using the changeset viewer.