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) {
|
foreach ($spreadsheet2->getSheetNames() as $sheetName) {
|
||||||
$sheet = $spreadsheet2->getSheetByName($sheetName);
|
$sheet = $spreadsheet2->getSheetByName($sheetName);
|
||||||
|
if ($sheet === null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$sheet->setTitle($sheet->getTitle() . ' copied');
|
$sheet->setTitle($sheet->getTitle() . ' copied');
|
||||||
$spreadsheet1->addExternalSheet($sheet);
|
$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