Skip to content

Commit 7d853bc

Browse files
committed
add 'amount' unit type
1 parent 7ea88fd commit 7d853bc

26 files changed

+360
-1
lines changed

Gruntfile.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ module.exports = function(grunt) {
3636
{ unit: 'Area', base: 1, relative: 0, symbol: 'm', label: 'meter', prefix: 'Square' },
3737
{ unit: 'Volume', base: 1, relative: 0, symbol: 'm', label: 'meter', prefix: 'Cubic' },
3838
{ unit: 'Volume', base: 1, relative: 1, symbol: 'l', label: 'liter', prefix: '' },
39+
{ unit: 'Amount', base: 1, relative: 1, symbol: 'mol', label: 'mole', prefix: '' },
3940
];
4041
phpTemplate = `<?php
4142
namespace PhpUnitConversion\\Unit\\<%= unit %>;
@@ -73,7 +74,7 @@ class <%= baseUnitPrefix %><%= prefixSI %><%= baseUnit %> extends <%= baseUnitPr
7374
extraUses = ' use HasRelativeFactor;\n\n';
7475
}
7576

76-
if(true||!grunt.file.exists(phpFileName)) {
77+
if(units[u].force || !grunt.file.exists(phpFileName)) {
7778
console.log(phpFileName);
7879
grunt.file.write(phpFileName,
7980
grunt.template.process(phpTemplate, { data: {

src/Unit/Amount.php

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit;
3+
4+
use PhpUnitConversion\Unit;
5+
use PhpUnitConversion\UnitType;
6+
7+
class Amount extends Unit
8+
{
9+
const TYPE = UnitType::AMOUNT;
10+
11+
const BASE_UNIT = Amount\Quantity::class;
12+
}

src/Unit/Amount/AttoMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class AttoMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E-18;
12+
13+
const SYMBOL = 'amol';
14+
const LABEL = 'attomole';
15+
}

src/Unit/Amount/CentiMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class CentiMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E-2;
12+
13+
const SYMBOL = 'cmol';
14+
const LABEL = 'centimole';
15+
}

src/Unit/Amount/DecaMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class DecaMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E1;
12+
13+
const SYMBOL = 'damol';
14+
const LABEL = 'decamole';
15+
}

src/Unit/Amount/DeciMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class DeciMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E-1;
12+
13+
const SYMBOL = 'dmol';
14+
const LABEL = 'decimole';
15+
}

src/Unit/Amount/ExaMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class ExaMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E18;
12+
13+
const SYMBOL = 'Emol';
14+
const LABEL = 'examole';
15+
}

src/Unit/Amount/FemtoMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class FemtoMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E-15;
12+
13+
const SYMBOL = 'fmol';
14+
const LABEL = 'femtomole';
15+
}

src/Unit/Amount/GigaMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class GigaMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E9;
12+
13+
const SYMBOL = 'Gmol';
14+
const LABEL = 'gigamole';
15+
}

src/Unit/Amount/HectoMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class HectoMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E2;
12+
13+
const SYMBOL = 'hmol';
14+
const LABEL = 'hectomole';
15+
}

src/Unit/Amount/KiloMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class KiloMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E3;
12+
13+
const SYMBOL = 'kmol';
14+
const LABEL = 'kilomole';
15+
}

src/Unit/Amount/MegaMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class MegaMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E6;
12+
13+
const SYMBOL = 'Mmol';
14+
const LABEL = 'megamole';
15+
}

src/Unit/Amount/MicroMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class MicroMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E-6;
12+
13+
const SYMBOL = 'μmol';
14+
const LABEL = 'micromole';
15+
}

src/Unit/Amount/MilliMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class MilliMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E-3;
12+
13+
const SYMBOL = 'mmol';
14+
const LABEL = 'millimole';
15+
}

src/Unit/Amount/Mole.php

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\Traits\HasFactor;
5+
6+
class Mole extends Quantity
7+
{
8+
use HasFactor;
9+
10+
const FACTOR = 6.022140587E23;
11+
12+
const SYMBOL = 'mol';
13+
const LABEL = 'mole';
14+
}

src/Unit/Amount/NanoMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class NanoMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E-9;
12+
13+
const SYMBOL = 'nmol';
14+
const LABEL = 'nanomole';
15+
}

src/Unit/Amount/PetaMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class PetaMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E15;
12+
13+
const SYMBOL = 'Pmol';
14+
const LABEL = 'petamole';
15+
}

src/Unit/Amount/PicoMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class PicoMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E-12;
12+
13+
const SYMBOL = 'pmol';
14+
const LABEL = 'picomole';
15+
}

src/Unit/Amount/Quantity.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\Unit\Amount;
5+
use PhpUnitConversion\Traits\BaseUnit;
6+
7+
class Quantity extends Amount
8+
{
9+
use BaseUnit;
10+
11+
const FACTOR = 1;
12+
13+
const SYMBOL = 'qty';
14+
const LABEL = 'quantity';
15+
}

src/Unit/Amount/TeraMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class TeraMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E12;
12+
13+
const SYMBOL = 'Tmol';
14+
const LABEL = 'teramole';
15+
}

src/Unit/Amount/YoctoMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class YoctoMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E-24;
12+
13+
const SYMBOL = 'ymol';
14+
const LABEL = 'yoctomole';
15+
}

src/Unit/Amount/YottaMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class YottaMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E24;
12+
13+
const SYMBOL = 'Ymol';
14+
const LABEL = 'yottamole';
15+
}

src/Unit/Amount/ZeptoMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class ZeptoMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E-21;
12+
13+
const SYMBOL = 'zmol';
14+
const LABEL = 'zeptomole';
15+
}

src/Unit/Amount/ZettaMole.php

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
namespace PhpUnitConversion\Unit\Amount;
3+
4+
use PhpUnitConversion\System\Metric;
5+
use PhpUnitConversion\Traits\HasRelativeFactor;
6+
7+
class ZettaMole extends Mole implements Metric
8+
{
9+
use HasRelativeFactor;
10+
11+
const FACTOR = 1E21;
12+
13+
const SYMBOL = 'Zmol';
14+
const LABEL = 'zettamole';
15+
}

src/UnitType.php

+1
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ class UnitType extends Enum
1313
const VOLUME = 4;
1414
const TIME = 5;
1515
const TEMPERATURE = 6;
16+
const AMOUNT = 7;
1617
}

0 commit comments

Comments
 (0)