helly           Tue Apr 13 15:06:39 2004 EDT

  Added files:                 
    /php-src/ext/spl/tests      array_001.phpt array_002.phpt array_003.phpt 
                                array_004.phpt array_005.phpt 

  Removed files:               
    /php-src/ext/spl/tests      array_iterator.phpt array_object.phpt 
                                array_object_iterator.phpt 
  Log:
  New tests (and ordering of tests)
  

http://cvs.php.net/co.php/php-src/ext/spl/tests/array_001.phpt?r=1.1&p=1
Index: php-src/ext/spl/tests/array_001.phpt
+++ php-src/ext/spl/tests/array_001.phpt
--TEST--
SPL: ArrayObject
--SKIPIF--
<?php if (!extension_loaded("spl")) print "skip"; ?>
--FILE--
<?php

$ar = array(0=>0, 1=>1);
$ar = new ArrayObject($ar);

var_dump($ar);

$ar[2] = 2;
var_dump($ar[2]);
var_dump($ar["3"] = 3);

var_dump(array_merge((array)$ar, array(4=>4, 5=>5)));

var_dump($ar["a"] = "a");

var_dump($ar);
var_dump($ar[0]);
var_dump($ar[6]);
var_dump($ar["b"]);

unset($ar[1]);
unset($ar["3"]);
unset($ar["a"]);
unset($ar[7]);
unset($ar["c"]);
var_dump($ar);

$ar[] = '3';
$ar[] = 4;
var_dump($ar);

?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
object(ArrayObject)#1 (2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}
int(2)
int(3)
array(6) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  int(4)
  [5]=>
  int(5)
}
string(1) "a"
object(ArrayObject)#1 (5) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  ["a"]=>
  string(1) "a"
}
int(0)

Notice: Undefined offset:  6 in %sarray_object.php on line %d
NULL

Notice: Undefined index:  b in %sarray_object.php on line %d
NULL

Notice: Undefined offset:  7 in %sarray_object.php on line %d

Notice: Undefined index:  c in %sarray_object.php on line %d
object(ArrayObject)#1 (2) {
  [0]=>
  int(0)
  [2]=>
  int(2)
}
object(ArrayObject)#1 (4) {
  [0]=>
  int(0)
  [2]=>
  int(2)
  [4]=>
  string(1) "3"
  [5]=>
  int(4)
}
===DONE===

http://cvs.php.net/co.php/php-src/ext/spl/tests/array_002.phpt?r=1.1&p=1
Index: php-src/ext/spl/tests/array_002.phpt
+++ php-src/ext/spl/tests/array_002.phpt
--TEST--
SPL: ArrayObject copy constructor
--SKIPIF--
<?php if (!extension_loaded("spl")) print "skip"; ?>
--FILE--
<?php

$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$object = new ArrayObject($array);
$object[] = 'four';

$arrayObject = new ArrayObject($object);

$arrayObject[] = 'five';

var_dump($arrayObject);

?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
object(ArrayObject)#%d (5) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
  [4]=>
  string(4) "four"
  [5]=>
  string(4) "five"
}
===DONE===

http://cvs.php.net/co.php/php-src/ext/spl/tests/array_003.phpt?r=1.1&p=1
Index: php-src/ext/spl/tests/array_003.phpt
+++ php-src/ext/spl/tests/array_003.phpt
--TEST--
SPL: ArrayObject from object
--SKIPIF--
<?php if (!extension_loaded("spl")) print "skip"; ?>
--FILE--
<?php

class test
{
        public    $pub = "public";
        protected $pro = "protected";
        private   $pri = "private";
        
        function __construct()
        {
                $this->imp = "implicit";
        }
};

$test = new test;
$test->dyn = "dynamic";

print_r($test);

$object = new ArrayObject($test);

print_r($object);

?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
test Object
(
    [pub] => public
    [pro:protected] => protected
    [pri:private] => private
    [imp] => implicit
    [dyn] => dynamic
)
ArrayObject Object
(
    [pub] => public
    [pro:protected] => protected
    [pri:private] => private
    [imp] => implicit
    [dyn] => dynamic
)
===DONE===

http://cvs.php.net/co.php/php-src/ext/spl/tests/array_004.phpt?r=1.1&p=1
Index: php-src/ext/spl/tests/array_004.phpt
+++ php-src/ext/spl/tests/array_004.phpt
--TEST--
SPL: ArrayIterator
--SKIPIF--
<?php if (!extension_loaded("spl")) print "skip"; ?>
--INI--
allow_call_time_pass_reference=1
--FILE--
<?php

echo "==Normal==\n";

$arr = array(0=>0, 1=>1, 2=>2);
$obj = new ArrayObject($arr);

foreach($obj as $ak=>$av) {
        foreach($obj as $bk=>$bv) {
                if ($ak==0 && $bk==0) {
                        $arr[0] = "modify";
                }
                echo "$ak=>$av - $bk=>$bv\n";
        }
}

echo "==UseRef==\n";

$arr = array(0=>0, 1=>1, 2=>2);
$obj = new ArrayObject(&$arr);

foreach($obj as $ak=>$av) {
        foreach($obj as $bk=>$bv) {
                if ($ak==0 && $bk==0) {
                        $arr[0] = "modify";
                }
                echo "$ak=>$av - $bk=>$bv\n";
        }
}

