Пример #1
0
 public function testQueue()
 {
     $directory = new Directory\Filesystem(__DIR__ . '/_source/_files');
     $segmentsList = array('_0', '_1', '_2', '_3', '_4');
     $segmentInfoQueue = new Index\TermsPriorityQueue();
     foreach ($segmentsList as $segmentName) {
         $segmentInfo = new Index\SegmentInfo($directory, $segmentName, 2);
         $segmentInfo->resetTermsStream();
         // Skip "empty" segments
         if ($segmentInfo->currentTerm() !== null) {
             $segmentInfoQueue->put($segmentInfo);
         }
     }
     $result = array();
     while (($segmentInfo = $segmentInfoQueue->pop()) !== null) {
         if ($segmentInfoQueue->top() === null || $segmentInfoQueue->top()->currentTerm()->key() != $segmentInfo->currentTerm()->key()) {
             // We got new term
             $result[] = $segmentInfo->currentTerm();
         }
         $segmentInfo->nextTerm();
         // check, if segment dictionary is finished
         if ($segmentInfo->currentTerm() !== null) {
             // Put segment back into the priority queue
             $segmentInfoQueue->put($segmentInfo);
         }
     }
     $this->assertTrue($result == array(new Index\Term('a', 'contents'), new Index\Term('about', 'contents'), new Index\Term('above', 'contents'), new Index\Term('absolutely', 'contents'), new Index\Term('accept', 'contents'), new Index\Term('accesskey', 'contents'), new Index\Term('account', 'contents'), new Index\Term('accounts', 'contents'), new Index\Term('adding', 'contents'), new Index\Term('additional', 'contents'), new Index\Term('adresses', 'contents'), new Index\Term('advised', 'contents'), new Index\Term('after', 'contents'), new Index\Term('alan', 'contents'), new Index\Term('alberton', 'contents'), new Index\Term('alexander', 'contents'), new Index\Term('align', 'contents'), new Index\Term('alink', 'contents'), new Index\Term('all', 'contents'), new Index\Term('alphabetic', 'contents'), new Index\Term('already', 'contents'), new Index\Term('also', 'contents'), new Index\Term('always', 'contents'), new Index\Term('amazon', 'contents'), new Index\Term('an', 'contents'), new Index\Term('and', 'contents'), new Index\Term('annoying', 'contents'), new Index\Term('another', 'contents'), new Index\Term('any', 'contents'), new Index\Term('apart', 'contents'), new Index\Term('api', 'contents'), new Index\Term('appreciate', 'contents'), new Index\Term('are', 'contents'), new Index\Term('arising', 'contents'), new Index\Term('as', 'contents'), new Index\Term('asked', 'contents'), new Index\Term('at', 'contents'), new Index\Term('attach', 'contents'), new Index\Term('attachments', 'contents'), new Index\Term('authors', 'contents'), new Index\Term('available', 'contents'), new Index\Term('b', 'contents'), new Index\Term('back', 'contents'), new Index\Term('backwards', 'contents'), new Index\Term('bar', 'contents'), new Index\Term('base', 'contents'), new Index\Term('be', 'contents'), new Index\Term('beaver', 'contents'), new Index\Term('because', 'contents'), new Index\Term('been', 'contents'), new Index\Term('before', 'contents'), new Index\Term('bgcolor', 'contents'), new Index\Term('binary', 'contents'), new Index\Term('blockquote', 'contents'), new Index\Term('body', 'contents'), new Index\Term('book', 'contents'), new Index\Term('border', 'contents'), new Index\Term('bottom', 'contents'), new Index\Term('break', 'contents'), new Index\Term('brought', 'contents'), new Index\Term('browser', 'contents'), new Index\Term('bug', 'contents'), new Index\Term('bugs', 'contents'), new Index\Term('business', 'contents'), new Index\Term('but', 'contents'), new Index\Term('buy', 'contents'), new Index\Term('buying', 'contents'), new Index\Term('by', 'contents'), new Index\Term('c', 'contents'), new Index\Term('can', 'contents'), new Index\Term('care', 'contents'), new Index\Term('carefully', 'contents'), new Index\Term('case', 'contents'), new Index\Term('caused', 'contents'), new Index\Term('cc', 'contents'), new Index\Term('cd', 'contents'), new Index\Term('cellpadding', 'contents'), new Index\Term('cellspacing', 'contents'), new Index\Term('center', 'contents'), new Index\Term('certain', 'contents'), new Index\Term('chances', 'contents'), new Index\Term('change', 'contents'), new Index\Term('changed', 'contents'), new Index\Term('changes', 'contents'), new Index\Term('changing', 'contents'), new Index\Term('chapter', 'contents'), new Index\Term('charset', 'contents'), new Index\Term('check', 'contents'), new Index\Term('class', 'contents'), new Index\Term('classes', 'contents'), new Index\Term('clay', 'contents'), new Index\Term('clear', 'contents'), new Index\Term('click', 'contents'), new Index\Term('co', 'contents'), new Index\Term('code', 'contents'), new Index\Term('coding', 'contents'), new Index\Term('colspan', 'contents'), new Index\Term('com', 'contents'), new Index\Term('commands', 'contents'), new Index\Term('comment', 'contents'), new Index\Term('community', 'contents'), new Index\Term('company', 'contents'), new Index\Term('compatibility', 'contents'), new Index\Term('compatible', 'contents'), new Index\Term('components', 'contents'), new Index\Term('conditions', 'contents'), new Index\Term('consequential', 'contents'), new Index\Term('considered', 'contents'), new Index\Term('consists', 'contents'), new Index\Term('contact', 'contents'), new Index\Term('contains', 'contents'), new Index\Term('content', 'contents'), new Index\Term('contents', 'contents'), new Index\Term('contract', 'contents'), new Index\Term('contribute', 'contents'), new Index\Term('contributed', 'contents'), new Index\Term('contributing', 'contents'), new Index\Term('contributors', 'contents'), new Index\Term('convissor', 'contents'), new Index\Term('copyright', 'contents'), new Index\Term('core', 'contents'), new Index\Term('costa', 'contents'), new Index\Term('could', 'contents'), new Index\Term('cox', 'contents'), new Index\Term('create', 'contents'), new Index\Term('creating', 'contents'), new Index\Term('cvs', 'contents'), new Index\Term('cvsread', 'contents'), new Index\Term('d', 'contents'), new Index\Term('damage', 'contents'), new Index\Term('damages', 'contents'), new Index\Term('daniel', 'contents'), new Index\Term('data', 'contents'), new Index\Term('date', 'contents'), new Index\Term('david', 'contents'), new Index\Term('depends', 'contents'), new Index\Term('derivative', 'contents'), new Index\Term('derived', 'contents'), new Index\Term('describes', 'contents'), new Index\Term('details', 'contents'), new Index\Term('detection', 'contents'), new Index\Term('dev', 'contents'), new Index\Term('developer', 'contents'), new Index\Term('developers', 'contents'), new Index\Term('diff', 'contents'), new Index\Term('different', 'contents'), new Index\Term('direct', 'contents'), new Index\Term('disclaimed', 'contents'), new Index\Term('disclaimer', 'contents'), new Index\Term('distributed', 'contents'), new Index\Term('distribution', 'contents'), new Index\Term('div', 'contents'), new Index\Term('dl', 'contents'), new Index\Term('do', 'contents'), new Index\Term('doc', 'contents'), new Index\Term('docblock', 'contents'), new Index\Term('docbook', 'contents'), new Index\Term('docs', 'contents'), new Index\Term('document', 'contents'), new Index\Term('documentation', 'contents'), new Index\Term('does', 'contents'), new Index\Term('doesn', 'contents'), new Index\Term('don', 'contents'), new Index\Term('double', 'contents'), new Index\Term('dt', 'contents'), new Index\Term('dumbill', 'contents'), new Index\Term('each', 'contents'), new Index\Term('easiest', 'contents'), new Index\Term('easy', 'contents'), new Index\Term('edd', 'contents'), new Index\Term('edit', 'contents'), new Index\Term('eeeeee', 'contents'), new Index\Term('email', 'contents'), new Index\Term('endorse', 'contents'), new Index\Term('english', 'contents'), new Index\Term('equal', 'contents'), new Index\Term('equiv', 'contents'), new Index\Term('essential', 'contents'), new Index\Term('even', 'contents'), new Index\Term('event', 'contents'), new Index\Term('everyone', 'contents'), new Index\Term('example', 'contents'), new Index\Term('exemplary', 'contents'), new Index\Term('existing', 'contents'), new Index\Term('expand', 'contents'), new Index\Term('explanation', 'contents'), new Index\Term('explanations', 'contents'), new Index\Term('explicit', 'contents'), new Index\Term('express', 'contents'), new Index\Term('extension', 'contents'), new Index\Term('fairly', 'contents'), new Index\Term('faq', 'contents'), new Index\Term('feature', 'contents'), new Index\Term('feedback', 'contents'), new Index\Term('feel', 'contents'), new Index\Term('ff', 'contents'), new Index\Term('ffffff', 'contents'), new Index\Term('file', 'contents'), new Index\Term('fill', 'contents'), new Index\Term('financial', 'contents'), new Index\Term('find', 'contents'), new Index\Term('fine', 'contents'), new Index\Term('finished', 'contents'), new Index\Term('first', 'contents'), new Index\Term('fitness', 'contents'), new Index\Term('fix', 'contents'), new Index\Term('fixed', 'contents'), new Index\Term('following', 'contents'), new Index\Term('foo', 'contents'), new Index\Term('footer', 'contents'), new Index\Term('for', 'contents'), new Index\Term('force', 'contents'), new Index\Term('forget', 'contents'), new Index\Term('form', 'contents'), new Index\Term('forms', 'contents'), new Index\Term('forth', 'contents'), new Index\Term('found', 'contents'), new Index\Term('free', 'contents'), new Index\Term('frequently', 'contents'), new Index\Term('from', 'contents'), new Index\Term('front', 'contents'), new Index\Term('fully', 'contents'), new Index\Term('functionality', 'contents'), new Index\Term('generally', 'contents'), new Index\Term('generator', 'contents'), new Index\Term('giving', 'contents'), new Index\Term('go', 'contents'), new Index\Term('good', 'contents'), new Index\Term('goods', 'contents'), new Index\Term('gregory', 'contents'), new Index\Term('groundbraking', 'contents'), new Index\Term('group', 'contents'), new Index\Term('guide', 'contents'), new Index\Term('h', 'contents'), new Index\Term('happy', 'contents'), new Index\Term('has', 'contents'), new Index\Term('hasn', 'contents'), new Index\Term('have', 'contents'), new Index\Term('head', 'contents'), new Index\Term('header', 'contents'), new Index\Term('help', 'contents'), new Index\Term('helping', 'contents'), new Index\Term('her', 'contents'), new Index\Term('hesitate', 'contents'), new Index\Term('his', 'contents'), new Index\Term('holder', 'contents'), new Index\Term('holders', 'contents'), new Index\Term('home', 'contents'), new Index\Term('homepage', 'contents'), new Index\Term('how', 'contents'), new Index\Term('however', 'contents'), new Index\Term('hr', 'contents'), new Index\Term('href', 'contents'), new Index\Term('html', 'contents'), new Index\Term('http', 'contents'), new Index\Term('i', 'contents'), new Index\Term('if', 'contents'), new Index\Term('immoral', 'contents'), new Index\Term('implied', 'contents'), new Index\Term('important', 'contents'), new Index\Term('improvement', 'contents'), new Index\Term('improving', 'contents'), new Index\Term('in', 'contents'), new Index\Term('incidental', 'contents'), new Index\Term('include', 'contents'), new Index\Term('including', 'contents'), new Index\Term('independent', 'contents'), new Index\Term('index', 'contents'), new Index\Term('indirect', 'contents'), new Index\Term('information', 'contents'), new Index\Term('install', 'contents'), new Index\Term('installation', 'contents'), new Index\Term('installer', 'contents'), new Index\Term('interruption', 'contents'), new Index\Term('into', 'contents'), new Index\Term('introduce', 'contents'), new Index\Term('introduction', 'contents'), new Index\Term('is', 'contents'), new Index\Term('iso', 'contents'), new Index\Term('it', 'contents'), new Index\Term('its', 'contents'), new Index\Term('jansen', 'contents'), new Index\Term('jon', 'contents'), new Index\Term('keep', 'contents'), new Index\Term('knowles', 'contents'), new Index\Term('lack', 'contents'), new Index\Term('languages', 'contents'), new Index\Term('later', 'contents'), new Index\Term('latest', 'contents'), new Index\Term('left', 'contents'), new Index\Term('legalnotice', 'contents'), new Index\Term('li', 'contents'), new Index\Term('liability', 'contents'), new Index\Term('liable', 'contents'), new Index\Term('license', 'contents'), new Index\Term('licenses', 'contents'), new Index\Term('like', 'contents'), new Index\Term('limited', 'contents'), new Index\Term('link', 'contents'), new Index\Term('list', 'contents'), new Index\Term('listed', 'contents'), new Index\Term('lists', 'contents'), new Index\Term('literal', 'contents'), new Index\Term('ll', 'contents'), new Index\Term('login', 'contents'), new Index\Term('look', 'contents'), new Index\Term('lorenzo', 'contents'), new Index\Term('loss', 'contents'), new Index\Term('loveless', 'contents'), new Index\Term('mail', 'contents'), new Index\Term('mailinglist', 'contents'), new Index\Term('mailto', 'contents'), new Index\Term('maintain', 'contents'), new Index\Term('maintainer', 'contents'), new Index\Term('maintainers', 'contents'), new Index\Term('make', 'contents'), new Index\Term('makes', 'contents'), new Index\Term('manual', 'contents'), new Index\Term('martin', 'contents'), new Index\Term('material', 'contents'), new Index\Term('materials', 'contents'), new Index\Term('may', 'contents'), new Index\Term('mean', 'contents'), new Index\Term('means', 'contents'), new Index\Term('meet', 'contents'), new Index\Term('merchantability', 'contents'), new Index\Term('merz', 'contents'), new Index\Term('met', 'contents'), new Index\Term('meta', 'contents'), new Index\Term('michael', 'contents'), new Index\Term('migrating', 'contents'), new Index\Term('mika', 'contents'), new Index\Term('mime', 'contents'), new Index\Term('modification', 'contents'), new Index\Term('modified', 'contents'), new Index\Term('modular', 'contents'), new Index\Term('more', 'contents'), new Index\Term('must', 'contents'), new Index\Term('n', 'contents'), new Index\Term('name', 'contents'), new Index\Term('names', 'contents'), new Index\Term('navfooter', 'contents'), new Index\Term('navheader', 'contents'), new Index\Term('navigation', 'contents'), new Index\Term('nbsp', 'contents'), new Index\Term('need', 'contents'), new Index\Term('negligence', 'contents'), new Index\Term('neither', 'contents'), new Index\Term('net', 'contents'), new Index\Term('neufeind', 'contents'), new Index\Term('new', 'contents'), new Index\Term('newpackage', 'contents'), new Index\Term('next', 'contents'), new Index\Term('no', 'contents'), new Index\Term('nor', 'contents'), new Index\Term('not', 'contents'), new Index\Term('note', 'contents'), new Index\Term('notice', 'contents'), new Index\Term('now', 'contents'), new Index\Term('obtain', 'contents'), new Index\Term('obtained', 'contents'), new Index\Term('of', 'contents'), new Index\Term('on', 'contents'), new Index\Term('one', 'contents'), new Index\Term('only', 'contents'), new Index\Term('open', 'contents'), new Index\Term('opencontent', 'contents'), new Index\Term('openpub', 'contents'), new Index\Term('or', 'contents'), new Index\Term('order', 'contents'), new Index\Term('org', 'contents'), new Index\Term('originally', 'contents'), new Index\Term('other', 'contents'), new Index\Term('otherwise', 'contents'), new Index\Term('our', 'contents'), new Index\Term('out', 'contents'), new Index\Term('outlook', 'contents'), new Index\Term('p', 'contents'), new Index\Term('package', 'contents'), new Index\Term('packages', 'contents'), new Index\Term('page', 'contents'), new Index\Term('paper', 'contents'), new Index\Term('parise', 'contents'), new Index\Term('part', 'contents'), new Index\Term('particular', 'contents'), new Index\Term('password', 'contents'), new Index\Term('patch', 'contents'), new Index\Term('patches', 'contents'), new Index\Term('pear', 'contents'), new Index\Term('people', 'contents'), new Index\Term('perform', 'contents'), new Index\Term('permission', 'contents'), new Index\Term('permitted', 'contents'), new Index\Term('persists', 'contents'), new Index\Term('php', 'contents'), new Index\Term('phpfi', 'contents'), new Index\Term('plain', 'contents'), new Index\Term('please', 'contents'), new Index\Term('possibility', 'contents'), new Index\Term('post', 'contents'), new Index\Term('postinstall', 'contents'), new Index\Term('ppm', 'contents'), new Index\Term('pre', 'contents'), new Index\Term('preface', 'contents'), new Index\Term('prefixed', 'contents'), new Index\Term('presently', 'contents'), new Index\Term('prev', 'contents'), new Index\Term('previous', 'contents'), new Index\Term('prior', 'contents'), new Index\Term('process', 'contents'), new Index\Term('procurement', 'contents'), new Index\Term('products', 'contents'), new Index\Term('profits', 'contents'), new Index\Term('prohibited', 'contents'), new Index\Term('project', 'contents'), new Index\Term('promote', 'contents'), new Index\Term('proper', 'contents'), new Index\Term('provided', 'contents'), new Index\Term('provides', 'contents'), new Index\Term('pserver', 'contents'), new Index\Term('public', 'contents'), new Index\Term('publication', 'contents'), new Index\Term('published', 'contents'), new Index\Term('purpose', 'contents'), new Index\Term('questions', 'contents'), new Index\Term('quote', 'contents'), new Index\Term('read', 'contents'), new Index\Term('redistribution', 'contents'), new Index\Term('redistributions', 'contents'), new Index\Term('regents', 'contents'), new Index\Term('rejected', 'contents'), new Index\Term('rel', 'contents'), new Index\Term('relevant', 'contents'), new Index\Term('report', 'contents'), new Index\Term('reported', 'contents'), new Index\Term('reporting', 'contents'), new Index\Term('repository', 'contents'), new Index\Term('representatives', 'contents'), new Index\Term('reproduce', 'contents'), new Index\Term('requests', 'contents'), new Index\Term('requirements', 'contents'), new Index\Term('reserved', 'contents'), new Index\Term('restrictions', 'contents'), new Index\Term('resulting', 'contents'), new Index\Term('retain', 'contents'), new Index\Term('revision', 'contents'), new Index\Term('right', 'contents'), new Index\Term('rights', 'contents'), new Index\Term('rpc', 'contents'), new Index\Term('running', 'contents'), new Index\Term('s', 'contents'), new Index\Term('sample', 'contents'), new Index\Term('schlitt', 'contents'), new Index\Term('schmidt', 'contents'), new Index\Term('screen', 'contents'), new Index\Term('script', 'contents'), new Index\Term('sect', 'contents'), new Index\Term('section', 'contents'), new Index\Term('see', 'contents'), new Index\Term('send', 'contents'), new Index\Term('seriously', 'contents'), new Index\Term('service', 'contents'), new Index\Term('services', 'contents'), new Index\Term('set', 'contents'), new Index\Term('several', 'contents'), new Index\Term('shall', 'contents'), new Index\Term('she', 'contents'), new Index\Term('should', 'contents'), new Index\Term('similar', 'contents'), new Index\Term('so', 'contents'), new Index\Term('software', 'contents'), new Index\Term('some', 'contents'), new Index\Term('something', 'contents'), new Index\Term('source', 'contents'), new Index\Term('sources', 'contents'), new Index\Term('span', 'contents'), new Index\Term('special', 'contents'), new Index\Term('specific', 'contents'), new Index\Term('speed', 'contents'), new Index\Term('standard', 'contents'), new Index\Term('standards', 'contents'), new Index\Term('stefan', 'contents'), new Index\Term('step', 'contents'), new Index\Term('stephan', 'contents'), new Index\Term('still', 'contents'), new Index\Term('strict', 'contents'), new Index\Term('structure', 'contents'), new Index\Term('stylesheet', 'contents'), new Index\Term('subject', 'contents'), new Index\Term('submit', 'contents'), new Index\Term('submitting', 'contents'), new Index\Term('substantively', 'contents'), new Index\Term('substitute', 'contents'), new Index\Term('such', 'contents'), new Index\Term('summary', 'contents'), new Index\Term('support', 'contents'), new Index\Term('sure', 'contents'), new Index\Term('system', 'contents'), new Index\Term('t', 'contents'), new Index\Term('table', 'contents'), new Index\Term('take', 'contents'), new Index\Term('target', 'contents'), new Index\Term('task', 'contents'), new Index\Term('td', 'contents'), new Index\Term('terms', 'contents'), new Index\Term('test', 'contents'), new Index\Term('tested', 'contents'), new Index\Term('text', 'contents'), new Index\Term('th', 'contents'), new Index\Term('that', 'contents'), new Index\Term('the', 'contents'), new Index\Term('their', 'contents'), new Index\Term('them', 'contents'), new Index\Term('theory', 'contents'), new Index\Term('there', 'contents'), new Index\Term('think', 'contents'), new Index\Term('this', 'contents'), new Index\Term('thomas', 'contents'), new Index\Term('those', 'contents'), new Index\Term('thus', 'contents'), new Index\Term('time', 'contents'), new Index\Term('tips', 'contents'), new Index\Term('title', 'contents'), new Index\Term('titlepage', 'contents'), new Index\Term('to', 'contents'), new Index\Term('tobias', 'contents'), new Index\Term('toc', 'contents'), new Index\Term('top', 'contents'), new Index\Term('tort', 'contents'), new Index\Term('tr', 'contents'), new Index\Term('tracking', 'contents'), new Index\Term('translated', 'contents'), new Index\Term('translating', 'contents'), new Index\Term('translation', 'contents'), new Index\Term('translations', 'contents'), new Index\Term('translators', 'contents'), new Index\Term('try', 'contents'), new Index\Term('tt', 'contents'), new Index\Term('tuupola', 'contents'), new Index\Term('txt', 'contents'), new Index\Term('type', 'contents'), new Index\Term('u', 'contents'), new Index\Term('ul', 'contents'), new Index\Term('unable', 'contents'), new Index\Term('under', 'contents'), new Index\Term('understand', 'contents'), new Index\Term('unified', 'contents'), new Index\Term('unless', 'contents'), new Index\Term('up', 'contents'), new Index\Term('us', 'contents'), new Index\Term('use', 'contents'), new Index\Term('used', 'contents'), new Index\Term('useful', 'contents'), new Index\Term('usefulinc', 'contents'), new Index\Term('userinput', 'contents'), new Index\Term('users', 'contents'), new Index\Term('using', 'contents'), new Index\Term('usually', 'contents'), new Index\Term('v', 'contents'), new Index\Term('valign', 'contents'), new Index\Term('verbose', 'contents'), new Index\Term('version', 'contents'), new Index\Term('versions', 'contents'), new Index\Term('vlink', 'contents'), new Index\Term('wallner', 'contents'), new Index\Term('warranties', 'contents'), new Index\Term('way', 'contents'), new Index\Term('ways', 'contents'), new Index\Term('we', 'contents'), new Index\Term('webservices', 'contents'), new Index\Term('welcome', 'contents'), new Index\Term('what', 'contents'), new Index\Term('when', 'contents'), new Index\Term('whether', 'contents'), new Index\Term('which', 'contents'), new Index\Term('width', 'contents'), new Index\Term('will', 'contents'), new Index\Term('wish', 'contents'), new Index\Term('wishlist', 'contents'), new Index\Term('wishlists', 'contents'), new Index\Term('with', 'contents'), new Index\Term('without', 'contents'), new Index\Term('won', 'contents'), new Index\Term('work', 'contents'), new Index\Term('would', 'contents'), new Index\Term('write', 'contents'), new Index\Term('writing', 'contents'), new Index\Term('written', 'contents'), new Index\Term('www', 'contents'), new Index\Term('xml', 'contents'), new Index\Term('xmlrpc', 'contents'), new Index\Term('you', 'contents'), new Index\Term('your', 'contents'), new Index\Term('1178009946', 'modified'), new Index\Term('about', 'path'), new Index\Term('authors', 'path'), new Index\Term('bugs', 'path'), new Index\Term('contributing', 'path'), new Index\Term('copyright', 'path'), new Index\Term('core', 'path'), new Index\Term('documentation', 'path'), new Index\Term('html', 'path'), new Index\Term('indexsource', 'path'), new Index\Term('newpackage', 'path'), new Index\Term('patches', 'path'), new Index\Term('pear', 'path'), new Index\Term('wishlist', 'path')));
 }
