/**
  * Transforms a localized money string into a normalized format.
  *
  * @param string $value Localized money string
  *
  * @return int|float Normalized number
  *
  * @throws TransformationFailedException If the given value is not a string
  *                                       or if the value can not be transformed.
  */
 public function reverseTransform($value)
 {
     $value = parent::reverseTransform($value);
     if (null !== $value) {
         $value *= $this->divisor;
     }
     return $value;
 }
 /**
  * @expectedException Symfony\Component\Form\Exception\TransformationFailedException
  */
 public function testReverseTransformDisallowsNegativeInfinity()
 {
     $transformer = new NumberToLocalizedStringTransformer();
     $transformer->reverseTransform('-∞');
 }
 /**
  * @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
  * @expectedExceptionMessage The number contains unrecognized characters: "foo"
  */
 public function testReverseTransformDisallowsTrailingExtraCharactersMultibyte()
 {
     if (!function_exists('mb_detect_encoding')) {
         $this->markTestSkipped('The "mbstring" extension is required for this test.');
     }
     \Locale::setDefault('ru');
     $transformer = new NumberToLocalizedStringTransformer(null, true);
     $transformer->reverseTransform("12 345,678foo");
 }
 /**
  * @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
  * @expectedExceptionMessage The number contains unrecognized characters: "foo"
  * @requires extension mbstring
  */
 public function testReverseTransformDisallowsTrailingExtraCharactersMultibyte()
 {
     // Since we test against other locales, we need the full implementation
     IntlTestHelper::requireFullIntl($this);
     \Locale::setDefault('ru');
     $transformer = new NumberToLocalizedStringTransformer(null, true);
     $transformer->reverseTransform("12 345,678foo");
 }
 public function testReverseTransformSmallInt()
 {
     $transformer = new NumberToLocalizedStringTransformer(null, true);
     $this->assertSame(1.0, $transformer->reverseTransform('1'));
 }
 /**
  * @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
  * @expectedExceptionMessage The number contains unrecognized characters: "foo"
  */
 public function testReverseTransformDisallowsTrailingExtraCharactersMultibyte()
 {
     if (!function_exists('mb_detect_encoding')) {
         $this->markTestSkipped('The "mbstring" extension is required for this test.');
     }
     // Since we test against other locales, we need the full implementation
     IntlTestHelper::requireFullIntl($this);
     \Locale::setDefault('ru');
     $transformer = new NumberToLocalizedStringTransformer(null, true);
     $transformer->reverseTransform("12 345,678foo");
 }
 /**
  * @expectedException Symfony\Component\Form\Exception\TransformationFailedException
  */
 public function testReverseTransformExpectsValidNumber()
 {
     $transformer = new NumberToLocalizedStringTransformer();
     $transformer->reverseTransform('foo');
 }
 /**
  * @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
  */
 public function testReverseTransformDisallowsTrailingExtraCharacters()
 {
     $transformer = new NumberToLocalizedStringTransformer();
     $transformer->reverseTransform('123foo');
 }
 public function testReverseTransformBigint()
 {
     $transformer = new NumberToLocalizedStringTransformer(null, true);
     $this->assertEquals(PHP_INT_MAX - 1, (int) $transformer->reverseTransform((string) (PHP_INT_MAX - 1)));
 }
 protected function getNumberFormatter()
 {
     $formatter = parent::getNumberFormatter();
     $formatter->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, 100);
     return $formatter;
 }