#region License Information
/* HeuristicLab
* Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
*
* This file is part of HeuristicLab.
*
* HeuristicLab is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* HeuristicLab is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with HeuristicLab. If not, see .
*/
#endregion
using System;
using System.Collections.Generic;
using System.Text;
using HeuristicLab.Problems.Instances.QAPLIB;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace UnitTests {
[TestClass()]
public class QAPLIBInstanceProviderTest {
[TestMethod()]
public void GetQAPLIBInstanceTest() {
var target = new QAPLIBInstanceProvider();
StringBuilder erroneousInstances = new StringBuilder();
int count = 0;
foreach (var id in target.GetInstanceDescriptors()) {
try {
target.LoadInstance(id);
} catch (Exception ex) {
erroneousInstances.AppendLine(id.Name + ": " + ex.Message);
}
count++;
}
Assert.IsTrue(count > 0, "No problem instances were found.");
Assert.IsTrue(erroneousInstances.Length == 0, "Some instances could not be parsed: " + Environment.NewLine + erroneousInstances.ToString());
}
///
///A test for GetInstance
///
[TestMethod()]
public void GetInstanceTest() {
List nonZeroDiagonalInstances = new List();
var target = new QAPLIBInstanceProvider();
foreach (var id in target.GetInstanceDescriptors()) {
var instance = target.LoadInstance(id);
for (int i = 0; i < instance.Dimension; i++)
if (instance.Distances[i, i] != 0 || instance.Weights[i, i] != 0) {
nonZeroDiagonalInstances.Add(instance.Name);
break;
}
}
Assert.IsTrue(nonZeroDiagonalInstances.Count == 0, string.Join(Environment.NewLine, nonZeroDiagonalInstances));
}
}
}