示例#1
0
 /**
  * Configure all the standard units of measure
  * to which this quantity can be converted.
  *
  * @return void
  */
 public function __construct($value, $unit)
 {
     parent::__construct($value, $unit);
     // Degrees
     $new_unit = new UnitOfMeasure('°', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     });
     $new_unit->addAlias('deg');
     $new_unit->addAlias('degs');
     $new_unit->addAlias('degree');
     $new_unit->addAlias('degrees');
     $this->registerUnitOfMeasure($new_unit);
     // Radians
     $new_unit = new UnitOfMeasure('rad', function ($x) {
         return $x * M_PI / 180;
     }, function ($x) {
         return $x / M_PI * 180;
     });
     $new_unit->addAlias('rads');
     $new_unit->addAlias('radian');
     $new_unit->addAlias('radians');
     $this->registerUnitOfMeasure($new_unit);
 }
 /**
  * Configure all the standard units of measure
  * to which this quantity can be converted.
  *
  * @return void
  */
 public function __construct($value, $unit)
 {
     parent::__construct($value, $unit);
     // Degree Kelvin
     $new_unit = new UnitOfMeasure('°K', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     });
     $new_unit->addAlias('K');
     $new_unit->addAlias('kelvin');
     $this->registerUnitOfMeasure($new_unit);
     // Degree Celsius
     $new_unit = new UnitOfMeasure('°C', function ($x) {
         return $x - 273.15;
     }, function ($x) {
         return $x + 273.15;
     });
     $new_unit->addAlias('C');
     $new_unit->addAlias('celsius');
     $this->registerUnitOfMeasure($new_unit);
     // Degree Fahrenheit
     $new_unit = new UnitOfMeasure('°F', function ($x) {
         return $x * 9 / 5 - 459.67;
     }, function ($x) {
         return ($x + 459.67) * 5 / 9;
     });
     $new_unit->addAlias('F');
     $new_unit->addAlias('fahrenheit');
     $this->registerUnitOfMeasure($new_unit);
 }
示例#3
0
 /**
  * Configure all the standard units of measure
  * to which this quantity can be converted.
  *
  * @return void
  */
 public function __construct($value, $unit)
 {
     parent::__construct($value, $unit);
     // Second
     $new_unit = new UnitOfMeasure('s', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     });
     $new_unit->addAlias('sec');
     $new_unit->addAlias('secs');
     $new_unit->addAlias('second');
     $new_unit->addAlias('seconds');
     $this->registerUnitOfMeasure($new_unit);
     // Minutes
     $new_unit = new UnitOfMeasure('m', function ($x) {
         return $x / 60;
     }, function ($x) {
         return $x * 60;
     });
     $new_unit->addAlias('min');
     $new_unit->addAlias('mins');
     $new_unit->addAlias('minute');
     $new_unit->addAlias('minutes');
     $this->registerUnitOfMeasure($new_unit);
     // Hours
     $new_unit = new UnitOfMeasure('h', function ($x) {
         return $x / 3600;
     }, function ($x) {
         return $x * 3600;
     });
     $new_unit->addAlias('hr');
     $new_unit->addAlias('hrs');
     $new_unit->addAlias('hour');
     $new_unit->addAlias('hours');
     $this->registerUnitOfMeasure($new_unit);
     // Days
     $new_unit = new UnitOfMeasure('d', function ($x) {
         return $x / 86400;
     }, function ($x) {
         return $x * 86400;
     });
     $new_unit->addAlias('day');
     $new_unit->addAlias('days');
     $this->registerUnitOfMeasure($new_unit);
     // Weeks, understood as 7 days
     $new_unit = new UnitOfMeasure('w', function ($x) {
         return $x / 604800;
     }, function ($x) {
         return $x * 604800;
     });
     $new_unit->addAlias('wk');
     $new_unit->addAlias('wks');
     $new_unit->addAlias('week');
     $new_unit->addAlias('weeks');
     $this->registerUnitOfMeasure($new_unit);
 }
