132 lines
4.0 KiB
PHP

<?php
namespace PhpUnitsOfMeasure\PhysicalQuantity;
use PhpUnitsOfMeasure\AbstractPhysicalQuantity;
use PhpUnitsOfMeasure\HasSIUnitsTrait;
use PhpUnitsOfMeasure\UnitOfMeasure;
class Volume extends AbstractPhysicalQuantity
{
use HasSIUnitsTrait;
protected static $unitDefinitions;
protected static function initialize()
{
// Cubic meter
$cubicmeter = UnitOfMeasure::nativeUnitFactory('m^3');
$cubicmeter->addAlias('m³');
$cubicmeter->addAlias('cubic meter');
$cubicmeter->addAlias('cubic meters');
$cubicmeter->addAlias('cubic metre');
$cubicmeter->addAlias('cubic metres');
static::addUnit($cubicmeter);
static::addMissingSIPrefixedUnits(
$cubicmeter,
1,
'%pm^3',
[
'%pm³',
'cubic %Pmeter',
'cubic %Pmeters',
'cubic %Pmetre',
'cubic %Pmetres'
],
3 // cubic power factor
);
// Cubic foot
$newUnit = UnitOfMeasure::linearUnitFactory('ft^3', pow(0.3048, 3));
$newUnit->addAlias('ft³');
$newUnit->addAlias('cubic foot');
$newUnit->addAlias('cubic feet');
static::addUnit($newUnit);
// Cubic inch
$newUnit = UnitOfMeasure::linearUnitFactory('in^3', pow(0.0254, 3));
$newUnit->addAlias('in³');
$newUnit->addAlias('cubic inch');
$newUnit->addAlias('cubic inches');
static::addUnit($newUnit);
// Cubic yard
$newUnit = UnitOfMeasure::linearUnitFactory('yd^3', pow(0.9144, 3));
$newUnit->addAlias('yd³');
$newUnit->addAlias('cubic yard');
$newUnit->addAlias('cubic yards');
static::addUnit($newUnit);
// Liter
$liter = UnitOfMeasure::linearUnitFactory('l', 1e-3);
$liter->addAlias('L');
$liter->addAlias('liter');
$liter->addAlias('liters');
$liter->addAlias('litre');
$liter->addAlias('litres');
static::addUnit($liter);
static::addMissingSIPrefixedUnits(
$liter,
1,
'%pl',
[
'%pL',
'%Pliter',
'%Pliters',
'%Plitre',
'%Plitres'
]
);
// Cup
$newUnit = UnitOfMeasure::linearUnitFactory('cup', 2.365882e-4);
$newUnit->addAlias('cup');
$newUnit->addAlias('cups');
static::addUnit($newUnit);
// teaspoon
$newUnit = UnitOfMeasure::linearUnitFactory('tsp', 0.00000492892);
$newUnit->addAlias('teaspoon');
$newUnit->addAlias('teaspoons');
static::addUnit($newUnit);
// tablespoon
$newUnit = UnitOfMeasure::linearUnitFactory('tbsp', 0.00001478676);
$newUnit->addAlias('tablespoon');
$newUnit->addAlias('tablespoons');
static::addUnit($newUnit);
// Gallon
$newUnit = UnitOfMeasure::linearUnitFactory('gal', 3.7854118e-3);
$newUnit->addAlias('gallon');
$newUnit->addAlias('gallons');
$newUnit->addAlias('us gal');
static::addUnit($newUnit);
// Quart
$newUnit = UnitOfMeasure::linearUnitFactory('qt', 9.4635295e-4);
$newUnit->addAlias('quart');
$newUnit->addAlias('quarts');
$newUnit->addAlias('qts');
$newUnit->addAlias('liq qt');
static::addUnit($newUnit);
// Fluid Ounce
$newUnit = UnitOfMeasure::linearUnitFactory('fl oz', 2.957353e-5);
$newUnit->addAlias('fluid ounce');
$newUnit->addAlias('fluid ounces');
$newUnit->addAlias('fluid oz');
$newUnit->addAlias('fl. oz.');
$newUnit->addAlias('oz. fl.');
static::addUnit($newUnit);
// Pint
$newUnit = UnitOfMeasure::linearUnitFactory('pt', 4.73176475e-4);
$newUnit->addAlias('pint');
$newUnit->addAlias('pints');
$newUnit->addAlias('liq pt');
static::addUnit($newUnit);
}
}