| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361 |
- <?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,
- ],
- [ // Default matchtype
- 4, // Expected
- 4, // Input
- [2, 0, 0, 3],
- null,
- ],
- // 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', 'alembic'],
- 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,
- ],
- [
- '#N/A', // Expected
- 'abc',
- [1, 22, 'aaa'],
- 0,
- ],
- [
- '#N/A', // Expected (Invalid lookup value)
- new DateTime('2021-03-11'),
- [1, 22, 'aaa'],
- 1,
- ],
- [
- '#N/A', // Expected (Invalid match type)
- 'abc',
- [1, 22, 'aaa'],
- 123,
- ],
- [
- '#N/A', // Expected (Empty lookup array)
- 'abc',
- [],
- 1,
- ],
- [
- 8,
- 'A*e',
- ['Aardvark', 'Apple', 'Armadillo', 'Acre', 'Absolve', 'Amplitude', 'Adverse', 'Apartment'],
- -1,
- ],
- [
- 2,
- 'A*e',
- ['Aardvark', 'Apple', 'Armadillo', 'Acre', 'Absolve', 'Amplitude', 'Adverse', 'Apartment'],
- 0,
- ],
- [
- '#N/A',
- 'A*e',
- ['Aardvark', 'Apple', 'Armadillo', 'Acre', 'Absolve', 'Amplitude', 'Adverse', 'Apartment'],
- 1,
- ],
- [
- 8,
- 'A?s*e',
- ['Aardvark', 'Apple', 'Armadillo', 'Acre', 'Absolve', 'Amplitude', 'Adverse', 'Apartment'],
- -1,
- ],
- [
- 5,
- 'A?s*e',
- ['Aardvark', 'Apple', 'Armadillo', 'Acre', 'Absolve', 'Amplitude', 'Adverse', 'Apartment'],
- 0,
- ],
- [
- '#N/A',
- 'A*e',
- ['Aardvark', 'Apple', 'Armadillo', 'Acre', 'Absolve', 'Amplitude', 'Adverse', 'Apartment'],
- 1,
- ],
- [
- 8,
- '*verse',
- ['Obtuse', 'Amuse', 'Obverse', 'Inverse', 'Assurance', 'Amplitude', 'Adverse', 'Apartment'],
- -1,
- ],
- [
- 3,
- '*verse',
- ['Obtuse', 'Amuse', 'Obverse', 'Inverse', 'Assurance', 'Amplitude', 'Adverse', 'Apartment'],
- 0,
- ],
- [
- 3, // Expected
- '*~~*', // contains a tilde
- ['aAAAAA', 'a123456*c', 'abc~xyz', 'alembic'],
- 0,
- ],
- [
- 2, // Expected
- 'abc/123*', // wildcard search contains a forward slash
- ['abc123fff', 'abc/123fff'],
- 0,
- ],
- ];
|