Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/09/18 12:59:38 (6 years ago)
Author:
rhanghof
Message:

#2817:

  • Adjusted the unit tests
  • Refactoring of the sorter
  • Bugfix on the BinPackerResidualSpaceBestFit packer
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2817-BinPackingSpeedup/HeuristicLab.Tests/HeuristicLab.Problems.Bin-Packing-3.3/3D/Instances/RandomInstanceProviderTest.cs

    r15959 r15989  
    1717      public int Height { get; set; }
    1818      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    }   
    10120
    10221    #region TestExtremePointAlgorithm
     
    198117            algorithm.FittingMethodParameter.Value.Value = fittingMethod;
    199118            algorithm.ExtremePointCreationMethodParameter.Value.Value = epCreationMethod;
    200             algorithm.SortByMaterialParameter.Value.Value = false;
     119            algorithm.SortBySequenceGroupParameter.Value.Value = false;
    201120
    202121            algorithm.Problem.UseStackingConstraintsParameter.Value.Value = false;
Note: See TracChangeset for help on using the changeset viewer.