PHP Classes

File: tests/FuzzySearch/IgnoreLocationAndFieldLengthNormTest.php

Recommend this page to a friend!
  Classes of AccountKiller   Fuse   tests/FuzzySearch/IgnoreLocationAndFieldLengthNormTest.php   Download  
File: tests/FuzzySearch/IgnoreLocationAndFieldLengthNormTest.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Fuse
Fuzzy search of arrays using the Bitap algorithm
Author: By
Last change:
Date: 27 days ago
Size: 3,136 bytes
 

Contents

Class file image Download
<?php

declare(strict_types=1);

namespace
Fuse\Test;

use
Fuse\Fuse;

it('checks order of entries when location and field length norm are ignored', function () {
   
$list = [
       
'beforeEach',
       
'async beforeEach test',
       
'assert.async in beforeEach',
       
'Module with Promise-aware beforeEach',
       
'Promise-aware return values without beforeEach/afterEach',
       
'Module with Promise-aware afterEach',
       
'before',
       
'before (skip)',
    ];

   
$fuse = new Fuse($list, [
       
'includeScore' => true,
       
'ignoreLocation' => true,
       
'ignoreFieldNorm' => true,
    ]);

   
$result = $fuse->search('promiseawarebeforeEach');

   
expect($result)->toEqual([
        [
           
'item' => 'Module with Promise-aware beforeEach',
           
'refIndex' => 3,
           
'score' => 0.09090909090909091,
        ],
        [
           
'item' => 'Module with Promise-aware afterEach',
           
'refIndex' => 5,
           
'score' => 0.2727272727272727,
        ],
        [
           
'item' => 'Promise-aware return values without beforeEach/afterEach',
           
'refIndex' => 4,
           
'score' => 0.4090909090909091,
        ],
        [
           
'item' => 'async beforeEach test',
           
'refIndex' => 1,
           
'score' => 0.5,
        ],
        [
           
'item' => 'assert.async in beforeEach',
           
'refIndex' => 2,
           
'score' => 0.5,
        ],
        [
           
'item' => 'beforeEach',
           
'refIndex' => 0,
           
'score' => 0.5454545454545454,
        ],
    ]);
});

it('checks order of entries when location and field length norm are not ignored', function () {
   
$list = [
       
'beforeEach',
       
'async beforeEach test',
       
'assert.async in beforeEach',
       
'Module with Promise-aware beforeEach',
       
'Promise-aware return values without beforeEach/afterEach',
       
'Module with Promise-aware afterEach',
       
'before',
       
'before (skip)',
    ];

   
$fuse = new Fuse($list, [
       
'includeScore' => true,
    ]);

   
$result = $fuse->search('beforeEach');

   
expect($result)->toEqual([
        [
           
'item' => 'beforeEach',
           
'refIndex' => 0,
           
'score' => 0,
        ],
        [
           
'item' => 'async beforeEach test',
           
'refIndex' => 1,
           
'score' => 0.1972392177586917,
        ],
        [
           
'item' => 'before',
           
'refIndex' => 6,
           
'score' => 0.4,
        ],
        [
           
'item' => 'assert.async in beforeEach',
           
'refIndex' => 2,
           
'score' => 0.4493775633055149,
        ],
        [
           
'item' => 'before (skip)',
           
'refIndex' => 7,
           
'score' => 0.5231863610884103,
        ],
        [
           
'item' => 'Module with Promise-aware beforeEach',
           
'refIndex' => 3,
           
'score' => 0.5916079783099616,
        ],
        [
           
'item' => 'Promise-aware return values without beforeEach/afterEach',
           
'refIndex' => 4,
           
'score' => 0.699819425905295,
        ],
    ]);
});