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:
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