/** * @param Dimensions $dimensions * @return Weight */ public function calculate(Dimensions $dimensions) { $length = $this->lengthConverter->convert($dimensions->getLength(), $dimensions->getUnit(), LengthUnits::IN); $width = $this->lengthConverter->convert($dimensions->getWidth(), $dimensions->getUnit(), LengthUnits::IN); $height = $this->lengthConverter->convert($dimensions->getHeight(), $dimensions->getUnit(), LengthUnits::IN); $volume = $this->math->mul($length, $width); $volume = $this->math->mul($volume, $height); $value = $this->math->div($volume, $this->getFactor()); $value = $this->math->roundUp($value, 3); $weight = new Weight(); $weight->setValue($value); $weight->setUnit(WeightUnits::LB); return $weight; }