- Timestamp:
- 08/09/11 18:46:09 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.QuadraticAssignment/3.3/Tests/QAPMoveEvaluatorTest.cs
r6628 r6648 226 226 } 227 227 228 [TestMethod] 229 public void ScrambleMoveEvaluatorTest() { 230 for (int i = 0; i < 500; i++) { 231 ScrambleMove scramble = StochasticScrambleMultiMoveGenerator.GenerateRandomMove(assignment, random); 232 233 // SYMMETRIC MATRICES 234 double before = QAPEvaluator.Apply(assignment, symmetricWeights, symmetricDistances); 235 Permutation clone = new Cloner().Clone(assignment); 236 ScrambleManipulator.Apply(assignment, scramble.StartIndex, scramble.ScrambledIndices); 237 double after = QAPEvaluator.Apply(assignment, symmetricWeights, symmetricDistances); 238 double move = QAPScrambleMoveEvaluator.Apply(clone, scramble, symmetricWeights, symmetricDistances); 239 Assert.IsTrue(move.IsAlmost(after - before), "Failed on symmetric matrices"); 240 241 // ASYMMETRIC MATRICES 242 before = QAPEvaluator.Apply(assignment, asymmetricWeights, asymmetricDistances); 243 clone = new Cloner().Clone(assignment); 244 ScrambleManipulator.Apply(assignment, scramble.StartIndex, scramble.ScrambledIndices); 245 after = QAPEvaluator.Apply(assignment, asymmetricWeights, asymmetricDistances); 246 move = QAPScrambleMoveEvaluator.Apply(clone, scramble, asymmetricWeights, asymmetricDistances); 247 Assert.IsTrue(move.IsAlmost(after - before), "Failed on asymmetric matrices"); 248 249 // NON-ZERO DIAGONAL ASYMMETRIC MATRICES 250 before = QAPEvaluator.Apply(assignment, nonZeroDiagonalWeights, nonZeroDiagonalDistances); 251 clone = new Cloner().Clone(assignment); 252 ScrambleManipulator.Apply(assignment, scramble.StartIndex, scramble.ScrambledIndices); 253 after = QAPEvaluator.Apply(assignment, nonZeroDiagonalWeights, nonZeroDiagonalDistances); 254 move = QAPScrambleMoveEvaluator.Apply(clone, scramble, nonZeroDiagonalWeights, nonZeroDiagonalDistances); 255 Assert.IsTrue(move.IsAlmost(after - before), "Failed on non-zero diagonal matrices"); 256 } 257 } 258 228 259 } 229 260 }
Note: See TracChangeset
for help on using the changeset viewer.