예제 #1
0
 /**
  * @dataProvider provideErrorMoFiles
  */
 public function testEmptyMoFile($file)
 {
     $parser = new MoTranslator\Translator($file);
     if (basename($file) === 'magic.mo') {
         $this->assertEquals(MoTranslator\Translator::ERROR_BAD_MAGIC, $parser->error);
     } else {
         $this->assertEquals(MoTranslator\Translator::ERROR_READING, $parser->error);
     }
     $this->assertEquals('Table', $parser->pgettext('Display format', 'Table'));
     $this->assertEquals('"%d" seconds', $parser->ngettext('"%d" second', '"%d" seconds', 10));
 }
예제 #2
0
<?php

require './vendor/autoload.php';
$files = array('./tests/data/big.mo', './tests/data/little.mo');
$start = microtime(true);
foreach ($files as $filename) {
    $parser = new MoTranslator\Translator($filename);
    for ($i = 0; $i < 20000; $i++) {
        $parser->ngettext('%d second', '%d seconds', 10);
        $parser->ngettext('%d second', '%d seconds', 1);
    }
}
$end = microtime(true);
$diff = $end - $start;
echo "Execution took {$diff} seconds\n";
예제 #3
0
 /**
  * @dataProvider pluralExpressions
  */
 public function testPluralExpression($expr, $expected)
 {
     $this->assertEquals($expected, MoTranslator\Translator::sanitizePluralExpression($expr));
 }
예제 #4
0
<?php

require './vendor/autoload.php';
$files = array('./tests/data/big.mo', './tests/data/little.mo');
$start = microtime(true);
foreach ($files as $filename) {
    $parser = new MoTranslator\Translator($filename);
    for ($i = 0; $i < 200000; $i++) {
        $parser->pgettext('Display format', 'Table');
    }
}
$end = microtime(true);
$diff = $end - $start;
echo "Execution took {$diff} seconds\n";
예제 #5
0
 /**
  * Test for npgettext
  *
  * @param int    $number   Number
  * @param string $expected Expected output
  *
  * @return void
  *
  * @dataProvider providerTestNpgettext
  */
 public function testNpgettext($number, $expected)
 {
     $parser = new MoTranslator\Translator(null);
     $result = $parser->npgettext("context", "%d pig went to the market\n", "%d pigs went to the market\n", $number);
     $this->assertSame($expected, $result);
 }
예제 #6
0
<?php

require './vendor/autoload.php';
$files = array('./tests/data/big.mo', './tests/data/little.mo');
$start = microtime(true);
for ($i = 0; $i < 200; $i++) {
    foreach ($files as $filename) {
        $parser = new MoTranslator\Translator($filename);
        $parser->gettext('Column');
    }
}
$end = microtime(true);
$diff = $end - $start;
echo "Execution took {$diff} seconds\n";