Passed
Push — master ( b20f5c...b636c5 )
by Adrien
29:30 queued 11:53
created

ReferenceHelperTest::testColumnReverseSort()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 19
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 16
nc 2
nop 0
dl 0
loc 19
rs 9.7333
c 0
b 0
f 0
1
<?php
2
3
namespace PhpOffice\PhpSpreadsheetTests;
4
5
use PhpOffice\PhpSpreadsheet\ReferenceHelper;
6
use PHPUnit\Framework\TestCase;
7
8
class ReferenceHelperTest extends TestCase
9
{
10
    public function setUp()
11
    {
12
    }
13
14
    public function testColumnSort()
15
    {
16
        $columnBase = $columnExpectedResult = [
17
            'A', 'B', 'Z',
18
            'AA', 'AB', 'AZ',
19
            'BA', 'BB', 'BZ',
20
            'ZA', 'ZB', 'ZZ',
21
            'AAA', 'AAB', 'AAZ',
22
            'ABA', 'ABB', 'ABZ',
23
            'AZA', 'AZB', 'AZZ',
24
            'BAA', 'BAB', 'BAZ',
25
            'BBA', 'BBB', 'BBZ',
26
            'BZA', 'BZB', 'BZZ',
27
        ];
28
        shuffle($columnBase);
29
        usort($columnBase, [ReferenceHelper::class, 'columnSort']);
30
        foreach ($columnBase as $key => $value) {
31
            self::assertEquals($columnExpectedResult[$key], $value);
32
        }
33
    }
34
35
    public function testColumnReverseSort()
36
    {
37
        $columnBase = $columnExpectedResult = [
38
            'A', 'B', 'Z',
39
            'AA', 'AB', 'AZ',
40
            'BA', 'BB', 'BZ',
41
            'ZA', 'ZB', 'ZZ',
42
            'AAA', 'AAB', 'AAZ',
43
            'ABA', 'ABB', 'ABZ',
44
            'AZA', 'AZB', 'AZZ',
45
            'BAA', 'BAB', 'BAZ',
46
            'BBA', 'BBB', 'BBZ',
47
            'BZA', 'BZB', 'BZZ',
48
        ];
49
        shuffle($columnBase);
50
        $columnExpectedResult = array_reverse($columnExpectedResult);
51
        usort($columnBase, [ReferenceHelper::class, 'columnReverseSort']);
52
        foreach ($columnBase as $key => $value) {
53
            self::assertEquals($columnExpectedResult[$key], $value);
54
        }
55
    }
56
57
    public function testCellSort()
58
    {
59
        $cellBase = $columnExpectedResult = [
60
            'A1', 'B1', 'AZB1',
61
            'BBB1', 'BB2', 'BAB2',
62
            'BZA2', 'Z3', 'AZA3',
63
            'BZB3', 'AB5', 'AZ6',
64
            'ABZ7', 'BA9', 'BZ9',
65
            'AAA9', 'AAZ9', 'BA10',
66
            'BZZ10', 'ZA11', 'AAB11',
67
            'BBZ29', 'BAA32', 'ZZ43',
68
            'AZZ43', 'BAZ67', 'ZB78',
69
            'ABA121', 'ABB289', 'BBA544',
70
        ];
71
        shuffle($cellBase);
72
        usort($cellBase, [ReferenceHelper::class, 'cellSort']);
73
        foreach ($cellBase as $key => $value) {
74
            self::assertEquals($columnExpectedResult[$key], $value);
75
        }
76
    }
77
78
    public function testCellReverseSort()
79
    {
80
        $cellBase = $columnExpectedResult = [
81
            'BBA544', 'ABB289', 'ABA121',
82
            'ZB78', 'BAZ67', 'AZZ43',
83
            'ZZ43', 'BAA32', 'BBZ29',
84
            'AAB11', 'ZA11', 'BZZ10',
85
            'BA10', 'AAZ9', 'AAA9',
86
            'BZ9', 'BA9', 'ABZ7',
87
            'AZ6', 'AB5', 'BZB3',
88
            'AZA3', 'Z3', 'BZA2',
89
            'BAB2', 'BB2', 'BBB1',
90
            'AZB1', 'B1', 'A1',
91
        ];
92
        shuffle($cellBase);
93
        usort($cellBase, [ReferenceHelper::class, 'cellReverseSort']);
94
        foreach ($cellBase as $key => $value) {
95
            self::assertEquals($columnExpectedResult[$key], $value);
96
        }
97
    }
98
}
99