partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit 84a5ec129d9a61e6f9dda034eeede8bbfbdb02d4
parent 4590a779a9824618a49beb62a2e0953c09a05880
Author: Felicitus <felicitus@felicitus.org>
Date:   Tue, 17 Dec 2013 16:58:06 +0100

Refactored method and variables from "power" to "exponent" to reflect proper naming. Added power calculation method and unit test.

Diffstat:
Msrc/PartKeepr/SiPrefixBundle/Model/SiPrefix.php | 64+++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
Msrc/PartKeepr/SiPrefixBundle/Resources/data/siprefixes.yaml | 44++++++++++++++++++++++----------------------
Msrc/PartKeepr/SiPrefixBundle/Tests/Model/SiPrefixTest.php | 24+++++++++++++++++++++---
Msrc/backend/PartKeepr/PartParameter/PartParameter.php | 4++--
Msrc/backend/PartKeepr/Setup/SiPrefixSetup.php | 2+-
Msrc/backend/PartKeepr/SiPrefix/SiPrefixService.php | 2+-
Msrc/frontend/js/Components/Widgets/SiUnitList.js | 2+-
7 files changed, 101 insertions(+), 41 deletions(-)

diff --git a/src/PartKeepr/SiPrefixBundle/Model/SiPrefix.php b/src/PartKeepr/SiPrefixBundle/Model/SiPrefix.php @@ -39,14 +39,24 @@ class SiPrefix extends BaseEntity private $symbol; /** - * The power of the Si-Prefix (e.g. milli = 10^-3) + * The exponent of the Si-Prefix (e.g. milli = 10^-3) * * @ORM\Column(type="integer") * @Assert\Type(type="integer") * * @var int */ - private $power; + private $exponent; + + /** + * The base of the Si-Prefix (e.g. 2^-3) + * + * @ORM\Column(type="integer") + * @Assert\Type(type="integer") + * + * @var int + */ + private $base; /** * Sets the prefix name. @@ -90,23 +100,55 @@ class SiPrefix extends BaseEntity } /** - * Sets the power in a 10^n power (n=power) + * Sets the exponent + * + * @param int $exponent The exponent + */ + public function setExponent($exponent) + { + $this->exponent = $exponent; + } + + /** + * Returns the exponent * - * @param int $power The 10^power + * @return int The exponent */ - public function setPower($power) + public function getExponent() { - $this->power = $power; + return $this->exponent; } /** - * Returns the power (10^n) + * Sets the base + * + * @param int $base The base + */ + public function setBase($base) + { + $this->base = $base; + } + + /** + * Returns the base + * + * @return int The base + */ + public function getBase() + { + return $this->base; + } + + /** + * Calculates the product for a given value + * + * @param $value float The value to calculate the product * - * @return int The power + * @return float The resulting value */ - public function getPower() + public function calculateProduct($value) { - return $this->power; + return $value * pow($this->base, $this->exponent); } /** @@ -120,7 +162,7 @@ class SiPrefix extends BaseEntity "id" => $this->getId(), "symbol" => $this->getSymbol(), "prefix" => $this->getPrefix(), - "power" => $this->getPower() + "exponent" => $this->getExponent() ); } } \ No newline at end of file diff --git a/src/PartKeepr/SiPrefixBundle/Resources/data/siprefixes.yaml b/src/PartKeepr/SiPrefixBundle/Resources/data/siprefixes.yaml @@ -1,63 +1,63 @@ yotta: symbol: Y - power: 24 + exponent: 24 zetta: symbol: Z - power: 21 + exponent: 21 exa: symbol: E - power: 18 + exponent: 18 peta: symbol: P - power: 15 + exponent: 15 tera: symbol: T - power: 12 + exponent: 12 giga: symbol: G - power: 9 + exponent: 9 mega: symbol: M - power: 6 + exponent: 6 kilo: symbol: k - power: 3 + exponent: 3 hecto: symbol: h - power: 2 + exponent: 2 deca: symbol: da - power: 1 + exponent: 1 "-": symbol: "" - power: 0 + exponent: 0 deci: symbol: d - power: -1 + exponent: -1 centi: symbol: c - power: -2 + exponent: -2 milli: symbol: m - power: -3 + exponent: -3 micro: symbol: μ - power: -6 + exponent: -6 nano: symbol: n - power: -9 + exponent: -9 pico: symbol: p - power: -12 + exponent: -12 femto: symbol: f - power: -15 + exponent: -15 atto: symbol: a - power: -18 + exponent: -18 zepto: symbol: z - power: -21 + exponent: -21 yocto: symbol: y - power: -24- \ No newline at end of file + exponent: -24+ \ No newline at end of file diff --git a/src/PartKeepr/SiPrefixBundle/Tests/Model/SiPrefixTest.php b/src/PartKeepr/SiPrefixBundle/Tests/Model/SiPrefixTest.php @@ -20,13 +20,31 @@ class SiPrefixTest extends \PHPUnit_Framework_TestCase { $this->assertEquals("µ", $siPrefix->getSymbol()); } - public function testPower () { + public function testBase () { $siPrefix = $this->getSiPrefix(); - $siPrefix->setPower(10); - $this->assertEquals(10, $siPrefix->getPower()); + $siPrefix->setBase(10); + + $this->assertEquals(10, $siPrefix->getBase()); + } + + public function testExponent () { + $siPrefix = $this->getSiPrefix(); + + $siPrefix->setExponent(10); + $this->assertEquals(10, $siPrefix->getExponent()); } + public function testCalculation () { + $siPrefix = $this->getSiPrefix(); + + $siPrefix->setBase(10); + $siPrefix->setExponent(2); + + $this->assertEquals(310, $siPrefix->calculateProduct(3.1)); + + + } private function getSiPrefix () { return new SiPrefix(); } diff --git a/src/backend/PartKeepr/PartParameter/PartParameter.php b/src/backend/PartKeepr/PartParameter/PartParameter.php @@ -187,7 +187,7 @@ class PartParameter { private function recalculateRawValue () { if (is_object($this->getSiPrefix())) { - $power = $this->getSiPrefix()->getPower(); + $power = $this->getSiPrefix()->getExponent(); } else { $power = 0; } @@ -210,7 +210,7 @@ class PartParameter { "prefixedValue" => array( /* We duplicate most data because of strange ExtJS stuff... */ "value" => $this->getValue(), - "power" => is_object($this->getSiPrefix()) ? $this->getSiPrefix()->getPower() : 0, + "exponent" => is_object($this->getSiPrefix()) ? $this->getSiPrefix()->getExponent() : 0, "symbol" => is_object($this->getSiPrefix()) ? $this->getSiPrefix()->getSymbol() : "", "siprefix_id" => is_object($this->getSiPrefix()) ? $this->getSiPrefix()->getId() : null ), diff --git a/src/backend/PartKeepr/Setup/SiPrefixSetup.php b/src/backend/PartKeepr/Setup/SiPrefixSetup.php @@ -32,7 +32,7 @@ class SiPrefixSetup extends AbstractSetup { if (!SiPrefixManager::getInstance()->siPrefixExists($prefixName)) { $prefix = new SiPrefix(); $prefix->setPrefix($prefixName); - $prefix->setPower($prefixData["power"]); + $prefix->setExponent($prefixData["exponent"]); $prefix->setSymbol($prefixData["symbol"]); $this->entityManager->persist($prefix); $count++; diff --git a/src/backend/PartKeepr/SiPrefix/SiPrefixService.php b/src/backend/PartKeepr/SiPrefix/SiPrefixService.php @@ -8,7 +8,7 @@ use PartKeepr\Service\RestfulService, class SiPrefixService extends Service implements RestfulService { public function get () { - $query = PartKeepr::getEM()->createQuery("SELECT si.id, si.prefix, si.symbol, si.power FROM PartKeepr\SiPrefixBundle\Model\SiPrefix si"); + $query = PartKeepr::getEM()->createQuery("SELECT si.id, si.prefix, si.symbol, si.exponent FROM PartKeepr\SiPrefixBundle\Model\SiPrefix si"); return array("data" => $query->getArrayResult()); } diff --git a/src/frontend/js/Components/Widgets/SiUnitList.js b/src/frontend/js/Components/Widgets/SiUnitList.js @@ -2,6 +2,6 @@ Ext.define('PartKeepr.SiUnitList', { extend: 'Ext.view.BoundList', alias: 'widget.siunitlist', getInnerTpl: function(displayField) { - return '<span style="display: inline-block; width: 15px;">{' + displayField + '}</span><span style="display: inline-block; width: 40px;">{prefix}</span>(10<sup>{power}</span>)'; + return '<span style="display: inline-block; width: 15px;">{' + displayField + '}</span><span style="display: inline-block; width: 40px;">{prefix}</span>(10<sup>{exponent}</span>)'; } }); \ No newline at end of file