summaryrefslogtreecommitdiff
path: root/ext/spl/tests
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2004-11-01 00:26:59 +0000
committerMarcus Boerger <helly@php.net>2004-11-01 00:26:59 +0000
commitb9470609ad6ccb27ec38c8dd1fdbe121a41f33b5 (patch)
tree77ed6faf25981c04b8fa5ec03cd07a6a6888b6e2 /ext/spl/tests
parent9626e9859a045d76f4fdd339c61d9c4345758f68 (diff)
downloadphp-git-b9470609ad6ccb27ec38c8dd1fdbe121a41f33b5.tar.gz
- Minor fixes
- Implement AppendIterator in C
Diffstat (limited to 'ext/spl/tests')
-rwxr-xr-xext/spl/tests/iterator_001.phpt39
-rwxr-xr-xext/spl/tests/iterator_007.phpt30
-rwxr-xr-xext/spl/tests/iterator_010.phpt18
-rwxr-xr-xext/spl/tests/iterator_011.phpt51
-rwxr-xr-xext/spl/tests/iterator_012.phpt33
-rwxr-xr-xext/spl/tests/iterator_013.phpt66
6 files changed, 205 insertions, 32 deletions
diff --git a/ext/spl/tests/iterator_001.phpt b/ext/spl/tests/iterator_001.phpt
index 2fd690294e..2239417778 100755
--- a/ext/spl/tests/iterator_001.phpt
+++ b/ext/spl/tests/iterator_001.phpt
@@ -47,7 +47,7 @@ class NumericArrayIterator implements Iterator
$this->i++;
}
- public function greaterThen($comp)
+ public function greaterThan($comp)
{
echo get_class($this) . '::' . __FUNCTION__ . '(' . $comp . ")\n";
return $this->current() > $comp;
@@ -69,7 +69,7 @@ $a = array(1, 2, 3, 4, 5);
$it = new LimitIterator(new NumericArrayIterator($a), 1, 3);
foreach ($it as $v)
{
- print $v . ' is ' . ($it->greaterThen(2) ? 'greater than 2' : 'less than or equal 2') . "\n";
+ print $v . ' is ' . ($it->greaterThan(2) ? 'greater than 2' : 'less than or equal 2') . "\n";
}
echo "===SEEKABLE===\n";
@@ -77,15 +77,16 @@ $a = array(1, 2, 3, 4, 5);
$it = new LimitIterator(new SeekableNumericArrayIterator($a), 1, 3);
foreach($it as $v)
{
- print $v . ' is ' . ($it->greaterThen(2) ? 'greater than 2' : 'less than or equal 2') . "\n";
+ print $v . ' is ' . ($it->greaterThan(2) ? 'greater than 2' : 'less than or equal 2') . "\n";
}
echo "===STACKED===\n";
+echo "Shows '2 is greater than 2' because the test is actually done with the current value which is 3.\n";
$a = array(1, 2, 3, 4, 5);
$it = new CachingIterator(new LimitIterator(new SeekableNumericArrayIterator($a), 1, 3));
foreach($it as $v)
{
- print $v . ' is ' . ($it->greaterThen(2) ? 'greater than 2' : 'less than or equal 2') . "\n";
+ print $v . ' is ' . ($it->greaterThan(2) ? 'greater than 2' : 'less than or equal 2') . "\n";
}
?>
@@ -100,19 +101,22 @@ NumericArrayIterator::valid(true)
NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
-LimitIterator::greaterThen(2)
+NumericArrayIterator::greaterThan(2)
+NumericArrayIterator::current
2 is less than or equal 2
NumericArrayIterator::next
NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
-LimitIterator::greaterThen(2)
+NumericArrayIterator::greaterThan(2)
+NumericArrayIterator::current
3 is greater than 2
NumericArrayIterator::next
NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
-LimitIterator::greaterThen(2)
+NumericArrayIterator::greaterThan(2)
+NumericArrayIterator::current
4 is greater than 2
NumericArrayIterator::next
===SEEKABLE===
@@ -122,22 +126,26 @@ SeekableNumericArrayIterator::seek(1)
NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
-LimitIterator::greaterThen(2)
+SeekableNumericArrayIterator::greaterThan(2)
+NumericArrayIterator::current
2 is less than or equal 2
NumericArrayIterator::next
NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
-LimitIterator::greaterThen(2)
+SeekableNumericArrayIterator::greaterThan(2)
+NumericArrayIterator::current
3 is greater than 2
NumericArrayIterator::next
NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
-LimitIterator::greaterThen(2)
+SeekableNumericArrayIterator::greaterThan(2)
+NumericArrayIterator::current
4 is greater than 2
NumericArrayIterator::next
===STACKED===
+Shows '2 is greater than 2' because the test is actually done with the current value which is 3.
NumericArrayIterator::__construct
NumericArrayIterator::rewind
SeekableNumericArrayIterator::seek(1)
@@ -148,15 +156,18 @@ NumericArrayIterator::next
NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
-CachingIterator::greaterThen(2)
-2 is less than or equal 2
+SeekableNumericArrayIterator::greaterThan(2)
+NumericArrayIterator::current
+2 is greater than 2
NumericArrayIterator::next
NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
-CachingIterator::greaterThen(2)
+SeekableNumericArrayIterator::greaterThan(2)
+NumericArrayIterator::current
3 is greater than 2
NumericArrayIterator::next
-CachingIterator::greaterThen(2)
+SeekableNumericArrayIterator::greaterThan(2)
+NumericArrayIterator::current
4 is greater than 2
===DONE===
diff --git a/ext/spl/tests/iterator_007.phpt b/ext/spl/tests/iterator_007.phpt
index e40e2a245a..eb87977ac9 100755
--- a/ext/spl/tests/iterator_007.phpt
+++ b/ext/spl/tests/iterator_007.phpt
@@ -121,54 +121,48 @@ ArrayIteratorEx::next
ArrayIteratorEx::valid
===1===
NoRewindIteratorEx::rewind
-ArrayIteratorEx::valid
NoRewindIteratorEx::valid
+ArrayIteratorEx::valid
===2===
NoRewindIteratorEx::rewind
-ArrayIteratorEx::valid
-ArrayIteratorEx::current
-ArrayIteratorEx::key
NoRewindIteratorEx::valid
+ArrayIteratorEx::valid
NoRewindIteratorEx::current
+ArrayIteratorEx::current
int(0)
NoRewindIteratorEx::next
ArrayIteratorEx::next
-ArrayIteratorEx::valid
-ArrayIteratorEx::current
-ArrayIteratorEx::key
NoRewindIteratorEx::valid
+ArrayIteratorEx::valid
NoRewindIteratorEx::current
+ArrayIteratorEx::current
int(1)
NoRewindIteratorEx::next
ArrayIteratorEx::next
-ArrayIteratorEx::valid
-ArrayIteratorEx::current
-ArrayIteratorEx::key
NoRewindIteratorEx::valid
+ArrayIteratorEx::valid
NoRewindIteratorEx::current
+ArrayIteratorEx::current
int(2)
===3===
NoRewindIteratorEx::rewind
-ArrayIteratorEx::valid
-ArrayIteratorEx::current
-ArrayIteratorEx::key
NoRewindIteratorEx::valid
+ArrayIteratorEx::valid
NoRewindIteratorEx::current
int(2)
NoRewindIteratorEx::next
ArrayIteratorEx::next
-ArrayIteratorEx::valid
-ArrayIteratorEx::current
-ArrayIteratorEx::key
NoRewindIteratorEx::valid
+ArrayIteratorEx::valid
NoRewindIteratorEx::current
+ArrayIteratorEx::current
int(3)
NoRewindIteratorEx::next
ArrayIteratorEx::next
-ArrayIteratorEx::valid
NoRewindIteratorEx::valid
+ArrayIteratorEx::valid
===4===
NoRewindIteratorEx::rewind
-ArrayIteratorEx::valid
NoRewindIteratorEx::valid
+ArrayIteratorEx::valid
===DONE===
diff --git a/ext/spl/tests/iterator_010.phpt b/ext/spl/tests/iterator_010.phpt
new file mode 100755
index 0000000000..39d1000f62
--- /dev/null
+++ b/ext/spl/tests/iterator_010.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SPL: EmptyIterator
+--FILE--
+<?php
+
+echo "===EmptyIterator===\n";
+
+foreach(new LimitIterator(new EmptyIterator(), 0, 3) as $key => $val)
+{
+ echo "$key=>$val\n";
+}
+
+?>
+===DONE===
+<?php exit(0);
+--EXPECTF--
+===EmptyIterator===
+===DONE===
diff --git a/ext/spl/tests/iterator_011.phpt b/ext/spl/tests/iterator_011.phpt
new file mode 100755
index 0000000000..9c234bb11d
--- /dev/null
+++ b/ext/spl/tests/iterator_011.phpt
@@ -0,0 +1,51 @@
+--TEST--
+SPL: InfiniteIterator
+--FILE--
+<?php
+
+echo "===EmptyIterator===\n";
+
+foreach(new LimitIterator(new InfiniteIterator(new EmptyIterator()), 0, 3) as $key=>$val)
+{
+ echo "$key=>$val\n";
+}
+
+echo "===InfiniteIterator===\n";
+
+$it = new ArrayIterator(array(0 => 'A', 1 => 'B', 2 => 'C', 3 => 'D'));
+$it = new InfiniteIterator($it);
+$it = new LimitIterator($it, 2, 5);
+foreach($it as $val=>$key)
+{
+ echo "$val=>$key\n";
+}
+
+echo "===Infinite/LimitIterator===\n";
+
+$it = new ArrayIterator(array(0 => 'A', 1 => 'B', 2 => 'C', 3 => 'D'));
+$it = new LimitIterator($it, 1, 2);
+$it = new InfiniteIterator($it);
+$it = new LimitIterator($it, 2, 5);
+foreach($it as $val=>$key)
+{
+ echo "$val=>$key\n";
+}
+
+?>
+===DONE===
+<?php exit(0);
+--EXPECTF--
+===EmptyIterator===
+===InfiniteIterator===
+2=>C
+3=>D
+0=>A
+1=>B
+2=>C
+===Infinite/LimitIterator===
+1=>B
+2=>C
+1=>B
+2=>C
+1=>B
+===DONE===
diff --git a/ext/spl/tests/iterator_012.phpt b/ext/spl/tests/iterator_012.phpt
new file mode 100755
index 0000000000..09842b0988
--- /dev/null
+++ b/ext/spl/tests/iterator_012.phpt
@@ -0,0 +1,33 @@
+--TEST--
+SPL: NoRweindIterator
+--FILE--
+<?php
+
+echo "===Current===\n";
+
+$it = new NoRewindIterator(new ArrayIterator(array(0 => 'A', 1 => 'B', 2 => 'C')));
+
+echo $it->key() . '=>' . $it->current() . "\n";
+
+echo "===Next===\n";
+
+$it->next();
+
+echo "===Foreach===\n";
+
+foreach($it as $key=>$val)
+{
+ echo "$key=>$val\n";
+}
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+===Current===
+0=>A
+===Next===
+===Foreach===
+1=>B
+2=>C
+===DONE===
diff --git a/ext/spl/tests/iterator_013.phpt b/ext/spl/tests/iterator_013.phpt
new file mode 100755
index 0000000000..119631c000
--- /dev/null
+++ b/ext/spl/tests/iterator_013.phpt
@@ -0,0 +1,66 @@
+--TEST--
+SPL: AppendIterator
+--FILE--
+<?php
+
+echo "===Empty===\n";
+
+$it = new AppendIterator;
+
+foreach($it as $key=>$val)
+{
+ echo "$key=>$val\n";
+}
+
+echo "===Append===\n";
+
+$it->append(new ArrayIterator(array(0 => 'A', 1 => 'B')));
+
+foreach($it as $key=>$val)
+{
+ echo "$key=>$val\n";
+}
+
+echo "===Rewind===\n";
+
+foreach($it as $key=>$val)
+{
+ echo "$key=>$val\n";
+}
+
+echo "===Append===\n";
+
+$it->append(new ArrayIterator(array(2 => 'C', 3 => 'D')));
+
+foreach(new NoRewindIterator($it) as $key=>$val)
+{
+ echo "$key=>$val\n";
+}
+
+echo "===Rewind===\n";
+
+foreach($it as $key=>$val)
+{
+ echo "$key=>$val\n";
+}
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+===Empty===
+===Append===
+0=>A
+1=>B
+===Rewind===
+0=>A
+1=>B
+===Append===
+2=>C
+3=>D
+===Rewind===
+0=>A
+1=>B
+2=>C
+3=>D
+===DONE===