public function testFloatConversion()
 {
     //assume default enabled
     $this->assertTrue($this->platform->isFloatConversionEnabled());
     $this->assertInstanceOf('\\SphinxSearch\\Db\\Adapter\\Platform\\SphinxQL', $this->platform->enableFloatConversion(false));
     $this->assertFalse($this->platform->isFloatConversionEnabled());
     $this->platform->enableFloatConversion(true);
     $this->assertTrue($this->platform->isFloatConversionEnabled());
     //test default param value in method
     $this->platform->enableFloatConversion();
     $this->assertTrue($this->platform->isFloatConversionEnabled());
     $singlePrecisionPi = '3.141592654';
     $doublePrecisionPi = '3.1415926535898';
     $this->assertSame($singlePrecisionPi, $this->platform->toFloatSinglePrecision(pi()));
     $this->platform->enableFloatConversion(false);
     $this->assertSame($doublePrecisionPi, $this->platform->quoteTrustedValue(pi()));
     $this->platform->enableFloatConversion(true);
     $this->assertSame($singlePrecisionPi, $this->platform->quoteTrustedValue(pi()));
 }
 /**
  *
  * @return array of array|string should return an array in the format:
  *
  * array (
  *    // a sprintf formatted string
  *    string $specification,
  *
  *    // the values for the above sprintf formatted string
  *    array $values,
  *
  *    // an array of equal length of the $values array, with either TYPE_IDENTIFIER or TYPE_VALUE for each value
  *    array $types,
  * )
  *
  */
 public function getExpressionData()
 {
     $expressionData = $this->subject->getExpressionData();
     foreach ($expressionData as &$expressionPart) {
         if (!is_array($expressionPart)) {
             continue;
         }
         $parametersCount = count($expressionPart[1]);
         for ($i = 0; $i < $parametersCount; $i++) {
             if ($this->platform->isFloatConversionEnabled() && is_float($expressionPart[1][$i]) && $expressionPart[2][$i] == Expression::TYPE_VALUE) {
                 $expressionPart[1][$i] = $this->platform->toFloatSinglePrecision($expressionPart[1][$i]);
                 $expressionPart[2][$i] = Expression::TYPE_LITERAL;
             }
             if (is_bool($expressionPart[1][$i]) && $expressionPart[2][$i] == Expression::TYPE_VALUE) {
                 $expressionPart[1][$i] = (int) $expressionPart[1][$i];
             }
         }
     }
     return $expressionData;
 }