feat: chatbot trip search finds trips by trip name, hotel name and code
This commit is contained in:
1 parent
26d4140c18
commit
fe40e1807e
8 files changed
+448
-52
No files matched your search
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Tests\Chatbot\Search;
|
||||
|
||||
use App\Chatbot\Search\NameQuery;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class NameQueryTest extends TestCase
|
||||
{
|
||||
public function testTokensAreFoldedUniqueAndWithoutStopwords(): void
|
||||
{
|
||||
self::assertSame(['hotel', 'chamois', 'or', 'val', 'chaviere'], NameQuery::tokens('Das Hotel "Chamois d\'Or" in Val Chavière, Hotel!'));
|
||||
self::assertSame(['chalet', '2100', '3'], NameQuery::tokens('Chalet 2100 (3*)'));
|
||||
self::assertSame(['waldschlossli', 'grosse'], NameQuery::tokens('WALDSCHLÖSSLI Größe'));
|
||||
self::assertSame([], NameQuery::tokens('Was ist das?'));
|
||||
}
|
||||
|
||||
public function testWithinNeedsEveryQueryWordToBeginAWordOfTheName(): void
|
||||
{
|
||||
$name = NameQuery::tokens('3* Hotel Les Arolles (inkl. VP)');
|
||||
|
||||
self::assertTrue(NameQuery::within(NameQuery::tokens('arolles'), $name));
|
||||
self::assertTrue(NameQuery::within(NameQuery::tokens('Hotel Aroll'), $name));
|
||||
self::assertFalse(NameQuery::within(NameQuery::tokens('Sportclub Arolles'), $name));
|
||||
self::assertFalse(NameQuery::within(NameQuery::tokens('rolles'), $name));
|
||||
self::assertFalse(NameQuery::within([], $name));
|
||||
}
|
||||
|
||||
public function testContainsNeedsTheWholeNameInTheQuery(): void
|
||||
{
|
||||
$query = NameQuery::tokens('Hotel Chamois d\'Or in Val Thorens');
|
||||
|
||||
self::assertTrue(NameQuery::contains($query, NameQuery::tokens('Chamois d\'Or')));
|
||||
self::assertTrue(NameQuery::contains($query, NameQuery::tokens('Val Thorens')));
|
||||
self::assertFalse(NameQuery::contains($query, NameQuery::tokens('Chalets Chamois')));
|
||||
self::assertFalse(NameQuery::contains($query, []));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user