echo "==Modify==\n";

$arr = array(0=>0, 1=>1, 2=>2);
$obj = new ArrayObject(&$arr);

foreach($obj as $ak=>$av) {
        foreach($obj as $bk=>$bv) {
                if ($ak==0 && $bk==0) {
                        $arr[0] = "modify";
                }
                echo "$ak=>$av - $bk=>$bv\n";
        }
}

echo "==Delete==\n";

$arr = array(0=>0, 1=>1, 2=>2);
$obj = new ArrayObject(&$arr);

foreach($obj as $ak=>$av) {
        foreach($obj as $bk=>$bv) {
                if ($ak==1 && $bk==1) {
                        unset($arr[1]);
                }
                echo "$ak=>$av - $bk=>$bv\n";
        }
}

echo "==Change==\n";

$arr = array(0=>0, 1=>1, 2=>2);
$obj = new ArrayObject(&$arr);

foreach($obj as $ak=>$av) {
        foreach($obj as $bk=>$bv) {
                if ($ak==1 && $bk==1) {
                        $arr = NULL;
                }
                echo "$ak=>$av - $bk=>$bv\n";
        }
}

echo "Done\n";
?>
--EXPECTF--
==Normal==
0=>0 - 0=>0
0=>0 - 1=>1
0=>0 - 2=>2
1=>1 - 0=>0
1=>1 - 1=>1
1=>1 - 2=>2
2=>2 - 0=>0
2=>2 - 1=>1
2=>2 - 2=>2
==UseRef==
0=>0 - 0=>0
0=>0 - 1=>1
0=>0 - 2=>2
1=>1 - 0=>modify
1=>1 - 1=>1
1=>1 - 2=>2
2=>2 - 0=>modify
2=>2 - 1=>1
2=>2 - 2=>2
==Modify==
0=>0 - 0=>0
0=>0 - 1=>1
0=>0 - 2=>2
1=>1 - 0=>modify
1=>1 - 1=>1
1=>1 - 2=>2
2=>2 - 0=>modify
2=>2 - 1=>1
2=>2 - 2=>2
==Delete==
0=>0 - 0=>0
0=>0 - 1=>1
0=>0 - 2=>2
1=>1 - 0=>0
1=>1 - 1=>1

Notice: ArrayIterator::next(): Array was modified outside object and internal position 
is no longer valid in %sarray_iterator.php on line %d
1=>1 - 0=>0
1=>1 - 2=>2

Notice: ArrayIterator::next(): Array was modified outside object and internal position 
is no longer valid in %sarray_iterator.php on line %d
0=>0 - 0=>0
0=>0 - 2=>2
2=>2 - 0=>0
2=>2 - 2=>2
==Change==
0=>0 - 0=>0
0=>0 - 1=>1
0=>0 - 2=>2
1=>1 - 0=>0
1=>1 - 1=>1

Notice: ArrayIterator::next(): Array was modified outside object and is no longer an 
array in %sarray_iterator.php on line %d

Notice: ArrayIterator::valid(): Array was modified outside object and is no longer an 
array in %sarray_iterator.php on line %d

Notice: ArrayIterator::next(): Array was modified outside object and is no longer an 
array in %sarray_iterator.php on line %d

Notice: ArrayIterator::valid(): Array was modified outside object and is no longer an 
array in %sarray_iterator.php on line %d
Done

http://cvs.php.net/co.php/php-src/ext/spl/tests/array_005.phpt?r=1.1&p=1
Index: php-src/ext/spl/tests/array_005.phpt
+++ php-src/ext/spl/tests/array_005.phpt
--TEST--
SPL: ArrayObject/Iterator interaction
--SKIPIF--
<?php if (!extension_loaded("spl")) print "skip"; ?>
--FILE--
<?php

class Student
{
        private $id;
        private $name;

    public function __construct($id, $name)
    {
        $this->id = $id;
        $this->name = $name;
    }

        public function __toString()
        {
                return $this->id . ', ' . $this->name;
        }
        
        public function getId()
        {
                return $this->id;
        }
}

class StudentIdFilter extends FilterIterator
{
        private $id;

        public function __construct(ArrayObject $students, Student $other)
        {
                FilterIterator::__construct($students->getIterator());
                $this->id = $other->getId();
        }
        
        public function accept()
        {
                echo "ACCEPT ".$this->current()->getId()." == ".$this->id."\n";
                return $this->current()->getId() == $this->id;
        }
}

class StudentList implements IteratorAggregate
{
        private $students;
        
        public function __construct()
        {
                $this->students = new ArrayObject(array());
        }
        
        public function add(Student $student)
        {
                if (!$this->contains($student)) {
                        $this->students[] = $student;
                }
        }
        
        public function contains(Student $student)
        {
                foreach ($this->students as $s)
                {
                        if ($s->getId() == $student->getId()) {
                                return true;
                        }
                }
                return false;
        }
        
        public function getIterator() {
                return $this->students->getIterator();
        }
}

$students = new StudentList();
$students->add(new Student('01234123', 'Joe'));
$students->add(new Student('00000014', 'Bob'));
$students->add(new Student('00000014', 'Foo'));

foreach ($students as $student) {
        echo $student, "\n";
}
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
01234123, Joe
00000014, Bob
===DONE===

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to