From 0e2eb33af8fab6c4d0c368018dacbe7b3ea62241 Mon Sep 17 00:00:00 2001 From: smiley Date: Fri, 11 Mar 2022 22:05:04 +0100 Subject: [PATCH] :octocat: clamp SVG circle radius --- src/QROptionsTrait.php | 7 +++++++ tests/QROptionsTest.php | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/QROptionsTrait.php b/src/QROptionsTrait.php index eac56be24..4dde40447 100644 --- a/src/QROptionsTrait.php +++ b/src/QROptionsTrait.php @@ -475,4 +475,11 @@ trait QROptionsTrait{ $this->logoSpaceStartY = $value === null ? null : $this->clampLogoSpaceValue($value); } + /** + * clamp/set SVG circle radius + */ + protected function set_circleRadius(float $circleRadius):void{ + $this->circleRadius = max(0.1, min(0.75, $circleRadius)); + } + } diff --git a/tests/QROptionsTest.php b/tests/QROptionsTest.php index ed5eff5db..446809da3 100644 --- a/tests/QROptionsTest.php +++ b/tests/QROptionsTest.php @@ -178,4 +178,24 @@ final class QROptionsTest extends TestCase{ $this::assertNull($o->logoSpaceStartY); } + /** + * @return float[][] + */ + public function circleRadiusProvider():array{ + return [ + [0.0, 0.1], + [0.5, 0.5], + [1.5, 0.75], + ]; + } + + /** + * @dataProvider circleRadiusProvider + */ + public function testClampCircleRadius(float $value, float $expected):void{ + $o = new QROptions(['circleRadius' => $value]); + + $this::assertSame($expected, $o->circleRadius); + } + }