@@ -21,15 +21,7 @@ protected function setUp(): void
21
21
{
22
22
$ this ->spreadSheet = new Spreadsheet ();
23
23
$ this ->spreadSheet ->getActiveSheet ()
24
- ->setCellValue ('A1 ' , 1 )
25
- ->setCellValue ('B1 ' , 2 )
26
- ->setCellValue ('C1 ' , 3 )
27
- ->setCellValue ('A2 ' , 4 )
28
- ->setCellValue ('B2 ' , 5 )
29
- ->setCellValue ('C2 ' , 6 )
30
- ->setCellValue ('A3 ' , 7 )
31
- ->setCellValue ('B3 ' , 8 )
32
- ->setCellValue ('C3 ' , 9 );
24
+ ->fromArray (array_chunk (range (1 , 240 ), 6 ), null , 'A1 ' , true );
33
25
}
34
26
35
27
/**
@@ -40,33 +32,39 @@ protected function setUp(): void
40
32
public function testRangeEvaluation (string $ formula , $ expectedResult ): void
41
33
{
42
34
$ workSheet = $ this ->spreadSheet ->getActiveSheet ();
43
- $ workSheet ->setCellValue ('E1 ' , $ formula );
35
+ $ workSheet ->setCellValue ('H1 ' , $ formula );
44
36
45
- $ actualRresult = $ workSheet ->getCell ('E1 ' )->getCalculatedValue ();
37
+ $ actualRresult = $ workSheet ->getCell ('H1 ' )->getCalculatedValue ();
46
38
self ::assertSame ($ expectedResult , $ actualRresult );
47
39
}
48
40
49
41
public function providerRangeEvaluation (): array
50
42
{
51
43
return [
52
- ['=SUM(A1:B3,A1:C2) ' , 48 ],
53
- ['=COUNT(A1:B3,A1:C2) ' , 12 ],
54
- ['=SUM(A1:B3 A1:C2) ' , 12 ],
55
- ['=COUNT(A1:B3 A1:C2) ' , 4 ],
56
- ['=SUM(A1:A3,C1:C3) ' , 30 ],
57
- ['=COUNT(A1:A3,C1:C3) ' , 6 ],
58
- ['=SUM(A1:A3 C1:C3) ' , Functions::null ()],
59
- ['=COUNT(A1:A3 C1:C3) ' , 0 ],
60
- ['=SUM(A1:B2,B2:C3) ' , 40 ],
61
- ['=COUNT(A1:B2,B2:C3) ' , 8 ],
62
- ['=SUM(A1:B2 B2:C3) ' , 5 ],
63
- ['=COUNT(A1:B2 B2:C3) ' , 1 ],
64
- ['=SUM(A1:C1,A3:C3,B1:C3) ' , 63 ],
65
- ['=COUNT(A1:C1,A3:C3,B1:C3) ' , 12 ],
66
- ['=SUM(A1:C1,A3:C3 B1:C3) ' , 23 ],
67
- ['=COUNT(A1:C1,A3:C3 B1:C3) ' , 5 ],
68
- ['=SUM(Worksheet!A1:B3,Worksheet!A1:C2) ' , 48 ],
69
- ['=SUM(Worksheet!A1:Worksheet!B3,Worksheet!A1:Worksheet!C2) ' , 48 ],
44
+ 'Sum with Simple Range ' => ['=SUM(A1:C3) ' , 72 ],
45
+ 'Count with Simple Range ' => ['=COUNT(A1:C3) ' , 9 ],
46
+ 'Sum with UNION #1 ' => ['=SUM(A1:B3,A1:C2) ' , 75 ],
47
+ 'Count with UNION #1 ' => ['=COUNT(A1:B3,A1:C2) ' , 12 ],
48
+ 'Sum with INTERSECTION #1 ' => ['=SUM(A1:B3 A1:C2) ' , 18 ],
49
+ 'Count with INTERSECTION #1 ' => ['=COUNT(A1:B3 A1:C2) ' , 4 ],
50
+ 'Sum with UNION #2 ' => ['=SUM(A1:A3,C1:C3) ' , 48 ],
51
+ 'Count with UNION #2 ' => ['=COUNT(A1:A3,C1:C3) ' , 6 ],
52
+ 'Sum with INTERSECTION #2 - No Intersect ' => ['=SUM(A1:A3 C1:C3) ' , Functions::null ()],
53
+ 'Count with INTERSECTION #2 - No Intersect ' => ['=COUNT(A1:A3 C1:C3) ' , 0 ],
54
+ 'Sum with UNION #3 ' => ['=SUM(A1:B2,B2:C3) ' , 64 ],
55
+ 'Count with UNION #3 ' => ['=COUNT(A1:B2,B2:C3) ' , 8 ],
56
+ 'Sum with INTERSECTION #3 - Single Cell ' => ['=SUM(A1:B2 B2:C3) ' , 8 ],
57
+ 'Count with INTERSECTION #3 - Single Cell ' => ['=COUNT(A1:B2 B2:C3) ' , 1 ],
58
+ 'Sum with Triple UNION ' => ['=SUM(A1:C1,A3:C3,B1:C3) ' , 99 ],
59
+ 'Count with Triple UNION ' => ['=COUNT(A1:C1,A3:C3,B1:C3) ' , 12 ],
60
+ 'Sum with UNION and INTERSECTION ' => ['=SUM(A1:C1,A3:C3 B1:C3) ' , 35 ],
61
+ 'Count with UNION and INTERSECTION ' => ['=COUNT(A1:C1,A3:C3 B1:C3) ' , 5 ],
62
+ 'Sum with UNION with Worksheet Reference ' => ['=SUM(Worksheet!A1:B3,Worksheet!A1:C2) ' , 75 ],
63
+ 'Sum with UNION with full Worksheet Reference ' => ['=SUM(Worksheet!A1:Worksheet!B3,Worksheet!A1:Worksheet!C2) ' , 75 ],
64
+ 'Sum with Chained UNION #1 ' => ['=SUM(A3:B1:C2) ' , 72 ],
65
+ 'Count with Chained UNION #1 ' => ['=COUNT(A3:B1:C2) ' , 9 ],
66
+ 'Sum with Chained UNION #2 ' => ['=SUM(A5:C10:C20:F1) ' , 7260 ],
67
+ 'Count with Chained UNION#2 ' => ['=COUNT(A5:C10:C20:F1) ' , 120 ],
70
68
];
71
69
}
72
70
@@ -97,16 +95,16 @@ public function testNamedRangeEvaluation(string $group1, string $group2, string
97
95
public function providerNamedRangeEvaluation (): array
98
96
{
99
97
return [
100
- ['$A$1:$B$3 ' , '$A$1:$C$2 ' , '=SUM(GROUP1,GROUP2) ' , 48 ],
98
+ ['$A$1:$B$3 ' , '$A$1:$C$2 ' , '=SUM(GROUP1,GROUP2) ' , 75 ],
101
99
['$A$1:$B$3 ' , '$A$1:$C$2 ' , '=COUNT(GROUP1,GROUP2) ' , 12 ],
102
- ['$A$1:$B$3 ' , '$A$1:$C$2 ' , '=SUM(GROUP1 GROUP2) ' , 12 ],
100
+ ['$A$1:$B$3 ' , '$A$1:$C$2 ' , '=SUM(GROUP1 GROUP2) ' , 18 ],
103
101
['$A$1:$B$3 ' , '$A$1:$C$2 ' , '=COUNT(GROUP1 GROUP2) ' , 4 ],
104
- ['$A$1:$B$2 ' , '$B$2:$C$3 ' , '=SUM(GROUP1,GROUP2) ' , 40 ],
102
+ ['$A$1:$B$2 ' , '$B$2:$C$3 ' , '=SUM(GROUP1,GROUP2) ' , 64 ],
105
103
['$A$1:$B$2 ' , '$B$2:$C$3 ' , '=COUNT(GROUP1,GROUP2) ' , 8 ],
106
- ['$A$1:$B$2 ' , '$B$2:$C$3 ' , '=SUM(GROUP1 GROUP2) ' , 5 ],
104
+ ['$A$1:$B$2 ' , '$B$2:$C$3 ' , '=SUM(GROUP1 GROUP2) ' , 8 ],
107
105
['$A$1:$B$2 ' , '$B$2:$C$3 ' , '=COUNT(GROUP1 GROUP2) ' , 1 ],
108
- ['Worksheet!$A$1:$B$2 ' , 'Worksheet!$B$2:$C$3 ' , '=SUM(GROUP1,GROUP2) ' , 40 ],
109
- ['Worksheet!$A$1:Worksheet!$B$2 ' , 'Worksheet!$B$2:Worksheet!$C$3 ' , '=SUM(GROUP1,GROUP2) ' , 40 ],
106
+ ['Worksheet!$A$1:$B$2 ' , 'Worksheet!$B$2:$C$3 ' , '=SUM(GROUP1,GROUP2) ' , 64 ],
107
+ ['Worksheet!$A$1:Worksheet!$B$2 ' , 'Worksheet!$B$2:Worksheet!$C$3 ' , '=SUM(GROUP1,GROUP2) ' , 64 ],
110
108
];
111
109
}
112
110
@@ -132,9 +130,9 @@ public function testUTF8NamedRangeEvaluation(array $names, array $ranges, string
132
130
public function providerUTF8NamedRangeEvaluation (): array
133
131
{
134
132
return [
135
- [['Γειά ' , 'σου ' , 'Κόσμε ' ], ['$A$1 ' , '$B$1:$B$2 ' , '$C$1:$C$3 ' ], '=SUM(Γειά,σου,Κόσμε) ' , 26 ],
133
+ [['Γειά ' , 'σου ' , 'Κόσμε ' ], ['$A$1 ' , '$B$1:$B$2 ' , '$C$1:$C$3 ' ], '=SUM(Γειά,σου,Κόσμε) ' , 38 ],
136
134
[['Γειά ' , 'σου ' , 'Κόσμε ' ], ['$A$1 ' , '$B$1:$B$2 ' , '$C$1:$C$3 ' ], '=COUNT(Γειά,σου,Κόσμε) ' , 6 ],
137
- [['Здравствуй ' , 'мир ' ], ['$A$1:$A$3 ' , '$C$1:$C$3 ' ], '=SUM(Здравствуй,мир) ' , 30 ],
135
+ [['Здравствуй ' , 'мир ' ], ['$A$1:$A$3 ' , '$C$1:$C$3 ' ], '=SUM(Здравствуй,мир) ' , 48 ],
138
136
];
139
137
}
140
138
0 commit comments