示例#4
0
 /**
  * Configure all the standard units of measure
  * to which this quantity can be converted.
  *
  * @return void
  */
 public function __construct($value, $unit)
 {
     parent::__construct($value, $unit);
     // meter per second
     $new_unit = new UnitOfMeasure('m/s', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     });
     $new_unit->addAlias('meters per second');
     $new_unit->addAlias('meter per second');
     $this->registerUnitOfMeasure($new_unit);
 }
 /**
  * Configure all the standard units of measure
  * to which this quantity can be converted.
  *
  * @return void
  */
 public function __construct($value, $unit)
 {
     parent::__construct($value, $unit);
     // Ampere
     $new_unit = new UnitOfMeasure('A', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     });
     $new_unit->addAlias('amp');
     $new_unit->addAlias('amps');
     $new_unit->addAlias('ampere');
     $new_unit->addAlias('amperes');
     $this->registerUnitOfMeasure($new_unit);
 }
 /**
  * @covers \PhpUnitsOfMeasure\UnitOfMeasure::addAlias
  * @covers \PhpUnitsOfMeasure\UnitOfMeasure::isAliasOf
  */
 public function testIsNotAliasOf()
 {
     $uom = new UnitOfMeasure('quatloos', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     });
     $uom->addAlias('ooltauqs');
     $this->assertFalse($uom->isAliasOf('wampii'));
 }
示例#7
0
 /**
  * Configure all the standard units of measure
  * to which this quantity can be converted.
  *
  * @return void
  */
 public function __construct($value, $unit)
 {
     parent::__construct($value, $unit);
     // Pascal
     $new_unit = new UnitOfMeasure('Pa', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     });
     $new_unit->addAlias('pascal');
     $this->registerUnitOfMeasure($new_unit);
     // Atmosphere
     $new_unit = new UnitOfMeasure('atm', function ($x) {
         return $x / 101325;
     }, function ($x) {
         return $x * 101325;
     });
     $new_unit->addAlias('atmosphere');
     $new_unit->addAlias('atmospheres');
     $this->registerUnitOfMeasure($new_unit);
     // Bar
     $new_unit = new UnitOfMeasure('bar', function ($x) {
         return $x / 100000.0;
     }, function ($x) {
         return $x * 100000.0;
     });
     $new_unit->addAlias('bar');
     $this->registerUnitOfMeasure($new_unit);
     // Inch of Mercury
     $new_unit = new UnitOfMeasure('inHg', function ($x) {
         return $x / 3386.389;
     }, function ($x) {
         return $x * 3386.389;
     });
     $new_unit->addAlias('inches of mercury');
     $this->registerUnitOfMeasure($new_unit);
     // Milimeter of Mercury
     $new_unit = new UnitOfMeasure('mmHg', function ($x) {
         return $x / 133.3224;
     }, function ($x) {
         return $x * 133.3224;
     });
     $new_unit->addAlias('milimeters of mercury');
     $new_unit->addAlias('torr');
     $this->registerUnitOfMeasure($new_unit);
     // Pound per Square Inch
     $new_unit = new UnitOfMeasure('psi', function ($x) {
         return $x / 6894.757;
     }, function ($x) {
         return $x * 6894.757;
     });
     $new_unit->addAlias('pounds per square inch');
     $this->registerUnitOfMeasure($new_unit);
 }
 /**
  * Configure all the standard units of measure
  * to which this quantity can be converted.
  *
  * @return void
  */
 public function __construct($value, $unit)
 {
     parent::__construct($value, $unit);
     // Candela
     $new_unit = new UnitOfMeasure('cd', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     });
     $new_unit->addAlias('candela');
     $this->registerUnitOfMeasure($new_unit);
 }
 /**
  * @covers \PhpUnitsOfMeasure\UnitOfMeasure::isAliasOf
  * @expectedException \PhpUnitsOfMeasure\Exception\NonStringUnitName
  */
 public function testIsAliasOfWithNonStringAlias()
 {
     $uom = new UnitOfMeasure('quatloos', function ($valueInNativeUnit) {
         return $valueInNativeUnit;
     }, function ($valueInThisUnit) {
         return $valueInThisUnit;
     });
     $uom->addAlias('ooltauqs');
     $this->assertFalse($uom->isAliasOf(42));
 }
