Ejemplo n.º 1
0
 /**
  * @param string $rawFile
  * @dataProvider testFiles
  */
 public function testCompress(string $rawFile)
 {
     $raw = file_get_contents($rawFile);
     $compressor = new Compressor();
     $compressedFile = tempnam(sys_get_temp_dir(), 'squeeze-test-' . date('His') . '-compressed');
     $decompressedFile = tempnam(sys_get_temp_dir(), 'squeeze-test-' . date('His') . '-decompressed');
     $this->output('Compressing ' . $rawFile);
     $compressed = $compressor->compress($raw, (new Progress())->listen(function ($percentage) {
         static $lastBand = 0;
         $thisBand = floor($percentage * 10) / 10;
         if ($thisBand > $lastBand) {
             $this->output(round($thisBand * 100) . '%');
         }
         $lastBand = $thisBand;
     }));
     file_put_contents($compressedFile, $compressed);
     $this->assertLessThan(filesize($rawFile), filesize($compressedFile));
     $this->output('Compression ration ' . filesize($compressedFile) . '/' . filesize($rawFile) . ' = ' . round(filesize($compressedFile) / filesize($rawFile), 5) * 100 . '%');
     $this->output('Decompressing');
     $decompressed = $compressor->decompress($compressed);
     file_put_contents($decompressedFile, $decompressed);
     $this->assertEquals($raw, $decompressed);
 }