PageRenderTime 48ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/tests/Zend/Measure/NumberTest.php

https://bitbucket.org/ksekar/campus
PHP | 257 lines | 154 code | 34 blank | 69 comment | 0 complexity | 61cf879b43a3357e22341270acdab0ad MD5 | raw file
Possible License(s): BSD-3-Clause, LGPL-2.0, MIT
  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-2012 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. * @version $Id: NumberTest.php 24594 2012-01-05 21:27:01Z matthew $
  21. */
  22. /**
  23. * Zend_Measure_Number
  24. */
  25. require_once 'Zend/Measure/Number.php';
  26. /**
  27. * @category Zend
  28. * @package Zend_Measure
  29. * @subpackage UnitTests
  30. * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  31. * @license http://framework.zend.com/license/new-bsd New BSD License
  32. * @group Zend_Measure
  33. */
  34. class Zend_Measure_NumberTest extends PHPUnit_Framework_TestCase
  35. {
  36. /**
  37. * test for Number initialisation
  38. * expected instance
  39. */
  40. public function testNumberInit()
  41. {
  42. $value = new Zend_Measure_Number('100',Zend_Measure_Number::STANDARD,'de');
  43. $this->assertTrue($value instanceof Zend_Measure_Number,'Zend_Measure_Number Object not returned');
  44. $value = new Zend_Measure_Number('100','de');
  45. $this->assertTrue($value instanceof Zend_Measure_Number,'Zend_Measure_Number Object not returned');
  46. $value = new Zend_Measure_Number('100',Zend_Measure_Number::STANDARD);
  47. $this->assertEquals(100, $value->getValue(),'Zend_Measure_Number value expected');
  48. $value = new Zend_Measure_Number('100',Zend_Measure_Number::STANDARD,'de');
  49. $this->assertEquals(100, $value->getValue(), 'Zend_Measure_Number value expected to be a positive integer');
  50. $value = new Zend_Measure_Number('-100',Zend_Measure_Number::STANDARD,'de');
  51. $this->assertEquals(100, $value->getValue(), 'Zend_Measure_Number value expected to be a negative integer');
  52. $value = new Zend_Measure_Number('-100,200',Zend_Measure_Number::STANDARD,'de');
  53. $this->assertEquals(100, $value->getValue(), 'Zend_Measure_Number value expected to be a decimal value');
  54. $value = new Zend_Measure_Number('-100.100,200',Zend_Measure_Number::STANDARD,'de');
  55. $this->assertEquals(100100, $value->getValue(),'Zend_Measure_Number Object not returned');
  56. $value = new Zend_Measure_Number('-100.100,200',Zend_Measure_Number::STANDARD,'de');
  57. $this->assertEquals(100100, $value->getValue(),'Zend_Measure_Number Object not returned');
  58. try {
  59. $value = new Zend_Measure_Number('100','Number::UNKNOWN','de');
  60. $this->fail('Exception expected because of unknown type');
  61. } catch (Zend_Measure_Exception $e) {
  62. // success
  63. }
  64. try {
  65. $value = new Zend_Measure_Number('novalue',Zend_Measure_Number::STANDARD,'de');
  66. $this->fail('Exception expected because of empty value');
  67. } catch (Zend_Measure_Exception $e) {
  68. // success
  69. }
  70. try {
  71. $value = new Zend_Measure_Number('100',Zend_Measure_Number::STANDARD,'nolocale');
  72. $this->fail('Exception expected because of unknown locale');
  73. } catch (Zend_Measure_Exception $e) {
  74. // success
  75. }
  76. }
  77. /**
  78. * test for equality
  79. * expected true
  80. */
  81. public function testNumberEquality()
  82. {
  83. $value = new Zend_Measure_Number('-100.100,200',Zend_Measure_Number::STANDARD,'de');
  84. $newvalue = new Zend_Measure_Number('-100.100,200',Zend_Measure_Number::STANDARD,'de');
  85. $this->assertTrue($value->equals($newvalue),'Zend_Measure_Number Object should be equal');
  86. $value = new Zend_Measure_Number('-100.100,200',Zend_Measure_Number::STANDARD,'de');
  87. $newvalue = new Zend_Measure_Number('-100,200',Zend_Measure_Number::STANDARD,'de');
  88. $this->assertFalse($value->equals($newvalue),'Zend_Measure_Number Object should be not equal');
  89. }
  90. /**
  91. * test for setValue
  92. * expected integer
  93. */
  94. public function testNumberSetValue()
  95. {
  96. $value = new Zend_Measure_Number('100',Zend_Measure_Number::STANDARD,'de');
  97. $value->setValue('200',Zend_Measure_Number::STANDARD,'de');
  98. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Number value expected to be a positive integer');
  99. $value->setValue('-200',Zend_Measure_Number::STANDARD,'de');
  100. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Number value expected to be a negative integer');
  101. $value->setValue('-200,200',Zend_Measure_Number::STANDARD,'de');
  102. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Number value expected to be a decimal value');
  103. $value->setValue('-200.200,200',Zend_Measure_Number::STANDARD,'de');
  104. $this->assertEquals(200200, $value->getValue(),'Zend_Measure_Number Object not returned');
  105. $value->setValue('-200.200,200',Zend_Measure_Number::STANDARD,'de');
  106. $this->assertEquals(200200, $value->getValue(),'Zend_Measure_Number Object not returned');
  107. try {
  108. $value = new Zend_Measure_Number('100',Zend_Measure_Number::STANDARD,'de');
  109. $value->setValue('-200.200,200','Number::UNKNOWN','de');
  110. $this->fail('Exception expected because of unknown type');
  111. } catch (Zend_Measure_Exception $e) {
  112. // success
  113. }
  114. try {
  115. $value = new Zend_Measure_Number('100',Zend_Measure_Number::STANDARD,'de');
  116. $value->setValue('novalue',Zend_Measure_Number::STANDARD,'de');
  117. $this->fail('Exception expected because of empty value');
  118. } catch (Zend_Measure_Exception $e) {
  119. // success
  120. }
  121. try {
  122. $value = new Zend_Measure_Number('100',Zend_Measure_Number::STANDARD,'de');
  123. $value->setValue('200',Zend_Measure_Number::STANDARD,'nolocale');
  124. $this->fail('Exception expected because of unknown locale');
  125. } catch (Zend_Measure_Exception $e) {
  126. // success
  127. }
  128. $value->setValue('200', Zend_Measure_Number::STANDARD);
  129. $this->assertEquals(200, $value->getValue(), 'Zend_Measure_Number value expected to be a positive integer');
  130. }
  131. /**
  132. * test setting type
  133. * expected new type
  134. */
  135. public function testNumberSetType()
  136. {
  137. $value = new Zend_Measure_Number('-100',Zend_Measure_Number::STANDARD,'de');
  138. $value->setType(Zend_Measure_Number::BINARY);
  139. $this->assertEquals(Zend_Measure_Number::BINARY, $value->getType(), 'Zend_Measure_Number type expected');
  140. $value->setType(Zend_Measure_Number::ROMAN);
  141. $this->assertEquals(Zend_Measure_Number::ROMAN, $value->getType(), 'Zend_Measure_Number type expected');
  142. $value = new Zend_Measure_Number('1001020',Zend_Measure_Number::BINARY,'de');
  143. $value->setType(Zend_Measure_Number::HEXADECIMAL);
  144. $this->assertEquals(Zend_Measure_Number::HEXADECIMAL, $value->getType(), 'Zend_Measure_Number type expected');
  145. $value = new Zend_Measure_Number('MCXVII',Zend_Measure_Number::ROMAN,'de');
  146. $value->setType(Zend_Measure_Number::HEXADECIMAL);
  147. $this->assertEquals(Zend_Measure_Number::HEXADECIMAL, $value->getType(), 'Zend_Measure_Number type expected');
  148. $value = new Zend_Measure_Number('102122',Zend_Measure_Number::TERNARY,'de');
  149. $value->setType(Zend_Measure_Number::OCTAL);
  150. $this->assertEquals(Zend_Measure_Number::OCTAL, $value->getType(), 'Zend_Measure_Number type expected');
  151. $value = new Zend_Measure_Number('1032402',Zend_Measure_Number::QUATERNARY,'de');
  152. $value->setType(Zend_Measure_Number::QUINARY);
  153. $this->assertEquals(Zend_Measure_Number::QUINARY, $value->getType(), 'Zend_Measure_Number type expected');
  154. $value = new Zend_Measure_Number('1052402',Zend_Measure_Number::QUINARY,'de');
  155. $value->setType(Zend_Measure_Number::QUATERNARY);
  156. $this->assertEquals(Zend_Measure_Number::QUATERNARY, $value->getType(), 'Zend_Measure_Number type expected');
  157. $value = new Zend_Measure_Number('1632402',Zend_Measure_Number::SENARY,'de');
  158. $value->setType(Zend_Measure_Number::SEPTENARY);
  159. $this->assertEquals(Zend_Measure_Number::SEPTENARY, $value->getType(), 'Zend_Measure_Number type expected');
  160. $value = new Zend_Measure_Number('1632702', Zend_Measure_Number::SEPTENARY, 'de');
  161. $value->setType(Zend_Measure_Number::SENARY);
  162. $this->assertEquals(Zend_Measure_Number::SENARY, $value->getType(), 'Zend_Measure_Number type expected');
  163. $value = new Zend_Measure_Number('1832402',Zend_Measure_Number::NONARY,'de');
  164. $value->setType(Zend_Measure_Number::SEPTENARY);
  165. $this->assertEquals(Zend_Measure_Number::SEPTENARY, $value->getType(), 'Zend_Measure_Number type expected');
  166. $value = new Zend_Measure_Number('1632402',Zend_Measure_Number::DUODECIMAL,'de');
  167. $value->setType(Zend_Measure_Number::SEPTENARY);
  168. $this->assertEquals(Zend_Measure_Number::SEPTENARY, $value->getType(), 'Zend_Measure_Number type expected');
  169. $value = new Zend_Measure_Number('1234ACE',Zend_Measure_Number::HEXADECIMAL,'de');
  170. $value->setType(Zend_Measure_Number::TERNARY);
  171. $this->assertEquals(Zend_Measure_Number::TERNARY, $value->getType(), 'Zend_Measure_Number type expected');
  172. $value = new Zend_Measure_Number('1234075',Zend_Measure_Number::OCTAL,'de');
  173. $value->setType(Zend_Measure_Number::TERNARY);
  174. $this->assertEquals(Zend_Measure_Number::TERNARY, $value->getType(), 'Zend_Measure_Number type expected');
  175. try {
  176. $value = new Zend_Measure_Number('-100',Zend_Measure_Number::STANDARD,'de');
  177. $value->setType('Number::UNKNOWN');
  178. $this->fail('Exception expected because of unknown type');
  179. } catch (Zend_Measure_Exception $e) {
  180. // success
  181. }
  182. }
  183. /**
  184. * test toString
  185. * expected string
  186. */
  187. public function testNumberToString()
  188. {
  189. $value = new Zend_Measure_Number('-100',Zend_Measure_Number::STANDARD,'de');
  190. $this->assertEquals('100 ⑽', $value->toString(), 'Value 100 ⑽ expected');
  191. }
  192. /**
  193. * test __toString
  194. * expected string
  195. */
  196. public function testNumber_ToString()
  197. {
  198. $value = new Zend_Measure_Number('-100',Zend_Measure_Number::STANDARD,'de');
  199. $this->assertEquals('100 ⑽', $value->__toString(), 'Value 100 ⑽ expected');
  200. }
  201. /**
  202. * test getConversionList
  203. * expected array
  204. */
  205. public function testNumberConversionList()
  206. {
  207. $value = new Zend_Measure_Number('-100',Zend_Measure_Number::STANDARD,'de');
  208. $unit = $value->getConversionList();
  209. $this->assertTrue(is_array($unit), 'Array expected');
  210. }
  211. /**
  212. * test convertTo
  213. */
  214. public function testConvertTo()
  215. {
  216. $value = new Zend_Measure_Number('III',Zend_Measure_Number::ROMAN, 'en');
  217. $this->assertEquals('3 ⑽', $value->convertTo(Zend_Measure_Number::DECIMAL));
  218. $value = new Zend_Measure_Number('XXV',Zend_Measure_Number::ROMAN, 'en');
  219. $this->assertEquals('25 ⑽', $value->convertTo(Zend_Measure_Number::DECIMAL));
  220. $value = new Zend_Measure_Number('_X',Zend_Measure_Number::ROMAN, 'en');
  221. $this->assertEquals('10,000 ⑽', $value->convertTo(Zend_Measure_Number::DECIMAL));
  222. }
  223. }