Example #1
0
 public function testConstruct()
 {
     $item = new Item(123, 456, 789, 321);
     $this->assertSame(123, $item->getWidth());
     $this->assertSame(456, $item->getHeight());
     $this->assertSame(789, $item->getDepth());
     $this->assertSame(321, $item->getWeight());
 }
Example #2
0
 public function isItemCeilPlaced(Item $item)
 {
     $reverseFloor = [];
     $ceilLength = $this->getRemainCeilLength();
     foreach ($this->floor as $i) {
         if ($i->getItem()->getLength() <= $ceilLength) {
             $reverseFloor[] = $i;
             $ceilLength -= $i->getItem()->getLength();
             continue;
         }
         break;
     }
     if (empty($reverseFloor)) {
         return false;
     }
     $reverseFloor = array_reverse($reverseFloor);
     $length = $this->getRemainFloorLength();
     /** @var LevelItem $i */
     foreach ($reverseFloor as $i) {
         if ($item->getLength() <= ($length += $i->getItem()->getLength())) {
             if ($item->getHeight() <= $i->getRemainHeight()) {
                 return true;
             }
             break;
         }
     }
 }