mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
move tokenization in query into tokenizer
This commit is contained in:
@@ -49,88 +49,4 @@ class TokenTest extends \PHPUnit\Framework\TestCase
|
||||
$this->assertFalse($TL->contains('unknownword'));
|
||||
$this->assertEquals(array(), $TL->get('unknownword'));
|
||||
}
|
||||
|
||||
public function testAddress()
|
||||
{
|
||||
$this->expectOutputRegex('/<p><tt>/');
|
||||
|
||||
$oDbStub = $this->getMockBuilder(Nominatim\DB::class)
|
||||
->setMethods(array('getAll', 'getDBQuotedList'))
|
||||
->getMock();
|
||||
|
||||
$oDbStub->method('getDBQuotedList')
|
||||
->will($this->returnCallback(function ($aVals) {
|
||||
return array_map(function ($sVal) {
|
||||
return "'".$sVal."'";
|
||||
}, $aVals);
|
||||
}));
|
||||
|
||||
|
||||
$oDbStub->method('getAll')
|
||||
->will($this->returnCallback(function ($sql) {
|
||||
$aResults = array();
|
||||
if (preg_match('/1051/', $sql)) {
|
||||
$aResults[] = $this->wordResult(array(
|
||||
'word_id' => 999,
|
||||
'word_token' => '1051',
|
||||
'class' => 'place',
|
||||
'type' => 'house'
|
||||
));
|
||||
}
|
||||
if (preg_match('/hauptstr/', $sql)) {
|
||||
$aResults[] = $this->wordResult(array(
|
||||
'word_id' => 999,
|
||||
'word_token' => 'hauptstr',
|
||||
'class' => 'place',
|
||||
'type' => 'street',
|
||||
'operator' => true
|
||||
));
|
||||
}
|
||||
if (preg_match('/64286/', $sql)) {
|
||||
$aResults[] = $this->wordResult(array(
|
||||
'word_id' => 999,
|
||||
'word_token' => '64286',
|
||||
'word' => '64286',
|
||||
'class' => 'place',
|
||||
'type' => 'postcode'
|
||||
));
|
||||
}
|
||||
if (preg_match('/darmstadt/', $sql)) {
|
||||
$aResults[] = $this->wordResult(array(
|
||||
'word_id' => 999,
|
||||
'word_token' => 'darmstadt',
|
||||
'count' => 533
|
||||
));
|
||||
}
|
||||
if (preg_match('/alemagne/', $sql)) {
|
||||
$aResults[] = $this->wordResult(array(
|
||||
'word_id' => 999,
|
||||
'word_token' => 'alemagne',
|
||||
'country_code' => 'de',
|
||||
));
|
||||
}
|
||||
if (preg_match('/mexico/', $sql)) {
|
||||
$aResults[] = $this->wordResult(array(
|
||||
'word_id' => 999,
|
||||
'word_token' => 'mexico',
|
||||
'country_code' => 'mx',
|
||||
));
|
||||
}
|
||||
return $aResults;
|
||||
}));
|
||||
|
||||
$aCountryCodes = array('de', 'fr');
|
||||
$sNormQuery = '1051 hauptstr 64286 darmstadt alemagne mexico';
|
||||
$aTokens = explode(' ', $sNormQuery);
|
||||
|
||||
$TL = new TokenList;
|
||||
$TL->addTokensFromDB($oDbStub, $aTokens, $aCountryCodes, $sNormQuery, $this->oNormalizer);
|
||||
$this->assertEquals(5, $TL->count());
|
||||
|
||||
$this->assertEquals(array(new Token\HouseNumber(999, '1051')), $TL->get('1051'));
|
||||
$this->assertEquals(array(new Token\Country(999, 'de')), $TL->get('alemagne'));
|
||||
$this->assertEquals(array(new Token\Postcode(999, '64286')), $TL->get('64286'));
|
||||
$this->assertEquals(array(new Token\Word(999, true, 533, 0)), $TL->get('darmstadt'));
|
||||
$this->assertEquals(array(new Token\SpecialTerm(999, 'place', 'street', true)), $TL->get('hauptstr'));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user