示例#10
0
 /**
  * Configure all the standard units of measure
  * to which this quantity can be converted.
  *
  * @return void
  */
 public function __construct($value, $unit)
 {
     parent::__construct($value, $unit);
     // Kilogram
     $new_unit = new UnitOfMeasure('kg', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     });
     $new_unit->addAlias('kilogram');
     $new_unit->addAlias('kilograms');
     $this->registerUnitOfMeasure($new_unit);
     // Milligram
     $new_unit = new UnitOfMeasure('mg', function ($x) {
         return $x / 1.0E-6;
     }, function ($x) {
         return $x * 1.0E-6;
     });
     $new_unit->addAlias('milligram');
     $new_unit->addAlias('milligrams');
     $this->registerUnitOfMeasure($new_unit);
     // Centigram
     $new_unit = new UnitOfMeasure('cg', function ($x) {
         return $x / 1.0E-5;
     }, function ($x) {
         return $x * 1.0E-5;
     });
     $new_unit->addAlias('centigram');
     $new_unit->addAlias('centigrams');
     $this->registerUnitOfMeasure($new_unit);
     // Gram
     $new_unit = new UnitOfMeasure('g', function ($x) {
         return $x / 0.001;
     }, function ($x) {
         return $x * 0.001;
     });
     $new_unit->addAlias('gram');
     $new_unit->addAlias('grams');
     $this->registerUnitOfMeasure($new_unit);
     // Tonne (metric)
     $new_unit = new UnitOfMeasure('t', function ($x) {
         return $x / 1000.0;
     }, function ($x) {
         return $x * 1000.0;
     });
     $new_unit->addAlias('ton');
     $new_unit->addAlias('tons');
     $new_unit->addAlias('tonne');
     $new_unit->addAlias('tonnes');
     $this->registerUnitOfMeasure($new_unit);
     // Pound
     $new_unit = new UnitOfMeasure('lb', function ($x) {
         return $x / 0.4535924;
     }, function ($x) {
         return $x * 0.4535924;
     });
     $new_unit->addAlias('lbs');
     $new_unit->addAlias('pound');
     $new_unit->addAlias('pounds');
     $this->registerUnitOfMeasure($new_unit);
     // Ounce
     $new_unit = new UnitOfMeasure('oz', function ($x) {
         return $x / 0.02834952;
     }, function ($x) {
         return $x * 0.02834952;
     });
     $new_unit->addAlias('ounce');
     $new_unit->addAlias('ounces');
     $this->registerUnitOfMeasure($new_unit);
 }
 public function testCreatingNewUnitsForQuantities()
 {
     // New units of measure can be defined and registered
     // with physical quantities on the fly.
     // Here, we create three new units, demonstrating the 3
     // different methods for instantiating them.  These units
     // will exist in addition to the units that come 'out of
     // the box' for the given quantity, once they're registered
     // with the static addUnit().
     // The linear unit factory is useful for defining new
     // units that are a simple scaling factor conversion
     // to the quantity's native unit of measure.
     // In this case there are 4.5 bbbb's in the native unit of measure.
     $unitA = UnitOfMeasure::linearUnitFactory('bbbb', 4.5);
     Wigginess::addUnit($unitA);
     // Using the native unit factory method is equivalent to a
     // linear unit with a factor of 1.  It's convenient for creating
     // a unit to represent the native unit of measure.
     $unitB = UnitOfMeasure::nativeUnitFactory('aaaa');
     Wigginess::addUnit($unitB);
     // The long form constructor is necessary for units
     // that don't have simple scaling factor functions for
     // their conversions.  For this unit we'll also add 2 more
     // aliases (dddd and eeee) that serve as equivalent names
     // for the unit's real name (cccc).
     $unitC = new UnitOfMeasure('cccc', function ($valueInNativeUnit) {
         return $valueInNativeUnit - 100;
     }, function ($valueInThisUnit) {
         return $valueInThisUnit + 100;
     });
     $unitC->addAlias('dddd');
     $unitC->addAlias('eeee');
     Wigginess::addUnit($unitC);
     // Here we can see that the units defined above
     // convert as expected with the built-in units.
     $a = new Wigginess(21, 'sopees');
     $this->assertSame(21, $a->toUnit('aaaa'));
     $this->assertSame(21 / 4.5, $a->toUnit('bbbb'));
     $this->assertSame(21 - 100, $a->toUnit('cccc'));
     $this->assertSame(21 - 100, $a->toUnit('dddd'));
     $this->assertSame(21 - 100, $a->toUnit('eeee'));
     $b = new Wigginess(21, 'tumpets');
     $this->assertSame(21 * 2.5, $b->toUnit('aaaa'));
     $this->assertSame(21 / 4.5 * 2.5, $b->toUnit('bbbb'));
     $this->assertSame(21 * 2.5 - 100, $b->toUnit('cccc'));
     $this->assertSame(21 * 2.5 - 100, $b->toUnit('dddd'));
     $this->assertSame(21 * 2.5 - 100, $b->toUnit('eeee'));
 }
