DVDoug\BoxPacker\PackerTest::testPackerPacksRotatedBoxesInNewRow PHP Метод

testPackerPacksRotatedBoxesInNewRow() публичный Метод

    public function testPackerPacksRotatedBoxesInNewRow()
    {
        $packer = new Packer();
        $packer->addItem(new TestItem('30x10x30item', 30, 10, 30, 0, true), 9);
        //Box can hold 7 items in a row and then is completely full, so 9 items won't fit
        $packer->addBox(new TestBox('30x70x30InternalBox', 30, 70, 30, 0, 30, 70, 30, 0, 1000));
        $packedBoxes = $packer->pack();
        self::assertEquals(2, $packedBoxes->count());
        //Box can hold 7 items in a row, plus two more rotated, making 9 items
        // with a 10x10x30 hole in the corner.
        //
        // Overhead view:
        //
        // +--+--++
        // ++++++++
        // ||||||||
        // ++++++++
        //
        $packer = new Packer();
        $packer->addItem(new TestItem('30x10x30item', 30, 10, 30, 0, true), 9);
        $packer->addBox(new TestBox('40x70x30InternalBox', 40, 70, 30, 0, 40, 70, 30, 0, 1000));
        $packedBoxes = $packer->pack();
        self::assertEquals(1, $packedBoxes->count());
        // Make sure that it doesn't try to fit in a 10th item
        $packer = new Packer();
        $packer->addItem(new TestItem('30x10x30item', 30, 10, 30, 0, true), 10);
        $packer->addBox(new TestBox('40x70x30InternalBox', 40, 70, 30, 0, 40, 70, 30, 0, 1000));
        $packedBoxes = $packer->pack();
        self::assertEquals(2, $packedBoxes->count());
    }