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