Initial Formula Translation tests (#1886)
* Initial Formula Translation tests
This commit is contained in:
parent
ee969fdcfe
commit
1d6f36d8df
|
|
@ -18,6 +18,10 @@ $helper->logRead('Xlsx', $filename2, $callStartTime);
|
|||
|
||||
foreach ($spreadsheet2->getSheetNames() as $sheetName) {
|
||||
$sheet = $spreadsheet2->getSheetByName($sheetName);
|
||||
if ($sheet === null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$sheet->setTitle($sheet->getTitle() . ' copied');
|
||||
$spreadsheet1->addExternalSheet($sheet);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheetTests\Calculation;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
use PhpOffice\PhpSpreadsheet\Settings;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class TranslationTest extends TestCase
|
||||
{
|
||||
private $compatibilityMode;
|
||||
|
||||
private $returnDate;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$this->compatibilityMode = Functions::getCompatibilityMode();
|
||||
$this->returnDate = Functions::getReturnDateType();
|
||||
Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL);
|
||||
Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
|
||||
}
|
||||
|
||||
protected function tearDown(): void
|
||||
{
|
||||
Functions::setCompatibilityMode($this->compatibilityMode);
|
||||
Functions::setReturnDateType($this->returnDate);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTranslations
|
||||
*/
|
||||
public function testTranslation(string $expectedResult, string $locale, string $formula): void
|
||||
{
|
||||
$validLocale = Settings::setLocale($locale);
|
||||
if (!$validLocale) {
|
||||
self::markTestSkipped("Unable to set locale to {$locale}");
|
||||
}
|
||||
|
||||
$translatedFormula = Calculation::getInstance()->_translateFormulaToLocale($formula);
|
||||
self::assertSame($expectedResult, $translatedFormula);
|
||||
|
||||
$restoredFormula = Calculation::getInstance()->_translateFormulaToEnglish($translatedFormula);
|
||||
self::assertSame($formula, $restoredFormula);
|
||||
}
|
||||
|
||||
public function providerTranslations()
|
||||
{
|
||||
return require 'tests/data/Calculation/Translations.php';
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
[
|
||||
'=DAGEN360(DATUM(2010;2;5);DATUM(2010;12;31);WAAR)',
|
||||
'nl',
|
||||
'=DAYS360(DATE(2010,2,5),DATE(2010,12,31),TRUE)',
|
||||
],
|
||||
[
|
||||
'=DIAS360(DATA(2010;2;5);DATA(2010;12;31);VERDADEIRO)',
|
||||
'pt_br',
|
||||
'=DAYS360(DATE(2010,2,5),DATE(2010,12,31),TRUE)',
|
||||
],
|
||||
[
|
||||
'=ДНЕЙ360(ДАТА(2010;2;5);ДАТА(2010;12;31);ИСТИНА)',
|
||||
'ru',
|
||||
'=DAYS360(DATE(2010,2,5),DATE(2010,12,31),TRUE)',
|
||||
],
|
||||
[
|
||||
'=TEKST.SAMENVOEGEN(A1; " "; B1)',
|
||||
'nl',
|
||||
'=CONCATENATE(A1, " ", B1)',
|
||||
],
|
||||
[
|
||||
'=TEKST.SAMENVOEGEN("""Hello "; B1; ""","; " I said.")',
|
||||
'nl',
|
||||
'=CONCATENATE("""Hello ", B1, """,", " I said.")',
|
||||
],
|
||||
[
|
||||
'=TEKST.SAMENVOEGEN(JAAR(VANDAAG());
|
||||
" is ";
|
||||
ALS(
|
||||
DAYS(DATUM(JAAR(VANDAAG())+1; 1; 1); DATUM(JAAR(VANDAAG()); 1; 1)) = 365;
|
||||
"NOT a Leap Year";
|
||||
"a Leap Year"
|
||||
)
|
||||
)',
|
||||
'nl',
|
||||
'=CONCATENATE(YEAR(TODAY()),
|
||||
" is ",
|
||||
IF(
|
||||
DAYS(DATE(YEAR(TODAY())+1, 1, 1), DATE(YEAR(TODAY()), 1, 1)) = 365,
|
||||
"NOT a Leap Year",
|
||||
"a Leap Year"
|
||||
)
|
||||
)',
|
||||
],
|
||||
];
|
||||
Loading…
Reference in New Issue