ChainIteratorTest::testUseKeys()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 8
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace itertools;
4
5
use EmptyIterator;
6
use ArrayIterator;
7
use PHPUnit_Framework_TestCase;
8
9
10
class ChainIteratorTest extends PHPUnit_Framework_TestCase
11
{
12
	/** @test */
13
	public function testBasicFunctionality()
14
	{
15
		$it = new ChainIterator(new ArrayIterator(array(
16
			new RangeIterator(0, 10),
17
			new EmptyIterator(),
18
			new RangeIterator(11, 20),
19
		)));
20
		$this->assertEquals(range(0, 20), iterator_to_array($it, false));
21
		$this->assertTrue($it->getInnerIterator() instanceof ArrayIterator);
22
	}
23
24
	/** @test */
25
	public function testUseKeys()
26
	{
27
		$it = new ChainIterator(new ArrayIterator(array(
28
			new RangeIterator(0, 10),
29
			new RangeIterator(11, 20),
30
		)));
31
		$this->assertEquals(11, count(iterator_to_array($it)));
32
	}
33
34
	/** @test */
35
	public function testDontUseKeys()
36
	{
37
		$it = new ChainIterator(new ArrayIterator(array(
38
			new RangeIterator(0, 10),
39
			new RangeIterator(11, 20),
40
		)), ChainIterator::DONT_USE_KEYS);
41
		$this->assertEquals(range(0, 20), iterator_to_array($it));
42
	}
43
}
44
45