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
|
|
|
|