function testResetInternalIteratorIfPrimaryDatasetChanged()
 {
     $data = array(new lmbSet(array('x' => '1')), new lmbSet(array('x' => '2')), new lmbSet(array('x' => '3')));
     $iterator = new lmbCollection($data);
     $iterator->paginate($offset = 1, $limit = 3);
     $str = '';
     foreach ($iterator as $record) {
         $str .= $record->get('x');
     }
     $this->assertEqual($str, '23');
     $iterator->add(new lmbSet(array('x' => '4')));
     $str = '';
     foreach ($iterator as $record) {
         $str .= $record->get('x');
     }
     $this->assertEqual($str, '234');
 }
 function testSortByKeys()
 {
     $item1 = new lmbSet(array(1));
     $item2 = new lmbSet(array(2));
     $iterator = new lmbCollection();
     $this->assertTrue($iterator->isEmpty());
     $iterator->add($item1, 1);
     $this->assertFalse($iterator->isEmpty());
     $iterator->add($item2, 0);
     $iterator->sortByKeys();
     $iterator->rewind();
     $this->assertTrue($iterator->valid());
     $this->assertEqual($iterator->current(), $item2);
     $iterator->next();
     $this->assertEqual($iterator->current(), $item1);
 }