New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Collection::transpose method #8957
Changes from all commits
7a35c65
ea9f73e
8c8e9dc
5d3e66e
4468ffc
c495180
cdd8074
9a57b03
cd8e486
f1344c1
403a904
9b55e33
1d08e82
cefd07c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
<?php | ||
/** | ||
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org) | ||
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) | ||
* | ||
* Licensed under The MIT License | ||
* For full copyright and license information, please see the LICENSE.txt | ||
* Redistributions of files must retain the above copyright notice. | ||
* | ||
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) | ||
* @link http://cakephp.org CakePHP(tm) Project | ||
* @since 3.3.0 | ||
* @license http://www.opensource.org/licenses/mit-license.php MIT License | ||
*/ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you use the standard project file headers. |
||
|
||
namespace Cake\Test\TestCase\Collection\Iterator; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There must be one blank line after the namespace declaration |
||
|
||
use Cake\Collection\Collection; | ||
use Cake\TestSuite\TestCase; | ||
|
||
class TransposeIteratorTest extends TestCase | ||
{ | ||
|
||
public function testTranspose() | ||
{ | ||
$collection = new Collection([ | ||
['Products', '2012', '2013', '2014'], | ||
['Product A', '200', '100', '50'], | ||
['Product B', '300', '200', '100'], | ||
['Product C', '400', '300', '200'], | ||
]); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What happens when the arrays are of uneven lengths? |
||
$transposed = $collection->transpose(); | ||
$expected = [ | ||
['Products', 'Product A', 'Product B', 'Product C'], | ||
['2012', '200', '300', '400'], | ||
['2013', '100', '200', '300'], | ||
['2014', '50', '100', '200'], | ||
]; | ||
|
||
$this->assertEquals($expected, $transposed->toList()); | ||
} | ||
|
||
/** | ||
* Tests that provided arrays do not have even length | ||
* | ||
* @expectedException \LogicException | ||
* @return void | ||
*/ | ||
public function testTransposeUnEvenLengthShouldThrowException() | ||
{ | ||
$collection = new Collection([ | ||
['Products', '2012', '2013', '2014'], | ||
['Product A', '200', '100', '50'], | ||
['Product B', '300'], | ||
['Product C', '400', '300'], | ||
]); | ||
|
||
$collection->transpose(); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
double lines