Пример #1
0
        static Tuple <BinPackResult, decimal> TestBinPacker(IBinPacker binPacker)
        {
            var binWidth              = RandomInstance.Next(100, 5001);
            var binHeight             = RandomInstance.Next(100, 5001);
            var binDepth              = RandomInstance.Next(100, 5001);
            var binWeight             = RandomInstance.Next(100, 5001);
            var cuboidsCount          = RandomInstance.Next(50, 501);
            var allowRotateVertically = RandomInstance.Next(0, 2) == 0;
            var cuboids = new List <Cuboid>();

            for (var x = 0; x < cuboidsCount; ++x)
            {
                var width  = RandomInstance.Next(1, binWidth + 1);
                var height = RandomInstance.Next(1, binHeight + 1);
                var depth  = RandomInstance.Next(1, binDepth + 1);
                var weight = RandomInstance.Next(1, binWeight / 20 + 1);
                cuboids.Add(new Cuboid(width, height, depth, weight, null));
            }
            var parameter = new BinPackParameter(
                binWidth, binHeight, binDepth, binWeight, allowRotateVertically, cuboids);
            var result     = binPacker.Pack(parameter);
            var volumeRate = BinPacker.GetVolumeRate(parameter, result.BestResult);

            return(Tuple.Create(result, volumeRate));
        }
Пример #2
0
        static BinPackResult TestBinPacker(IBinPacker binPacker)
        {
            var binWidth     = RandomInstance.Next(100, 5001);
            var binHeight    = RandomInstance.Next(100, 5001);
            var binDepth     = RandomInstance.Next(100, 5001);
            var cuboidsCount = RandomInstance.Next(50, 501);
            var cuboids      = new List <Cuboid>();

            for (var x = 0; x < cuboidsCount; ++x)
            {
                var width  = RandomInstance.Next(1, binWidth + 1);
                var height = RandomInstance.Next(1, binHeight + 1);
                var depth  = RandomInstance.Next(1, binDepth + 1);
                cuboids.Add(new Cuboid(width, height, depth));
            }
            var parameter = new BinPackParameter(binWidth, binHeight, binDepth, cuboids);

            return(binPacker.Pack(parameter));
        }