Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/02/14 15:08:32 (10 years ago)
Author:
ascheibe
Message:

#2127 merged r10213, r10433, r10476, r10494 into stable

Location:
stable
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Tests

  • stable/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/TestUtils.cs

    r9885 r11073  
    2020#endregion
    2121
     22using System.Linq;
    2223using HeuristicLab.Core;
    2324using HeuristicLab.Encodings.IntegerVectorEncoding;
     
    9798      return result;
    9899    }
     100    public static bool ScheduleEquals(Schedule actual, Schedule expected) {
     101      return actual.Resources.Count == expected.Resources.Count &&
     102             actual.Resources.Zip(expected.Resources, (a, e) => ResourceEquals(a, e)).All(_ => _);
     103    }
     104
     105    public static bool ResourceEquals(Resource actual, Resource expected) {
     106      return actual.Index == expected.Index &&
     107             actual.TotalDuration == expected.TotalDuration &&
     108             actual.Tasks.Count == expected.Tasks.Count &&
     109             actual.Tasks.Zip(expected.Tasks, (a, e) => TaskEquals(a, e)).All(_ => _);
     110    }
     111
     112    public static bool TaskEquals(ScheduledTask actual, ScheduledTask expected) {
     113      return
     114        actual.StartTime == expected.StartTime &&
     115        actual.EndTime == expected.EndTime &&
     116        actual.Duration == expected.Duration &&
     117        actual.ResourceNr == expected.ResourceNr &&
     118        actual.JobNr == expected.JobNr &&
     119        actual.TaskNr == expected.TaskNr;
     120    }
     121
     122    public static bool JSMEncodingEquals(JSMEncoding expected, JSMEncoding actual) {
     123      if (expected.JobSequenceMatrix.Count != actual.JobSequenceMatrix.Count)
     124        return false;
     125      for (int i = 0; i < expected.JobSequenceMatrix.Count; i++) {
     126        if (!PermutationEquals(expected.JobSequenceMatrix[i], actual.JobSequenceMatrix[i]))
     127          return false;
     128      }
     129      return true;
     130    }
     131    private static bool PermutationEquals(Permutation p1, Permutation p2) {
     132      if (p1.Length != p2.Length)
     133        return false;
     134      for (int i = 0; i < p1.Length; i++) {
     135        if (p1[i] != p2[i])
     136          return false;
     137      }
     138      return true;
     139    }
     140
     141    public static bool PRWEncodingEquals(PWREncoding expected, PWREncoding actual) {
     142      if (expected.PermutationWithRepetition.Length != actual.PermutationWithRepetition.Length)
     143        return false;
     144      for (int i = 0; i < expected.PermutationWithRepetition.Length; i++) {
     145        if (expected.PermutationWithRepetition[i] != actual.PermutationWithRepetition[i])
     146          return false;
     147      }
     148      return true;
     149    }
    99150  }
    100151}
Note: See TracChangeset for help on using the changeset viewer.