public function test_construct_and_index() { $filename = 'data/big_granito_1.html'; $tmr = self::timer(); $mmr = self::memer(); $html = self::file_get_contents($filename); $mem = self::memer($mmr); $exe = self::timer($tmr); self::log("Loaded " . self::fmtNumber(strlen($html) / 1024, 2) . "Kb\tin\t{$exe}\t{$mem} RAM"); $tmr = self::timer(); $mmr = self::memer(); $doc = new hQuery($html, false); $mem = self::memer($mmr); $exe = self::timer($tmr); self::log("Construct " . self::fmtNumber($doc->size / 1024, 2) . "Kb\tin\t{$exe}\t{$mem} RAM"); $doc->location(self::fn($filename)); $tmr = self::timer(); $mmr = self::memer(); $tags = $doc->index(); $mem = self::memer($mmr); $exe = self::timer($tmr); $this->assertLessThan(6000000, self::timer($tmr, false), 'should index 3Mb in less then 3 sec'); $count = self::fmtNumber(self::listSumCounts($tags)); self::log("Indexed {$count} tags\tin\t{$exe}\t{$mem} RAM"); self::log("Original Charset: {$doc->charset}"); $tags = array_map('count', $tags); $counts = NULL; foreach ($tags as $k => $v) { $counts[$v] = (empty($counts[$v]) ? '' : $counts[$v] . ', ') . $k; } krsort($counts); // self::log('Tag counts:', $counts); return array($doc); }