AccelerationTest.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Measure
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. * @version $Id$
  21. */
  22. /**
  23. * Zend_Measure_Acceleration
  24. */
  25. require_once 'Zend/Measure/Acceleration.php';
  26. require_once 'Zend/Locale.php';
  27. /**
  28. * @category Zend
  29. * @package Zend_Measure
  30. * @subpackage UnitTests
  31. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  32. * @license http://framework.zend.com/license/new-bsd New BSD License
  33. * @group Zend_Measure
  34. */
  35. class Zend_Measure_AccelerationTest extends PHPUnit_Framework_TestCase
  36. {
  37. /**
  38. * test for new object
  39. * expected instance
  40. */
  41. public function testAccelerationInit()
  42. {
  43. $value = new Zend_Measure_Acceleration('100',Zend_Measure_Acceleration::STANDARD,'de');
  44. $this->assertTrue($value instanceof Zend_Measure_Acceleration,'Zend_Measure_Acceleration Object not returned');
  45. $this->assertEquals(100, $value->getValue(), 'Zend_Measure_Acceleration value expected to be a positive integer');
  46. // no type
  47. $value = new Zend_Measure_Acceleration('100','de');
  48. $this->assertTrue($value instanceof Zend_Measure_Acceleration,'Zend_Measure_Acceleration Object not returned');
  49. // unknown type
  50. try {
  51. $value = new Zend_Measure_Acceleration('100','Acceleration::UNKNOWN','de');
  52. $this->fail('Exception expected because of unknown type');
  53. } catch (Zend_Measure_Exception $e) {
  54. // success
  55. }
  56. // no value
  57. try {
  58. $value = new Zend_Measure_Acceleration('novalue',Zend_Measure_Acceleration::STANDARD,'de');
  59. $this->fail('Exception expected because of empty value');
  60. } catch (Zend_Measure_Exception $e) {
  61. // success
  62. }
  63. // false locale
  64. try {
  65. $value = new Zend_Measure_Acceleration('100',Zend_Measure_Acceleration::STANDARD,'nolocale');
  66. $this->fail('Exception expected because of unknown locale');
  67. } catch (Zend_Measure_Exception $e) {
  68. // success
  69. }
  70. // no locale
  71. $value = new Zend_Measure_Acceleration('100',Zend_Measure_Acceleration::STANDARD);
  72. $this->assertEquals(100, $value->getValue(),'Zend_Measure_Acceleration value expected');
  73. // negative value
  74. $locale = new Zend_Locale('de');
  75. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::STANDARD,$locale);
  76. $this->assertEquals(-100, $value->getValue(), 'Zend_Measure_Acceleration value expected to be a negative integer');
  77. // seperated value
  78. $value = new Zend_Measure_Acceleration('-100,200',Zend_Measure_Acceleration::STANDARD,$locale);
  79. $this->assertEquals(-100.200, $value->getValue(), 'Zend_Measure_Acceleration value expected to be a decimal value');
  80. // negative seperated value
  81. $value = new Zend_Measure_Acceleration('-100.100,200',Zend_Measure_Acceleration::STANDARD,$locale);
  82. $this->assertEquals(-100100.200, $value->getValue(),'Zend_Measure_Acceleration Object not returned');
  83. // value with string
  84. $value = new Zend_Measure_Acceleration('-100.100,200',Zend_Measure_Acceleration::STANDARD,'de');
  85. $this->assertEquals(-100100.200, $value->getValue(),'Zend_Measure_Acceleration Object not returned');
  86. }
  87. /**
  88. * test for equals()
  89. * expected true
  90. */
  91. public function testAccelerationEquals()
  92. {
  93. $value = new Zend_Measure_Acceleration('-100.100,200',Zend_Measure_Acceleration::STANDARD,'de');
  94. $newvalue = new Zend_Measure_Acceleration('-100.100,200',Zend_Measure_Acceleration::STANDARD,'de');
  95. $this->assertTrue($value->equals($newvalue),'Zend_Measure_Acceleration Object should be equal');
  96. $value = new Zend_Measure_Acceleration('-100.100,200',Zend_Measure_Acceleration::STANDARD,'de');
  97. $newvalue = new Zend_Measure_Acceleration('-100,200',Zend_Measure_Acceleration::STANDARD,'de');
  98. $this->assertFalse($value->equals($newvalue),'Zend_Measure_Acceleration Object should be not equal');
  99. }
  100. /**
  101. * test for setvalue()
  102. * expected integer
  103. */
  104. public function testAccelerationSetValue()
  105. {
  106. $value = new Zend_Measure_Acceleration('100',Zend_Measure_Acceleration::STANDARD,'de');
  107. $value->setValue('200',Zend_Measure_Acceleration::STANDARD,'de');
  108. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Acceleration value expected to be a positive integer');
  109. $locale = new Zend_Locale('de_AT');
  110. $value->setValue('200',$locale);
  111. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Acceleration value expected to be a positive integer');
  112. $value->setValue('200','de');
  113. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Acceleration value expected to be a positive integer');
  114. $value->setValue('-200',Zend_Measure_Acceleration::STANDARD,'de');
  115. $this->assertEquals(-200, $value->getValue(), 'Zend_Measure_Acceleration value expected to be a negative integer');
  116. $value->setValue('-200,200',Zend_Measure_Acceleration::STANDARD,'de');
  117. $this->assertEquals(-200.200, $value->getValue(), 'Zend_Measure_Acceleration value expected to be a decimal value');
  118. $value->setValue('-200.200,200',Zend_Measure_Acceleration::STANDARD,'de');
  119. $this->assertEquals(-200200.200, $value->getValue(),'Zend_Measure_Acceleration Object not returned');
  120. $value->setValue('-200.200,200',Zend_Measure_Acceleration::STANDARD,'de');
  121. $this->assertEquals(-200200.200, $value->getValue(),'Zend_Measure_Acceleration Object not returned');
  122. $value->setValue('200', Zend_Measure_Acceleration::STANDARD);
  123. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Acceleration value expected to be a positive integer');
  124. try {
  125. $value->setValue('-200.200,200','Acceleration::UNKNOWN','de');
  126. $this->fail('Exception expected because of unknown type');
  127. } catch (Zend_Measure_Exception $e) {
  128. // success
  129. }
  130. try {
  131. $value->setValue('novalue',Zend_Measure_Acceleration::STANDARD,'de');
  132. $this->fail('Exception expected because of empty value');
  133. } catch (Zend_Measure_Exception $e) {
  134. // success
  135. }
  136. try {
  137. $value = new Zend_Measure_Acceleration('100',Zend_Measure_Acceleration::STANDARD,'de');
  138. $value->setValue('200',Zend_Measure_Acceleration::STANDARD,'nolocale');
  139. $this->fail('Exception expected because of unknown locale');
  140. } catch (Zend_Measure_Exception $e) {
  141. // success
  142. }
  143. }
  144. /**
  145. * test setting type
  146. * expected new type
  147. */
  148. public function testAccelerationSetType()
  149. {
  150. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::STANDARD,'de');
  151. $value->setType(Zend_Measure_Acceleration::GRAV);
  152. $this->assertEquals(Zend_Measure_Acceleration::GRAV, $value->getType(), 'Zend_Measure_Acceleration type expected');
  153. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::MILE_PER_HOUR_MINUTE,'de');
  154. $value->setType(Zend_Measure_Acceleration::GRAV);
  155. $this->assertEquals(Zend_Measure_Acceleration::GRAV, $value->getType(), 'Zend_Measure_Acceleration type expected');
  156. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::GRAV,'de');
  157. $value->setType(Zend_Measure_Acceleration::MILE_PER_HOUR_MINUTE);
  158. $this->assertEquals(Zend_Measure_Acceleration::MILE_PER_HOUR_MINUTE, $value->getType(), 'Zend_Measure_Acceleration type expected');
  159. try {
  160. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::STANDARD,'de');
  161. $value->setType('Acceleration::UNKNOWN');
  162. $this->fail('Exception expected because of unknown type');
  163. } catch (Zend_Measure_Exception $e) {
  164. // success
  165. }
  166. }
  167. /**
  168. * test toString
  169. * expected string
  170. */
  171. public function testAccelerationToString()
  172. {
  173. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::STANDARD,'de');
  174. $this->assertEquals('-100 m/s²', $value->toString(), 'Value -100 m/s² expected');
  175. }
  176. /**
  177. * test __toString
  178. * expected string
  179. */
  180. public function testAcceleration_ToString()
  181. {
  182. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::STANDARD,'de');
  183. $this->assertEquals('-100 m/s²', $value->__toString(), 'Value -100 m/s² expected');
  184. }
  185. /**
  186. * test getConversionList
  187. * expected array
  188. */
  189. public function testAccelerationConversionList()
  190. {
  191. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::STANDARD,'de');
  192. $unit = $value->getConversionList();
  193. $this->assertTrue(is_array($unit), 'Array expected');
  194. }
  195. /**
  196. * test convertTo
  197. * expected array
  198. */
  199. public function testAccelerationConvertTo()
  200. {
  201. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::STANDARD,'de');
  202. $unit = $value->convertTo(Zend_Measure_Acceleration::GRAV);
  203. $this->assertEquals(Zend_Measure_Acceleration::GRAV, $value->getType(), 'Zend_Measure_Acceleration type expected');
  204. }
  205. /**
  206. * test add
  207. * expected array
  208. */
  209. public function testAccelerationAdd()
  210. {
  211. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::STANDARD,'de');
  212. $value2 = new Zend_Measure_Acceleration('200',Zend_Measure_Acceleration::STANDARD,'de');
  213. $value->add($value2);
  214. $this->assertEquals(100, $value->getValue(), 'value 100 expected');
  215. }
  216. /**
  217. * test add
  218. * expected array
  219. */
  220. public function testAccelerationSub()
  221. {
  222. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::STANDARD,'de');
  223. $value2 = new Zend_Measure_Acceleration('200',Zend_Measure_Acceleration::STANDARD,'de');
  224. $value->sub($value2);
  225. $this->assertEquals(-300, $value->getValue(), 'value -300 expected');
  226. }
  227. /**
  228. * test add
  229. * expected array
  230. */
  231. public function testAccelerationCompare()
  232. {
  233. $value = new Zend_Measure_Acceleration('-100',Zend_Measure_Acceleration::STANDARD,'de');
  234. $value2 = new Zend_Measure_Acceleration('200',Zend_Measure_Acceleration::STANDARD,'de');
  235. $value3 = new Zend_Measure_Acceleration('200',Zend_Measure_Acceleration::STANDARD,'de');
  236. $this->assertEquals(-1, $value->compare( $value2));
  237. $this->assertEquals( 1, $value2->compare($value ));
  238. $this->assertEquals( 0, $value2->compare($value3));
  239. }
  240. }