public function testRangeFilters() { $criteria = new ESphinxSearchCriteria(); try { $criteria->addRangeFilters(''); $this->setExpectedException('ESphinxException'); } catch (Exception $e) { $this->assertInstanceOf('ESphinxException', $e); } try { $criteria->addRangeFilters(array()); $this->setExpectedException('ESphinxException'); } catch (Exception $e) { $this->assertInstanceOf('ESphinxException', $e); } try { $criteria->addRangeFilters(array('attr')); $this->setExpectedException('ESphinxException'); } catch (Exception $e) { $this->assertInstanceOf('ESphinxException', $e); } try { $criteria->addRangeFilter('', 1, 2); $this->setExpectedException('ESphinxException'); } catch (Exception $e) { $this->assertInstanceOf('ESphinxException', $e); } // add vaue $criteria->addRangeFilter('attribute', 1, 10); $this->assertEquals($criteria->getRangeFilters(), array(array('attribute' => 'attribute', 'min' => 1, 'max' => 10, 'exclude' => false, 'float' => false))); $criteria->cleanRangeFilters(); $this->assertEquals($criteria->getRangeFilters(), array()); // add float value $criteria->addRangeFilter('attribute', 1.1, 10, true); $this->assertEquals($criteria->getRangeFilters(), array(array('attribute' => 'attribute', 'min' => 1.1, 'max' => 10, 'exclude' => true, 'float' => true))); $criteria->cleanRangeFilters(); $this->assertEquals($criteria->getRangeFilters(), array()); // добавление нескольких значений $criteria->addRangeFilters(array(array('attribute1', 'min' => 1, 'max' => (double) 100), array('attribute2', 'min' => 1.2, 'max' => 100.1), array('attribute3', 'min' => 1, 'max' => 100, 'exclude' => true), array('attribute4', 'min' => 1, 'max' => 100))); $this->assertEquals($criteria->getRangeFilters(), array(array('attribute' => 'attribute1', 'min' => 1.0, 'max' => 100.0, 'exclude' => false, 'float' => true), array('attribute' => 'attribute2', 'min' => 1.2, 'max' => 100.1, 'exclude' => false, 'float' => true), array('attribute' => 'attribute3', 'min' => 1, 'max' => 100, 'exclude' => true, 'float' => false), array('attribute' => 'attribute4', 'min' => 1, 'max' => 100, 'exclude' => false, 'float' => false))); }