Add AddressHelper::convertFormulaToA1 tests for SpreadsheetXML

This commit is contained in:
Nathan Dench 2021-05-10 16:40:04 +10:00 committed by Mark Baker
parent f15de096b5
commit 62d3a56a57
3 changed files with 23 additions and 1 deletions

View File

@ -48,7 +48,7 @@ class AddressHelper
} }
/** /**
* Converts a formula that uses R1C1 format cell address to an A1 format cell address. * Converts a formula that uses R1C1/SpreadsheetXML format cell address to an A1 format cell address.
*/ */
public static function convertFormulaToA1( public static function convertFormulaToA1(
string $formula, string $formula,

View File

@ -109,4 +109,19 @@ class AddressHelperTest extends TestCase
{ {
return require 'tests/data/Cell/A1ConversionToR1C1Exception.php'; return require 'tests/data/Cell/A1ConversionToR1C1Exception.php';
} }
/**
* @dataProvider providerConvertFormulaToA1SpreadsheetXml
*/
public function testConvertFormulaToA1SpreadsheetXml(string $expectedValue, string $formula): void
{
$actualValue = AddressHelper::convertFormulaToA1($formula);
self::assertSame($expectedValue, $actualValue);
}
public function providerConvertFormulaToA1SpreadsheetXml(): array
{
return require 'tests/data/Cell/ConvertFormulaToA1SpreadsheetXml.php';
}
} }

View File

@ -0,0 +1,7 @@
<?php
return [
['=B4+C4', 'of:=[.B4]+[.C4]'],
['=SUM(B1:B4)', 'of:=SUM([.B1:.B4])'],
['=CONCAT("Result of formula expression =[.B4]+[.C4] is: ", B4+C4)', 'of:=CONCAT("Result of formula expression =[.B4]+[.C4] is: ", [.B4]+[.C4])'],
];