JBZoo\PHPUnit\BenchmarkTest::testForReadme PHP Method

testForReadme() public method

public testForReadme ( )
    public function testForReadme()
    {
        $times = 10000;
        $this->_data = array('prop' => uniqid('', true), 'prop1' => uniqid('', true), 'prop2' => uniqid('', true), 'prop3' => uniqid('', true), 'prop4' => uniqid('', true), 'inner' => array('prop' => uniqid('', true), 'prop1' => uniqid('', true), 'prop2' => uniqid('', true), 'prop3' => uniqid('', true), 'prop4' => uniqid('', true), 'inner' => array('prop' => uniqid('', true), 'prop1' => uniqid('', true), 'prop2' => uniqid('', true), 'prop3' => uniqid('', true), 'prop4' => uniqid('', true))));
        $array = $this->_data;
        $data = new Data($this->_data);
        $arrobj = new \ArrayObject($this->_data);
        Benchmark::compare(array('Array' => function () use($array) {
            $var = $array;
            // for clean experiment
            return $var;
        }, 'ArrayObject' => function () use($array) {
            $var = new \ArrayObject($array);
            return $var;
        }, 'Data' => function () use($array) {
            $var = new Data($array);
            return $var;
        }), array('name' => 'For Readme: Create', 'count' => $times));
        Benchmark::compare(array('Array' => function () use($array) {
            return array_key_exists('prop', $array) ? $array['prop'] : null;
        }, 'ArrayObject' => function () use($arrobj) {
            return $arrobj->offsetGet('prop');
        }, 'Data' => function () use($data) {
            return $data->get('prop');
        }), array('name' => 'For Readme: Get by key', 'count' => $times));
        Benchmark::compare(array('Array' => function () use($array) {
            if (array_key_exists('inner', $array) && array_key_exists('inner', $array['inner']) && array_key_exists('prop', $array['inner']['inner'])) {
                return $array['inner']['inner']['prop'];
            }
            return 42;
        }, 'ArrayObject' => function () use($arrobj) {
            if (array_key_exists('inner', $arrobj) && array_key_exists('inner', $arrobj['inner']) && array_key_exists('prop', $arrobj['inner']['inner'])) {
                return $arrobj['inner']['inner']['prop'];
            }
            return 42;
        }, 'Data' => function () use($data) {
            return $data->find('inner.inner.prop', 42);
        }), array('name' => 'For Readme: Find nested defined var', 'count' => $times));
        Benchmark::compare(array('Array' => function () use($array) {
            if (array_key_exists('inner', $array) && array_key_exists('inner', $array['inner']) && array_key_exists('undefined', $array['inner']['inner'])) {
                return $array['inner']['inner']['prop'];
            }
            return 42;
        }, 'ArrayObject' => function () use($arrobj) {
            if (array_key_exists('inner', $arrobj) && array_key_exists('inner', $arrobj['inner']) && array_key_exists('undefined', $arrobj['inner']['inner'])) {
                return $arrobj['inner']['inner']['undefined'];
            }
            return 42;
        }, 'Data' => function () use($data) {
            return $data->find('inner.inner.undefined', 42);
        }), array('name' => 'For Readme: Find nested undefined var', 'count' => $times));
    }