| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace PhpOffice\PhpSpreadsheetTests\Helper;
- use PhpOffice\PhpSpreadsheet\Exception;
- use PhpOffice\PhpSpreadsheet\Helper\Dimension;
- use PHPUnit\Framework\TestCase;
- class DimensionTest extends TestCase
- {
- /**
- * @dataProvider providerCellWidth
- */
- public function testCreateDimension(float $expectedResult, string $dimension): void
- {
- $result = (new Dimension($dimension))->width();
- self::assertSame($expectedResult, $result);
- }
- /**
- * @dataProvider providerConvertUoM
- */
- public function testConvertDimension(float $expectedResult, string $dimension, string $unitOfMeasure): void
- {
- $result = (new Dimension($dimension))->toUnit($unitOfMeasure);
- self::assertEqualsWithDelta($expectedResult, $result, 1.0e-12);
- }
- public function testConvertDimensionInvalidUoM(): void
- {
- $this->expectException(Exception::class);
- $this->expectExceptionMessage('pikachu is not a vaid unit of measure');
- (new Dimension('999'))->toUnit('pikachu');
- }
- public function providerCellWidth(): array
- {
- return [
- [12.0, '12'],
- [2.2852, '12pt'],
- [4.5703, '24 pt'],
- [5.1416, '36px'],
- [5.7129, '2.5pc'],
- [13.7109, '2.54cm'],
- [13.7109, '25.4mm'],
- [13.7109, '1in'],
- [4.27, '50%'],
- [3.7471, '3.2em'],
- [2.3419, '2ch'],
- [4.6838, '4ex'],
- [14.0515, '12rem'],
- ];
- }
- public function providerConvertUoM(): array
- {
- return [
- [60, '8.54', Dimension::UOM_PIXELS],
- [100, '100px', Dimension::UOM_PIXELS],
- [150, '200px', Dimension::UOM_POINTS],
- [45, '8.54', Dimension::UOM_POINTS],
- [12.5, '200px', Dimension::UOM_PICA],
- [3.75, '8.54', Dimension::UOM_PICA],
- [3.125, '300px', Dimension::UOM_INCHES],
- [0.625, '8.54', Dimension::UOM_INCHES],
- [7.9375, '300px', Dimension::UOM_CENTIMETERS],
- [1.5875, '8.54', Dimension::UOM_CENTIMETERS],
- [79.375, '300px', Dimension::UOM_MILLIMETERS],
- [15.875, '8.54', Dimension::UOM_MILLIMETERS],
- ];
- }
- }
|