public function testLineIterator() { $iterator = new LineIterator(new File(__DIR__ . "/../examples/testdata.txt")); $c = $iterator->count(); $conv = new Converter(); $conv->setIteratorSource($iterator, $c - 500); $list = new ArrayList($conv); $this->assertSame(500, $list->length()); $conv2 = new Converter(); $conv2->setIteratorSource($iterator, 0, 499); $list2 = new ArrayList($conv2); $this->assertSame(500, $list2->length()); }
return true; } else { $row = null; } return false; } return true; }; $conv = new Converter(); $conv->setRowConverter(new Serializer($rowser, $rowdeser)); // Field converters (string to number or datetime) $conv->setFieldConverter('timestamp', new SerDateTime("Y-m-d\\TH:i:s.uO", new \DateTimeZone("Europe/Berlin"))); // Read testdata line by line $iterator = new LineIterator(new File(__DIR__ . "/testdata.txt")); // Load only last 500 records $c = $iterator->count(); $conv->setIteratorSource($iterator); L::line("Converter created:", $watch->stop()->result()); /** * Create list and filter / group */ // Create list $watch->start(); $list = new ArrayList($conv); L::line("Data imported:", $watch->stop()->result()); // Stats echo "\n"; L::line($list->length(), "records"); L::line("First record:", $list->first()->timestamp->format('Y-m-d H:i:s')); L::line("Last record:", $list->last()->timestamp->format('Y-m-d H:i:s')); echo "\n";