Skip to content

Commit

Permalink
Expand tests
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Apr 6, 2023
1 parent 70149ae commit 693f744
Showing 1 changed file with 44 additions and 2 deletions.
46 changes: 44 additions & 2 deletions tests/src/python/test_qgsscalecalculator.py
Expand Up @@ -11,19 +11,61 @@

import qgis # NOQA

from qgis.core import QgsRectangle, QgsScaleCalculator, QgsUnitTypes
from qgis.core import (
Qgis,
QgsRectangle,
QgsScaleCalculator
)
from qgis.testing import start_app, unittest

start_app()


class TestQgsScaleCalculator(unittest.TestCase):

def testCalculate(self):
calculator = QgsScaleCalculator()

calculator.setDpi(96)
extent = QgsRectangle(336609, 1162304, 354942, 1168151)

calculator.setMapUnits(Qgis.DistanceUnit.Meters)
scale = calculator.calculate(extent, 65000)
self.assertAlmostEqual(scale, 1066.001, 3)

calculator.setMapUnits(Qgis.DistanceUnit.Feet)
scale = calculator.calculate(extent, 65000)
self.assertAlmostEqual(scale, 324.9171, 3)

calculator.setMapUnits(Qgis.DistanceUnit.Miles)
scale = calculator.calculate(extent, 65000)
self.assertAlmostEqual(scale, 1715562.6535, 3)

calculator.setMapUnits(Qgis.DistanceUnit.NauticalMiles)
scale = calculator.calculate(extent, 65000)
self.assertAlmostEqual(scale, 1974234.24348, 3)

calculator.setMapUnits(Qgis.DistanceUnit.Kilometers)
scale = calculator.calculate(extent, 65000)
self.assertAlmostEqual(scale, 1066001.21138, 3)

calculator.setMapUnits(Qgis.DistanceUnit.Yards)
scale = calculator.calculate(extent, 65000)
self.assertAlmostEqual(scale, 974.7515076, 3)

calculator.setMapUnits(Qgis.DistanceUnit.Millimeters)
scale = calculator.calculate(extent, 65000)
self.assertAlmostEqual(scale, 1.066001211, 3)

calculator.setMapUnits(Qgis.DistanceUnit.Centimeters)
scale = calculator.calculate(extent, 65000)
self.assertAlmostEqual(scale, 10.66001211, 3)

def testCalculateImageSize(self):
calculator = QgsScaleCalculator()

calculator.setDpi(96)
calculator.setMapUnits(QgsUnitTypes.DistanceMeters)
calculator.setMapUnits(Qgis.DistanceUnit.Meters)

extent = QgsRectangle(336609, 1162304, 354942, 1168151)
image_size = calculator.calculateImageSize(extent, 65000)
Expand Down

0 comments on commit 693f744

Please sign in to comment.