示例#12
0
 /**
  * Configure all the standard units of measure
  * to which this quantity can be converted.
  *
  * @return void
  */
 public function __construct($value, $unit)
 {
     parent::__construct($value, $unit);
     // Cubic meter
     $new_unit = new UnitOfMeasure('m^3', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     });
     $new_unit->addAlias('m³');
     $new_unit->addAlias('cubic meter');
     $new_unit->addAlias('cubic meters');
     $this->registerUnitOfMeasure($new_unit);
     // Cubic millimeter
     $new_unit = new UnitOfMeasure('mm^3', function ($x) {
         return $x / 1.0E-9;
     }, function ($x) {
         return $x * 1.0E-9;
     });
     $new_unit->addAlias('mm³');
     $new_unit->addAlias('cubic millimeter');
     $new_unit->addAlias('cubic millimeters');
     $this->registerUnitOfMeasure($new_unit);
     // Cubic centimeter
     $new_unit = new UnitOfMeasure('cm^3', function ($x) {
         return $x / 1.0E-6;
     }, function ($x) {
         return $x * 1.0E-6;
     });
     $new_unit->addAlias('cm³');
     $new_unit->addAlias('cubic centimeter');
     $new_unit->addAlias('cubic centimeters');
     $this->registerUnitOfMeasure($new_unit);
     // Cubic decimeter
     $new_unit = new UnitOfMeasure('dm^3', function ($x) {
         return $x / 0.001;
     }, function ($x) {
         return $x * 0.001;
     });
     $new_unit->addAlias('dm³');
     $new_unit->addAlias('cubic decimeter');
     $new_unit->addAlias('cubic decimeters');
     $this->registerUnitOfMeasure($new_unit);
     // Cubic kilometer
     $new_unit = new UnitOfMeasure('km^3', function ($x) {
         return $x / 1000000000.0;
     }, function ($x) {
         return $x * 1000000000.0;
     });
     $new_unit->addAlias('km³');
     $new_unit->addAlias('cubic kilometer');
     $new_unit->addAlias('cubic kilometers');
     $this->registerUnitOfMeasure($new_unit);
     // Cubic foot
     $new_unit = new UnitOfMeasure('ft^3', function ($x) {
         return $x / 0.02831685;
     }, function ($x) {
         return $x * 0.02831685;
     });
     $new_unit->addAlias('ft³');
     $new_unit->addAlias('cubic foot');
     $new_unit->addAlias('cubic feet');
     $this->registerUnitOfMeasure($new_unit);
     // Cubic inch
     $new_unit = new UnitOfMeasure('in^3', function ($x) {
         return $x / 1.638706E-5;
     }, function ($x) {
         return $x * 1.638706E-5;
     });
     $new_unit->addAlias('in³');
     $new_unit->addAlias('cubic inch');
     $new_unit->addAlias('cubic inches');
     $this->registerUnitOfMeasure($new_unit);
     // Cubic yard
     $new_unit = new UnitOfMeasure('yd^3', function ($x) {
         return $x / 0.7645549;
     }, function ($x) {
         return $x * 0.7645549;
     });
     $new_unit->addAlias('yd³');
     $new_unit->addAlias('cubic yard');
     $new_unit->addAlias('cubic yards');
     $this->registerUnitOfMeasure($new_unit);
     // Milliliters
     $new_unit = new UnitOfMeasure('ml', function ($x) {
         return $x / 1.0E-6;
     }, function ($x) {
         return $x * 1.0E-6;
     });
     $new_unit->addAlias('milliliter');
     $new_unit->addAlias('milliliters');
     $this->registerUnitOfMeasure($new_unit);
     // Centiliters
     $new_unit = new UnitOfMeasure('cl', function ($x) {
         return $x / 1.0E-5;
     }, function ($x) {
         return $x * 1.0E-5;
     });
     $new_unit->addAlias('centiliter');
     $new_unit->addAlias('centiliters');
     $this->registerUnitOfMeasure($new_unit);
     // Deciliter
     $new_unit = new UnitOfMeasure('dl', function ($x) {
         return $x / 0.0001;
     }, function ($x) {
         return $x * 0.0001;
     });
     $new_unit->addAlias('deciliter');
     $new_unit->addAlias('deciliters');
     $this->registerUnitOfMeasure($new_unit);
     // Liter
     $new_unit = new UnitOfMeasure('l', function ($x) {
         return $x / 0.001;
     }, function ($x) {
         return $x * 0.001;
     });
     $new_unit->addAlias('liter');
     $new_unit->addAlias('liters');
     $this->registerUnitOfMeasure($new_unit);
     // Decaliter
     $new_unit = new UnitOfMeasure('dal', function ($x) {
         return $x / 0.01;
     }, function ($x) {
         return $x * 0.01;
     });
     $new_unit->addAlias('decaliter');
     $new_unit->addAlias('decaliters');
     $this->registerUnitOfMeasure($new_unit);
     // Hectoliter
     $new_unit = new UnitOfMeasure('hl', function ($x) {
         return $x / 0.1;
     }, function ($x) {
         return $x * 0.1;
     });
     $new_unit->addAlias('hectoliter');
     $new_unit->addAlias('hectoliters');
     $this->registerUnitOfMeasure($new_unit);
     // Cup
     $new_unit = new UnitOfMeasure('cup', function ($x) {
         return $x / 0.0002365882;
     }, function ($x) {
         return $x * 0.0002365882;
     });
     $new_unit->addAlias('cup');
     $new_unit->addAlias('cups');
     $this->registerUnitOfMeasure($new_unit);
 }
