PhpSpreadsheet/tests/data/Calculation/LookupRef/MATCH.php

276 lines
4.3 KiB
PHP

<?php
return [
// Third argument = 0
[
1, // Expected
2, // Input
[2, 3, 4, 3],
0,
],
[
'#N/A', // Expected
2, // Input
[1, 0, 4, 3],
0,
],
[
1, // Expected
2, // Input
[2, 0, 0, 3],
0,
],
[
2, // Expected
0, // Input
[2, 0, 0, 3],
0,
],
// Third argument = 1
[
1, // Expected
2, // Input
[2, 3, 4, 3],
1,
],
[
2, // Expected
2, // Input
[2, 0, 4, 3],
1,
],
[
3, // Expected
2, // Input
[2, 0, 0, 3],
1,
],
[
4, // Expected
4, // Input
[2, 0, 0, 3],
1,
],
// Third argument = -1
[
1, // Expected
2, // Input
[2, 0, 0, 3],
-1,
],
[
4, // Expected
2, // Input
[3, 3, 4, 5],
-1,
],
[
1, // Expected
5, // Input
[8, 4, 3, 2],
-1,
],
[
'#N/A', // Expected
6, // Input
[3, 5, 6, 8],
-1,
],
[
1, // Expected
6, // Input
[8, 5, 4, 2],
-1,
],
[
3, // Expected
4, // Input
[5, 8, 4, 2],
-1,
],
[
2, // Expected
4, // Input
[8, 8, 3, 2],
-1,
],
// match on ranges with empty cells
[
3, // Expected
4, // Input
[1, null, 4, null, 8],
1,
],
[
3, // Expected
5, // Input
[1, null, 4, null, null],
1,
],
// 0s are causing errors, because things like 0 == 'x' is true. Thanks PHP!
[
3,
'x',
[[0], [0], ['x'], ['x'], ['x']],
0,
],
[
2,
'a',
[false, 'a', 1],
-1,
],
[
'#N/A', // Expected
0,
['x', true, false],
-1,
],
[
'#N/A', // Expected
true,
['a', 'b', 'c'],
-1,
],
[
'#N/A', // Expected
true,
[0, 1, 2],
-1,
],
[
'#N/A', // Expected
true,
[0, 1, 2],
0,
],
[
'#N/A', // Expected
true,
[0, 1, 2],
1,
],
[
1, // Expected
true,
[true, true, true],
-1,
],
[
1, // Expected
true,
[true, true, true],
0,
],
[
3, // Expected
true,
[true, true, true],
1,
],
// lookup stops when value < searched one
[
5, // Expected
6,
[true, false, 'a', 'z', 222222, 2, 99999999],
-1,
],
// when mixing numeric types
[
4, // Expected
4.6,
[1, 2, 3, 4, 5],
1,
],
[
4, // Expected
4,
[1, 2, 3, 3.8, 5],
1,
],
// if element of same data type met and it is < than searched one #N/A - no further processing
[
'#N/A', // Expected
6,
[true, false, 'a', 'z', 2, 888],
-1,
],
[
'#N/A', // Expected
6,
['6'],
-1,
],
// expression match
[
2, // Expected
'a?b',
['a', 'abb', 'axc'],
0,
],
[
1, // Expected
'a*',
['aAAAAAAA', 'as', 'az'],
0,
],
[
3, // Expected
'1*11*1',
['abc', 'efh', '1a11b1'],
0,
],
[
3, // Expected
'1*11*1',
['abc', 'efh', '1a11b1'],
0,
],
[
2, // Expected
'a*~*c',
['aAAAAA', 'a123456*c', 'az'],
0,
],
[
3, // Expected
'a*123*b',
['aAAAAA', 'a123456*c', 'a99999123b'],
0,
],
[
1, // Expected
'*',
['aAAAAA', 'a111123456*c', 'qq'],
0,
],
[
2, // Expected
'?',
['aAAAAA', 'a', 'a99999123b'],
0,
],
[
'#N/A', // Expected
'?',
[1, 22, 333],
0,
],
[
3, // Expected
'???',
[1, 22, 'aaa'],
0,
],
[
3, // Expected
'*',
[1, 22, 'aaa'],
0,
],
];