Пример #2
0
 public function testTermStreamStyleReadingSkipTo()
 {
     $directory = new Directory\Filesystem(__DIR__ . '/_source/_files');
     $segmentInfo = new Index\SegmentInfo($directory, '_3', 2);
     $this->assertEquals($segmentInfo->resetTermsStream(6, Index\SegmentInfo::SM_FULL_INFO), 8);
     $segmentInfo->skipTo(new Index\Term('prefetch', 'contents'));
     $terms = array();
     $terms[] = $segmentInfo->currentTerm();
     $firstTermPositions = $segmentInfo->currentTermPositions();
     $this->assertEquals(count($firstTermPositions), 1);
     reset($firstTermPositions);
     // go to the first element
     $this->assertEquals(key($firstTermPositions), 7);
     $this->assertTrue(current($firstTermPositions) == array(112, 409));
     while (($term = $segmentInfo->nextTerm()) != null) {
         $terms[] = $term;
     }
     $this->assertTrue($terms == array(new Index\Term('prev', 'contents'), new Index\Term('previous', 'contents'), new Index\Term('proper', 'contents'), new Index\Term('quote', 'contents'), new Index\Term('read', 'contents'), new Index\Term('rel', 'contents'), new Index\Term('report', 'contents'), new Index\Term('reported', 'contents'), new Index\Term('reporting', 'contents'), new Index\Term('requirements', 'contents'), new Index\Term('right', 'contents'), new Index\Term('sect', 'contents'), new Index\Term('span', 'contents'), new Index\Term('still', 'contents'), new Index\Term('stylesheet', 'contents'), new Index\Term('submitting', 'contents'), new Index\Term('summary', 'contents'), new Index\Term('system', 'contents'), new Index\Term('t', 'contents'), new Index\Term('table', 'contents'), new Index\Term('take', 'contents'), new Index\Term('target', 'contents'), new Index\Term('td', 'contents'), new Index\Term('text', 'contents'), new Index\Term('th', 'contents'), new Index\Term('that', 'contents'), new Index\Term('the', 'contents'), new Index\Term('think', 'contents'), new Index\Term('this', 'contents'), new Index\Term('tips', 'contents'), new Index\Term('title', 'contents'), new Index\Term('to', 'contents'), new Index\Term('top', 'contents'), new Index\Term('tr', 'contents'), new Index\Term('translating', 'contents'), new Index\Term('type', 'contents'), new Index\Term('u', 'contents'), new Index\Term('unable', 'contents'), new Index\Term('up', 'contents'), new Index\Term('using', 'contents'), new Index\Term('valign', 'contents'), new Index\Term('version', 'contents'), new Index\Term('vlink', 'contents'), new Index\Term('way', 'contents'), new Index\Term('which', 'contents'), new Index\Term('width', 'contents'), new Index\Term('will', 'contents'), new Index\Term('with', 'contents'), new Index\Term('writing', 'contents'), new Index\Term('you', 'contents'), new Index\Term('your', 'contents'), new Index\Term('1178009946', 'modified'), new Index\Term('bugs', 'path'), new Index\Term('contributing', 'path'), new Index\Term('html', 'path'), new Index\Term('indexsource', 'path'), new Index\Term('newpackage', 'path')));
     unset($segmentInfo);
     $segmentInfo1 = new Index\SegmentInfo($directory, '_3', 2);
     $this->assertEquals($segmentInfo1->resetTermsStream(6, Index\SegmentInfo::SM_MERGE_INFO), 7);
 }