示例#13
0
 /**
  * Configure all the standard units of measure
  * to which this quantity can be converted.
  *
  * @return void
  */
 public function __construct($value, $unit)
 {
     parent::__construct($value, $unit);
     // Meter
     $new_unit = new UnitOfMeasure('m', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     });
     $new_unit->addAlias('meter');
     $new_unit->addAlias('meters');
     $this->registerUnitOfMeasure($new_unit);
     // Millimeter
     $new_unit = new UnitOfMeasure('mm', function ($x) {
         return $x / 0.001;
     }, function ($x) {
         return $x * 0.001;
     });
     $new_unit->addAlias('millimeter');
     $new_unit->addAlias('millimeters');
     $this->registerUnitOfMeasure($new_unit);
     // Centimeter
     $new_unit = new UnitOfMeasure('cm', function ($x) {
         return $x / 0.01;
     }, function ($x) {
         return $x * 0.01;
     });
     $new_unit->addAlias('centimeter');
     $new_unit->addAlias('centimeters');
     $this->registerUnitOfMeasure($new_unit);
     // Decimeter
     $new_unit = new UnitOfMeasure('dm', function ($x) {
         return $x / 0.1;
     }, function ($x) {
         return $x * 0.1;
     });
     $new_unit->addAlias('decimeter');
     $new_unit->addAlias('decimeters');
     $this->registerUnitOfMeasure($new_unit);
     // Kilometer
     $new_unit = new UnitOfMeasure('km', function ($x) {
         return $x / 1000;
     }, function ($x) {
         return $x * 1000;
     });
     $new_unit->addAlias('kilometer');
     $new_unit->addAlias('kilometers');
     $this->registerUnitOfMeasure($new_unit);
     // Foot
     $new_unit = new UnitOfMeasure('ft', function ($x) {
         return $x / 0.3048;
     }, function ($x) {
         return $x * 0.3048;
     });
     $new_unit->addAlias('foot');
     $new_unit->addAlias('feet');
     $this->registerUnitOfMeasure($new_unit);
     // Inch
     $new_unit = new UnitOfMeasure('in', function ($x) {
         return $x / 0.0254;
     }, function ($x) {
         return $x * 0.0254;
     });
     $new_unit->addAlias('inch');
     $new_unit->addAlias('inches');
     $this->registerUnitOfMeasure($new_unit);
     // Mile
     $new_unit = new UnitOfMeasure('mi', function ($x) {
         return $x / 1609.344;
     }, function ($x) {
         return $x * 1609.344;
     });
     $new_unit->addAlias('mile');
     $new_unit->addAlias('miles');
     $this->registerUnitOfMeasure($new_unit);
     // Yard
     $new_unit = new UnitOfMeasure('yd', function ($x) {
         return $x / 0.9144;
     }, function ($x) {
         return $x * 0.9144;
     });
     $new_unit->addAlias('yard');
     $new_unit->addAlias('yards');
     $this->registerUnitOfMeasure($new_unit);
 }
