103 lines
2.9 KiB
PHP
103 lines
2.9 KiB
PHP
<?php
|
|
namespace PhpUnitsOfMeasure\PhysicalQuantity;
|
|
|
|
use PhpUnitsOfMeasure\AbstractPhysicalQuantity;
|
|
use PhpUnitsOfMeasure\UnitOfMeasure;
|
|
use PhpUnitsOfMeasure\HasSIUnitsTrait;
|
|
|
|
class Mass extends AbstractPhysicalQuantity
|
|
{
|
|
use HasSIUnitsTrait;
|
|
|
|
protected static $unitDefinitions;
|
|
|
|
protected static function initialize()
|
|
{
|
|
// Gram
|
|
$gram = UnitOfMeasure::nativeUnitFactory('g');
|
|
$gram->addAlias('gram');
|
|
$gram->addAlias('grams');
|
|
static::addUnit($gram);
|
|
|
|
static::addMissingSIPrefixedUnits(
|
|
$gram,
|
|
1,
|
|
'%pg',
|
|
[
|
|
'%Pgram',
|
|
'%Pgrams',
|
|
]
|
|
);
|
|
|
|
// Tonne (metric)
|
|
$tonne = UnitOfMeasure::linearUnitFactory('t', 1e6);
|
|
$tonne->addAlias('T');
|
|
$tonne->addAlias('ton');
|
|
$tonne->addAlias('tons');
|
|
$tonne->addAlias('tonne');
|
|
$tonne->addAlias('tonnes');
|
|
static::addUnit($tonne);
|
|
|
|
static::addMissingSIPrefixedUnits(
|
|
$tonne,
|
|
1,
|
|
'%pt',
|
|
[
|
|
'%pT',
|
|
'%Pton',
|
|
'%Ptons',
|
|
'%Ptonne',
|
|
'%Ptonnes',
|
|
]
|
|
);
|
|
|
|
// Grain
|
|
$newUnit = UnitOfMeasure::linearUnitFactory('gr', 453.59237 / (16 * 437.5));
|
|
$newUnit->addAlias('grain');
|
|
$newUnit->addAlias('grains');
|
|
static::addUnit($newUnit);
|
|
|
|
// Pound
|
|
$newUnit = UnitOfMeasure::linearUnitFactory('lb', 453.59237);
|
|
$newUnit->addAlias('lbs');
|
|
$newUnit->addAlias('pound');
|
|
$newUnit->addAlias('pounds');
|
|
static::addUnit($newUnit);
|
|
|
|
// Ounce
|
|
$newUnit = UnitOfMeasure::linearUnitFactory('oz', 453.59237 / 16);
|
|
$newUnit->addAlias('ounce');
|
|
$newUnit->addAlias('ounces');
|
|
static::addUnit($newUnit);
|
|
|
|
// Stone
|
|
$newUnit = UnitOfMeasure::linearUnitFactory('st', 453.59237 * 14);
|
|
$newUnit->addAlias('stone');
|
|
$newUnit->addAlias('stones');
|
|
static::addUnit($newUnit);
|
|
|
|
// Hundredweight
|
|
$newUnit = UnitOfMeasure::linearUnitFactory('cwt', 453.59237 * 112);
|
|
$newUnit->addAlias('hundredweight');
|
|
$newUnit->addAlias('hundredweights');
|
|
static::addUnit($newUnit);
|
|
|
|
// US short Ton
|
|
$newUnit = UnitOfMeasure::linearUnitFactory('ust', 453.59237 * 2000);
|
|
$newUnit->addAlias('us short ton');
|
|
$newUnit->addAlias('us short tons');
|
|
static::addUnit($newUnit);
|
|
|
|
// US long Ton
|
|
$newUnit = UnitOfMeasure::linearUnitFactory('ukt', 453.59237 * 2240);
|
|
$newUnit->addAlias('uk long ton');
|
|
$newUnit->addAlias('uk long tons');
|
|
static::addUnit($newUnit);
|
|
|
|
// Asian picul
|
|
$newUnit = UnitOfMeasure::linearUnitFactory('picul', 60478.982);
|
|
$newUnit->addAlias('tam');
|
|
static::addUnit($newUnit);
|
|
}
|
|
}
|