1 <?php
2 
3 /**
4  * Hoa
5  *
6  *
7  * @license
8  *
9  * New BSD License
10  *
11  * Copyright © 2007-2017, Hoa community. All rights reserved.
12  *
13  * Redistribution and use in source and binary forms, with or without
14  * modification, are permitted provided that the following conditions are met:
15  *     * Redistributions of source code must retain the above copyright
16  *       notice, this list of conditions and the following disclaimer.
17  *     * Redistributions in binary form must reproduce the above copyright
18  *       notice, this list of conditions and the following disclaimer in the
19  *       documentation and/or other materials provided with the distribution.
20  *     * Neither the name of the Hoa nor the names of its contributors may be
21  *       used to endorse or promote products derived from this software without
22  *       specific prior written permission.
23  *
24  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE
28  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34  * POSSIBILITY OF SUCH DAMAGE.
35  */
36 
37 namespace Hoa\Ustring\Test\Unit;
38 
39 use Hoa\Test;
40 use Hoa\Ustring as LUT;
41 
42 /**
43  * Class \Hoa\Ustring\Test\Unit\Search.
44  *
45  * Test suite of the search algorithms.
46  *
47  * @copyright  Copyright © 2007-2017 Hoa community
48  * @license    New BSD License
49  */
50 class Search extends Test\Unit\Suite
51 {
52     public function case_approximated()
53     {
54         $this
55             ->given(
56                 $x = 'GATAA',
57                 $y = 'CAGATAAGAGAA',
58                 $k = 1
59             )
60             ->when($result = LUT\Search::approximated($y, $x, $k))
61             ->then
62                 ->array($result)
63                     ->isEqualTo([
64                         0 => [
65                             'i' => 1,
66                             'j' => 6,
67                             'l' => 5
68                         ],
69                         1 => [
70                             'i' => 2,
71                             'j' => 7,
72                             'l' => 5
73                         ],
74                         2 => [
75                             'i' => 3,
76                             'j' => 8,
77                             'l' => 5
78                         ],
79                         3 => [
80                             'i' => 7,
81                             'j' => 12,
82                             'l' => 5
83                         ]
84                     ]);
85     }
86 }
87