Skip to content

Commit f3cc7a8

Browse files
committed
added coarse grained builder/tree test
1 parent 6b2efca commit f3cc7a8

File tree

4 files changed

+62
-0
lines changed

4 files changed

+62
-0
lines changed

tests/Unit/InternalNodeTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
class InternalNodeTest extends TestCase
99
{
10+
private $internal_node;
11+
1012
protected function setUp()
1113
{
1214
$this->internal_node = new InternalNode(3, 5);

tests/Unit/LeafNodeTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
class LeafNodeTest extends TestCase
99
{
10+
private $leaf_node;
11+
1012
protected function setUp()
1113
{
1214
$this->leaf_node = new LeafNode(7, 8, 2);

tests/Unit/RootNodeTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
class RootNodeTest extends TestCase
99
{
10+
private $root_node;
11+
1012
protected function setUp()
1113
{
1214
$this->root_node = new RootNode;

tests/Unit/SuffixTreeTest.php

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?php
2+
3+
namespace Shrink0r\SuffixTree\Tests\Unit;
4+
5+
use Shrink0r\SuffixTree\Builder\SuffixTreeBuilder;
6+
use Shrink0r\SuffixTree\Tests\Unit\TestCase;
7+
8+
class SuffixTreeTest extends TestCase
9+
{
10+
private $tree_builder;
11+
12+
protected function setUp()
13+
{
14+
$this->tree_builder = new SuffixTreeBuilder;
15+
}
16+
17+
/**
18+
* @dataProvider provideFlowFixtures
19+
*/
20+
public function testOverallFlow(string $s, string $lrs, array $suffix, array $substring)
21+
{
22+
$suffix_tree = $this->tree_builder->build($s);
23+
$this->assertEquals($lrs, $suffix_tree->findLongestRepetition());
24+
$this->assertTrue($suffix_tree->hasSuffix($suffix['true']));
25+
$this->assertFalse($suffix_tree->hasSuffix($suffix['false']));
26+
$this->assertTrue($suffix_tree->hasSubstring($substring['true']));
27+
$this->assertFalse($suffix_tree->hasSubstring($substring['false']));
28+
}
29+
30+
/**
31+
* @codeCoverageIgnore
32+
*/
33+
public static function provideFlowFixtures()
34+
{
35+
return [
36+
[
37+
's' => 'mississippi$',
38+
'lrs' => 'issi',
39+
'suffix' => [ 'true' => 'sippi$', 'false' => 'miss$' ],
40+
'substring' => [ 'true' => 'iss', 'false' => 'issm' ]
41+
],
42+
[
43+
's' => 'GEEKSFORGEEKS$',
44+
'lrs' => 'GEEKS',
45+
'suffix' => [ 'true' => 'EKS$', 'false' => 'GE$' ],
46+
'substring' => [ 'true' => 'EEK', 'false' => 'SKG' ]
47+
],
48+
[
49+
's' => 'xabxac$',
50+
'lrs' => 'xa',
51+
'suffix' => [ 'true' => 'ac$', 'false' => 'xa$' ],
52+
'substring' => [ 'true' => 'bxa', 'false' => 'cba' ]
53+
]
54+
];
55+
}
56+
}

0 commit comments

Comments
 (0)