Additional cell datatype unit tests (#1301)
This commit is contained in:
parent
0417c8cc2b
commit
e19228ecb0
|
@ -217,6 +217,9 @@ class Cell
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case DataType::TYPE_NUMERIC:
|
case DataType::TYPE_NUMERIC:
|
||||||
|
if (is_string($pValue) && !is_numeric($pValue)) {
|
||||||
|
throw new Exception('Invalid numeric value for datatype Numeric');
|
||||||
|
}
|
||||||
$this->value = 0 + $pValue;
|
$this->value = 0 + $pValue;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -60,7 +60,7 @@ class QRDecomposition
|
||||||
{
|
{
|
||||||
if ($A instanceof Matrix) {
|
if ($A instanceof Matrix) {
|
||||||
// Initialize.
|
// Initialize.
|
||||||
$this->QR = $A->getArrayCopy();
|
$this->QR = $A->getArray();
|
||||||
$this->m = $A->getRowDimension();
|
$this->m = $A->getRowDimension();
|
||||||
$this->n = $A->getColumnDimension();
|
$this->n = $A->getColumnDimension();
|
||||||
// Main loop.
|
// Main loop.
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace PhpOffice\PhpSpreadsheetTests\Cell;
|
namespace PhpOffice\PhpSpreadsheetTests\Cell;
|
||||||
|
|
||||||
|
use PhpOffice\PhpSpreadsheet\Exception;
|
||||||
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
|
||||||
|
@ -27,4 +28,26 @@ class CellTest extends TestCase
|
||||||
{
|
{
|
||||||
return require 'data/Cell/SetValueExplicit.php';
|
return require 'data/Cell/SetValueExplicit.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider providerSetValueExplicitException
|
||||||
|
*
|
||||||
|
* @param mixed $expected
|
||||||
|
* @param mixed $value
|
||||||
|
* @param string $dataType
|
||||||
|
*/
|
||||||
|
public function testSetValueExplicitException($value, string $dataType)
|
||||||
|
{
|
||||||
|
$this->expectException(Exception::class);
|
||||||
|
|
||||||
|
$spreadsheet = new Spreadsheet();
|
||||||
|
$cell = $spreadsheet->getActiveSheet()->getCell('A1');
|
||||||
|
$cell->setValueExplicit($value, $dataType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function providerSetValueExplicitException()
|
||||||
|
{
|
||||||
|
return require 'data/Cell/SetValueExplicitException.php';
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,19 +8,44 @@ return [
|
||||||
'01234567890123456789',
|
'01234567890123456789',
|
||||||
DataType::TYPE_NUMERIC,
|
DataType::TYPE_NUMERIC,
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
1234567890123456789,
|
||||||
|
1234567890123456789,
|
||||||
|
DataType::TYPE_NUMERIC,
|
||||||
|
],
|
||||||
[
|
[
|
||||||
123.456,
|
123.456,
|
||||||
'123.456',
|
'123.456',
|
||||||
DataType::TYPE_NUMERIC,
|
DataType::TYPE_NUMERIC,
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
1234567890123456789,
|
123.456,
|
||||||
1234567890123456789,
|
123.456,
|
||||||
DataType::TYPE_NUMERIC,
|
DataType::TYPE_NUMERIC,
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
123.456,
|
0,
|
||||||
123.456,
|
null,
|
||||||
DataType::TYPE_NUMERIC,
|
DataType::TYPE_NUMERIC,
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
false,
|
||||||
|
DataType::TYPE_NUMERIC,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
1,
|
||||||
|
true,
|
||||||
|
DataType::TYPE_NUMERIC,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'#DIV/0!',
|
||||||
|
'#DIV/0!',
|
||||||
|
DataType::TYPE_ERROR,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'#NULL!',
|
||||||
|
'NOT A VALID ERROR TYPE VALUE',
|
||||||
|
DataType::TYPE_ERROR,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use PhpOffice\PhpSpreadsheet\Cell\DataType;
|
||||||
|
|
||||||
|
return [
|
||||||
|
[
|
||||||
|
'XYZ',
|
||||||
|
DataType::TYPE_NUMERIC,
|
||||||
|
],
|
||||||
|
];
|
Loading…
Reference in New Issue