示例#14
0
 /**
  * Configure all the standard units of measure
  * to which this quantity can be converted.
  *
  * @return void
  */
 public function __construct($value, $unit)
 {
     parent::__construct($value, $unit);
     // Meters squared
     $new_unit = new UnitOfMeasure('m^2', function ($x) {
         return $x;
     }, function ($x) {
         return $x;
     }, array('m²', 'meter squared', 'meters squared'));
     $this->registerUnitOfMeasure($new_unit);
     // Millimeter squared
     $new_unit = new UnitOfMeasure('mm^2', function ($x) {
         return $x / 1.0E-6;
     }, function ($x) {
         return $x * 1.0E-6;
     }, array('mm²', 'millimeter squared', 'millimeters squared'));
     $this->registerUnitOfMeasure($new_unit);
     // Centimeter squared
     $new_unit = new UnitOfMeasure('cm^2', function ($x) {
         return $x / 0.0001;
     }, function ($x) {
         return $x * 0.0001;
     }, array('cm²', 'centimeter squared', 'centimeters squared'));
     $this->registerUnitOfMeasure($new_unit);
     // Decimeter squared
     $new_unit = new UnitOfMeasure('dm^2', function ($x) {
         return $x / 0.01;
     }, function ($x) {
         return $x * 0.01;
     }, array('dm²', 'decimeter squared', 'decimeters squared'));
     $this->registerUnitOfMeasure($new_unit);
     // Kilometer squared
     $new_unit = new UnitOfMeasure('km^2', function ($x) {
         return $x / 1000000.0;
     }, function ($x) {
         return $x * 1000000.0;
     }, array('km²', 'kilometer squared', 'kilometers squared'));
     $this->registerUnitOfMeasure($new_unit);
     // Foot squared
     $new_unit = new UnitOfMeasure('ft^2', function ($x) {
         return $x / 0.09290304000000001;
     }, function ($x) {
         return $x * 0.09290304000000001;
     }, array('ft²', 'foot squared', 'feet squared'));
     $this->registerUnitOfMeasure($new_unit);
     // Inch squared
     $new_unit = new UnitOfMeasure('in^2', function ($x) {
         return $x / 0.00064516;
     }, function ($x) {
         return $x * 0.00064516;
     }, array('in²', 'inch squared', 'inches squared'));
     $this->registerUnitOfMeasure($new_unit);
     // Mile squared
     $new_unit = new UnitOfMeasure('mi^2', function ($x) {
         return $x / 2589988.0;
     }, function ($x) {
         return $x * 2589988.0;
     }, array('mi²', 'mile squared', 'miles squared'));
     $new_unit->addAlias('mi²');
     $new_unit->addAlias('mile squared');
     $new_unit->addAlias('miles squared');
     $this->registerUnitOfMeasure($new_unit);
     // Yard squared
     $new_unit = new UnitOfMeasure('yd^2', function ($x) {
         return $x / 0.8361274;
     }, function ($x) {
         return $x * 0.8361274;
     }, array('yd²', 'yard squared', 'yards squared'));
     $new_unit->addAlias('yd²');
     $new_unit->addAlias('yard squared');
     $new_unit->addAlias('yards squared');
     $this->registerUnitOfMeasure($new_unit);
 }
 protected static function initialize()
 {
     // Kelvin
     $kelvin = UnitOfMeasure::nativeUnitFactory('K');
     $kelvin->addAlias('°K');
     $kelvin->addAlias('kelvin');
     static::addUnit($kelvin);
     static::addMissingSIPrefixedUnits($kelvin, 1, '%pK', ['%Pkelvin']);
     // Degree Celsius
     $newUnit = new UnitOfMeasure('°C', function ($x) {
         return $x - 273.15;
     }, function ($x) {
         return $x + 273.15;
     });
     $newUnit->addAlias('C');
     $newUnit->addAlias('celsius');
     static::addUnit($newUnit);
     // Degree Fahrenheit
     $newUnit = new UnitOfMeasure('°F', function ($x) {
         return $x * 9 / 5 - 459.67;
     }, function ($x) {
         return ($x + 459.67) * 5 / 9;
     });
     $newUnit->addAlias('F');
     $newUnit->addAlias('fahrenheit');
     static::addUnit($newUnit);
     // Degree Rankine
     $newUnit = UnitOfMeasure::linearUnitFactory('°R', 5 / 9);
     $newUnit->addAlias('R');
     $newUnit->addAlias('rankine');
     static::addUnit($newUnit);
     // Degree Delisle
     $newUnit = new UnitOfMeasure('°De', function ($x) {
         return (373.15 - $x) * 3 / 2;
     }, function ($x) {
         return 373.15 - $x * 2 / 3;
     });
     $newUnit->addAlias('De');
     $newUnit->addAlias('delisle');
     static::addUnit($newUnit);
     // Degree Newton
     $newUnit = new UnitOfMeasure('°N', function ($x) {
         return ($x - 273.15) * 33 / 100;
     }, function ($x) {
         return $x * 100 / 33 + 273.15;
     });
     $newUnit->addAlias('N');
     $newUnit->addAlias('newton');
     static::addUnit($newUnit);
     // Degree Réaumur
     $newUnit = new UnitOfMeasure('°Ré', function ($x) {
         return ($x - 273.15) * 4 / 5;
     }, function ($x) {
         return $x * 5 / 4 + 273.15;
     });
     $newUnit->addAlias('°Re');
     $newUnit->addAlias('Ré');
     $newUnit->addAlias('Re');
     $newUnit->addAlias('réaumur');
     $newUnit->addAlias('reaumur');
     static::addUnit($newUnit);
     // Degree Rømer
     $newUnit = new UnitOfMeasure('°Rø', function ($x) {
         return ($x - 273.15) * 21 / 40 + 7.5;
     }, function ($x) {
         return ($x - 7.5) * 40 / 21 + 273.15;
     });
     $newUnit->addAlias('°Ro');
     $newUnit->addAlias('Rø');
     $newUnit->addAlias('Ro');
     $newUnit->addAlias('rømer');
     $newUnit->addAlias('romer');
     static::addUnit($newUnit);
 }