| 
<?php
 declare(strict_types=1);
 
 use Fuse\Fuse;
 
 $list = [
 [
 'title' => 'HTML5',
 'author' => [
 'firstName' => 'Remy',
 'lastName' => 'Sharp',
 ],
 ],
 [
 'title' => 'Angels & Demons',
 'author' => [
 'firstName' => 'rmy',
 'lastName' => 'Brown',
 ],
 ],
 ];
 
 test('we get matches', function () use ($list) {
 $fuse = new Fuse($list, [
 'keys' => ['title', ['author', 'firstName']],
 'includeMatches' => true,
 'includeScore' => true,
 ]);
 
 $result = $fuse->search('remy');
 
 expect($result)->toHaveCount(2);
 });
 
 test('we get a result with no matches', function () {
 $fuse = new Fuse(
 [
 [
 'title' => 'HTML5',
 'author' => [
 'first.name' => 'Remy',
 'last.name' => 'Sharp',
 ],
 ],
 [
 'title' => 'Angels & Demons',
 'author' => [
 'first.name' => 'rmy',
 'last.name' => 'Brown',
 ],
 ],
 ],
 [
 'keys' => ['title', ['author', 'first.name']],
 'includeMatches' => true,
 'includeScore' => true,
 ],
 );
 
 $result = $fuse->search('remy');
 
 expect($result)->toHaveCount(2);
 });
 
 test('keys with weights', function () use ($list) {
 $fuse = new Fuse($list, [
 'keys' => [
 [
 'name' => 'title',
 ],
 [
 'name' => ['author', 'firstName'],
 ],
 ],
 'includeMatches' => true,
 'includeScore' => true,
 ]);
 
 $result = $fuse->search('remy');
 
 expect($result)->toHaveCount(2);
 });
 
 |