Changeset 15989 for branches/2817-BinPackingSpeedup/HeuristicLab.Tests/HeuristicLab.Problems.Bin-Packing-3.3/3D/Instances/RandomInstanceProviderTest.cs
- Timestamp:
- 07/09/18 12:59:38 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2817-BinPackingSpeedup/HeuristicLab.Tests/HeuristicLab.Problems.Bin-Packing-3.3/3D/Instances/RandomInstanceProviderTest.cs
r15959 r15989 17 17 public int Height { get; set; } 18 18 public int Depth { get; set; } 19 } 20 21 #region TestRandomInstanceProvider 22 23 24 /// <summary> 25 /// Tests if the generated random instance equals to the references generated by david pisinger 26 /// http://www.diku.dk/~pisinger/new3dbpp/test3dbpp.c 27 /// </summary> 28 [TestMethod] 29 [TestCategory("Problems.BinPacking.3D")] 30 [TestProperty("Time", "long")] 31 public void TestRandomInstanceProvider() { 32 33 var referenceItemLists = ReadReferenceItemLists(); 34 TestRandomInstanceProviderByClass(new RandomInstanceClass1Provider(), referenceItemLists); 35 TestRandomInstanceProviderByClass(new RandomInstanceClass2Provider(), referenceItemLists); 36 TestRandomInstanceProviderByClass(new RandomInstanceClass3Provider(), referenceItemLists); 37 TestRandomInstanceProviderByClass(new RandomInstanceClass4Provider(), referenceItemLists); 38 TestRandomInstanceProviderByClass(new RandomInstanceClass5Provider(), referenceItemLists); 39 TestRandomInstanceProviderByClass(new RandomInstanceClass6Provider(), referenceItemLists); 40 TestRandomInstanceProviderByClass(new RandomInstanceClass7Provider(), referenceItemLists); 41 TestRandomInstanceProviderByClass(new RandomInstanceClass8Provider(), referenceItemLists); 42 43 } 44 45 private IDictionary<string, List<Dimension>> ReadReferenceItemLists() { 46 var itemList = new Dictionary<string, List<Dimension>>(); 47 string path = @".\..\HeuristicLab.Tests\HeuristicLab.Problems.Bin-Packing-3.3\TestInstances\ReferenceInstances"; 48 49 string[] files = Directory.GetFiles(path); 50 foreach (string filePath in files) { 51 string key = Path.GetFileNameWithoutExtension(filePath); 52 53 using (StreamReader reader = new StreamReader(filePath)) { 54 int lineNumber = 1; 55 List<Dimension> dimensionList = new List<Dimension>(); 56 while (!reader.EndOfStream) { 57 string line = reader.ReadLine(); 58 if (lineNumber > 2) { 59 string[] lineValues = line.Split('\t'); 60 int id; 61 int depth; 62 int width; 63 int height; 64 Int32.TryParse(lineValues[0], out id); 65 Int32.TryParse(lineValues[1], out depth); 66 Int32.TryParse(lineValues[2], out width); 67 Int32.TryParse(lineValues[3], out height); 68 dimensionList.Add(new Dimension() { 69 Id = id, 70 Depth = depth, 71 Width = width, 72 Height = height 73 }); 74 } 75 lineNumber++; 76 } 77 itemList.Add(key, dimensionList); 78 } 79 } 80 return itemList; 81 } 82 83 private void TestRandomInstanceProviderByClass(RandomInstanceProvider randomInstanceProvider, IDictionary<string, List<Dimension>> referenceItems) { 84 85 var dataDescriptors = randomInstanceProvider.GetDataDescriptors(); 86 foreach (var dataDescriptor in dataDescriptors) { 87 List<Dimension> testItemDimensions = null; 88 if (referenceItems.TryGetValue(dataDescriptor.Name, out testItemDimensions)) { 89 var packingItems = randomInstanceProvider.LoadData(dataDescriptor).Items; 90 Assert.IsNotNull(packingItems); 91 Assert.AreEqual(testItemDimensions.Count, packingItems.Length); 92 for (int i = 0; i < packingItems.Length; i++) { 93 Assert.AreEqual(testItemDimensions[i].Width, packingItems[i].Width); 94 Assert.AreEqual(testItemDimensions[i].Height, packingItems[i].Height); 95 Assert.AreEqual(testItemDimensions[i].Depth, packingItems[i].Depth); 96 } 97 } 98 } 99 } 100 #endregion 19 } 101 20 102 21 #region TestExtremePointAlgorithm … … 198 117 algorithm.FittingMethodParameter.Value.Value = fittingMethod; 199 118 algorithm.ExtremePointCreationMethodParameter.Value.Value = epCreationMethod; 200 algorithm.SortBy MaterialParameter.Value.Value = false;119 algorithm.SortBySequenceGroupParameter.Value.Value = false; 201 120 202 121 algorithm.Problem.UseStackingConstraintsParameter.Value.Value = false;
Note: See TracChangeset
for help on using the changeset viewer.