def testFormatYPair(self):
        """Test formatting y as pair"""

        self.assertEqual(QgsCoordinateFormatter.formatY(20, QgsCoordinateFormatter.FormatPair, 0), '20')
        self.assertEqual(QgsCoordinateFormatter.formatY(-20, QgsCoordinateFormatter.FormatPair, 0), '-20')
        self.assertEqual(QgsCoordinateFormatter.formatY(20.11111111111111111, QgsCoordinateFormatter.FormatPair, 3), '20.111')
        self.assertEqual(QgsCoordinateFormatter.formatY(20.11161111111111111, QgsCoordinateFormatter.FormatPair, 3), '20.112')
        self.assertEqual(QgsCoordinateFormatter.formatY(20, QgsCoordinateFormatter.FormatPair, 3), '20.000')
        self.assertEqual(QgsCoordinateFormatter.formatY(float('inf'), QgsCoordinateFormatter.FormatPair, 3), 'infinite')
    def testFormatYDegrees(self):
        """Test formatting y as decimal degrees"""

        self.assertEqual(QgsCoordinateFormatter.formatY(20, QgsCoordinateFormatter.FormatDecimalDegrees, 2), u"20.00°N")

        # check precision
        self.assertEqual(QgsCoordinateFormatter.formatY(20, QgsCoordinateFormatter.FormatDecimalDegrees, 4), u"20.0000°N")
        self.assertEqual(QgsCoordinateFormatter.formatY(20.12345678, QgsCoordinateFormatter.FormatDecimalDegrees, 4), u"20.1235°N")
        self.assertEqual(QgsCoordinateFormatter.formatY(20.12345678, QgsCoordinateFormatter.FormatDecimalDegrees, 0), u"20°N")

        # check if latitudes > 90 or <-90 wrap around
        self.assertEqual(QgsCoordinateFormatter.formatY(190, QgsCoordinateFormatter.FormatDecimalDegrees, 2), u"10.00°N")
        self.assertEqual(QgsCoordinateFormatter.formatY(-190, QgsCoordinateFormatter.FormatDecimalDegrees, 2), u"10.00°S")
        self.assertEqual(QgsCoordinateFormatter.formatY(91, QgsCoordinateFormatter.FormatDecimalDegrees, 2), u"89.00°S")
        self.assertEqual(QgsCoordinateFormatter.formatY(-91, QgsCoordinateFormatter.FormatDecimalDegrees, 2), u"89.00°N")
        self.assertEqual(QgsCoordinateFormatter.formatY(179, QgsCoordinateFormatter.FormatDecimalDegrees, 2), u"1.00°S")
        self.assertEqual(QgsCoordinateFormatter.formatY(-179, QgsCoordinateFormatter.FormatDecimalDegrees, 2), u"1.00°N")

        # should be no directional suffixes for 0 degree coordinates
        self.assertEqual(QgsCoordinateFormatter.formatY(0, QgsCoordinateFormatter.FormatDecimalDegrees, 2), u"0.00°")
        # should also be no directional suffix for 0 degree coordinates within specified precision
        self.assertEqual(QgsCoordinateFormatter.formatY(-0.00001, QgsCoordinateFormatter.FormatDecimalDegrees, 2), u"0.00°")
        self.assertEqual(QgsCoordinateFormatter.formatY(0.00001, QgsCoordinateFormatter.FormatDecimalDegrees, 2), u"0.00°")
        self.assertEqual(QgsCoordinateFormatter.formatY(-0.00001, QgsCoordinateFormatter.FormatDecimalDegrees, 5), u"0.00001°S")
        self.assertEqual(QgsCoordinateFormatter.formatY(0.00001, QgsCoordinateFormatter.FormatDecimalDegrees, 5), u"0.00001°N")

        # test without direction suffix
        self.assertEqual(QgsCoordinateFormatter.formatY(80, QgsCoordinateFormatter.FormatDecimalDegrees, 2, QgsCoordinateFormatter.FormatFlags()), u"80.00°")
        # test 0 longitude
        self.assertEqual(QgsCoordinateFormatter.formatY(0, QgsCoordinateFormatter.FormatDecimalDegrees, 2, QgsCoordinateFormatter.FormatFlags()), u"0.00°")
        # test near zero latitude
        self.assertEqual(QgsCoordinateFormatter.formatY(0.000001, QgsCoordinateFormatter.FormatDecimalDegrees, 2, QgsCoordinateFormatter.FormatFlags()), u"0.00°")
        # should be no "-" prefix for near-zero latitude when rounding to 2 decimal places
        self.assertEqual(QgsCoordinateFormatter.formatY(-0.000001, QgsCoordinateFormatter.FormatDecimalDegrees, 2, QgsCoordinateFormatter.FormatFlags()), u"0.00°")
        self.assertEqual(QgsCoordinateFormatter.formatY(0.000001, QgsCoordinateFormatter.FormatDecimalDegrees, 6, QgsCoordinateFormatter.FormatFlags()), u"0.000001°")
        self.assertEqual(QgsCoordinateFormatter.formatY(-0.000001, QgsCoordinateFormatter.FormatDecimalDegrees, 6, QgsCoordinateFormatter.FormatFlags()), u"-0.000001°")
Beispiel #3
0
    def testFormatYDegrees(self):
        """Test formatting y as decimal degrees"""

        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                20, QgsCoordinateFormatter.FormatDecimalDegrees, 2),
            u"20.00°N")

        # check precision
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                20, QgsCoordinateFormatter.FormatDecimalDegrees, 4),
            u"20.0000°N")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                20.12345678, QgsCoordinateFormatter.FormatDecimalDegrees, 4),
            u"20.1235°N")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                20.12345678, QgsCoordinateFormatter.FormatDecimalDegrees, 0),
            u"20°N")

        # check if latitudes > 90 or <-90 wrap around
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                190, QgsCoordinateFormatter.FormatDecimalDegrees, 2),
            u"10.00°N")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -190, QgsCoordinateFormatter.FormatDecimalDegrees, 2),
            u"10.00°S")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                91, QgsCoordinateFormatter.FormatDecimalDegrees, 2),
            u"89.00°S")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -91, QgsCoordinateFormatter.FormatDecimalDegrees, 2),
            u"89.00°N")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                179, QgsCoordinateFormatter.FormatDecimalDegrees, 2),
            u"1.00°S")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -179, QgsCoordinateFormatter.FormatDecimalDegrees, 2),
            u"1.00°N")

        # should be no directional suffixes for 0 degree coordinates
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0, QgsCoordinateFormatter.FormatDecimalDegrees, 2), u"0.00°")
        # should also be no directional suffix for 0 degree coordinates within specified precision
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -0.00001, QgsCoordinateFormatter.FormatDecimalDegrees, 2),
            u"0.00°")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0.00001, QgsCoordinateFormatter.FormatDecimalDegrees, 2),
            u"0.00°")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -0.00001, QgsCoordinateFormatter.FormatDecimalDegrees, 5),
            u"0.00001°S")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0.00001, QgsCoordinateFormatter.FormatDecimalDegrees, 5),
            u"0.00001°N")

        # test without direction suffix
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                80, QgsCoordinateFormatter.FormatDecimalDegrees, 2,
                QgsCoordinateFormatter.FormatFlags()), u"80.00°")
        # test 0 longitude
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0, QgsCoordinateFormatter.FormatDecimalDegrees, 2,
                QgsCoordinateFormatter.FormatFlags()), u"0.00°")
        # test near zero latitude
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0.000001, QgsCoordinateFormatter.FormatDecimalDegrees, 2,
                QgsCoordinateFormatter.FormatFlags()), u"0.00°")
        # should be no "-" prefix for near-zero latitude when rounding to 2 decimal places
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -0.000001, QgsCoordinateFormatter.FormatDecimalDegrees, 2,
                QgsCoordinateFormatter.FormatFlags()), u"0.00°")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0.000001, QgsCoordinateFormatter.FormatDecimalDegrees, 6,
                QgsCoordinateFormatter.FormatFlags()), u"0.000001°")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -0.000001, QgsCoordinateFormatter.FormatDecimalDegrees, 6,
                QgsCoordinateFormatter.FormatFlags()), u"-0.000001°")
    def testFormatYDegreesMinutes(self):
        """Test formatting y as DM"""

        self.assertEqual(QgsCoordinateFormatter.formatY(20, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"20°0.00′N")

        # check precision
        self.assertEqual(QgsCoordinateFormatter.formatY(20, QgsCoordinateFormatter.FormatDegreesMinutes, 4), u"20°0.0000′N")
        self.assertEqual(QgsCoordinateFormatter.formatY(20.12345678, QgsCoordinateFormatter.FormatDegreesMinutes, 4), u"20°7.4074′N")
        self.assertEqual(QgsCoordinateFormatter.formatY(20.12345678, QgsCoordinateFormatter.FormatDegreesMinutes, 0), u"20°7′N")

        # check if latitudes > 90 or <-90 wrap around
        self.assertEqual(QgsCoordinateFormatter.formatY(190, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"10°0.00′N")
        self.assertEqual(QgsCoordinateFormatter.formatY(-190, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"10°0.00′S")
        self.assertEqual(QgsCoordinateFormatter.formatY(91, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"89°0.00′S")
        self.assertEqual(QgsCoordinateFormatter.formatY(-91, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"89°0.00′N")
        self.assertEqual(QgsCoordinateFormatter.formatY(179, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"1°0.00′S")
        self.assertEqual(QgsCoordinateFormatter.formatY(-179, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"1°0.00′N")

        # should be no directional suffixes for 0 degree coordinates
        self.assertEqual(QgsCoordinateFormatter.formatY(0, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"0°0.00′")
        # should also be no directional suffix for 0 degree coordinates within specified precision
        self.assertEqual(QgsCoordinateFormatter.formatY(-0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"0°0.00′")
        self.assertEqual(QgsCoordinateFormatter.formatY(0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"0°0.00′")
        self.assertEqual(QgsCoordinateFormatter.formatY(-0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5), u"0°0.00006′S")
        self.assertEqual(QgsCoordinateFormatter.formatY(0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5), u"0°0.00006′N")

        # test rounding does not create minutes >= 60
        self.assertEqual(QgsCoordinateFormatter.formatY(79.999999, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"80°0.00′N")

        # test without direction suffix
        self.assertEqual(QgsCoordinateFormatter.formatY(20, QgsCoordinateFormatter.FormatDegreesMinutes, 2, QgsCoordinateFormatter.FormatFlags()), u"20°0.00′")
        # test 0 latitude
        self.assertEqual(QgsCoordinateFormatter.formatY(0, QgsCoordinateFormatter.FormatDegreesMinutes, 2, QgsCoordinateFormatter.FormatFlags()), u"0°0.00′")
        # test near zero latitude
        self.assertEqual(QgsCoordinateFormatter.formatY(0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2, QgsCoordinateFormatter.FormatFlags()), u"0°0.00′")
        # should be no "-" prefix for near-zero latitude when rounding to 2 decimal places
        self.assertEqual(QgsCoordinateFormatter.formatY(-0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2, QgsCoordinateFormatter.FormatFlags()), u"0°0.00′")
        self.assertEqual(QgsCoordinateFormatter.formatY(0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5, QgsCoordinateFormatter.FormatFlags()), u"0°0.00006′")
        self.assertEqual(QgsCoordinateFormatter.formatY(-0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5, QgsCoordinateFormatter.FormatFlags()), u"-0°0.00006′")

        # test with padding
        padding_and_suffix = QgsCoordinateFormatter.FormatFlags(QgsCoordinateFormatter.FlagDegreesPadMinutesSeconds | QgsCoordinateFormatter.FlagDegreesUseStringSuffix)
        self.assertEqual(QgsCoordinateFormatter.formatY(20, QgsCoordinateFormatter.FormatDegreesMinutes, 2, padding_and_suffix), u"20°00.00′N")
        self.assertEqual(QgsCoordinateFormatter.formatY(0, QgsCoordinateFormatter.FormatDegreesMinutes, 2, padding_and_suffix), u"0°00.00′")
        self.assertEqual(QgsCoordinateFormatter.formatY(-0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2, padding_and_suffix), u"0°00.00′")
        self.assertEqual(QgsCoordinateFormatter.formatY(0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2, padding_and_suffix), u"0°00.00′")
        self.assertEqual(QgsCoordinateFormatter.formatY(-0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5, padding_and_suffix), u"0°00.00006′S")
        self.assertEqual(QgsCoordinateFormatter.formatY(0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5, padding_and_suffix), u"0°00.00006′N")
Beispiel #5
0
    def testFormatYDegreesMinutes(self):
        """Test formatting y as DM"""

        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                20, QgsCoordinateFormatter.FormatDegreesMinutes, 2),
            u"20°0.00′N")

        # check precision
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                20, QgsCoordinateFormatter.FormatDegreesMinutes, 4),
            u"20°0.0000′N")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                20.12345678, QgsCoordinateFormatter.FormatDegreesMinutes, 4),
            u"20°7.4074′N")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                20.12345678, QgsCoordinateFormatter.FormatDegreesMinutes, 0),
            u"20°7′N")

        # check if latitudes > 90 or <-90 wrap around
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                190, QgsCoordinateFormatter.FormatDegreesMinutes, 2),
            u"10°0.00′N")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -190, QgsCoordinateFormatter.FormatDegreesMinutes, 2),
            u"10°0.00′S")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                91, QgsCoordinateFormatter.FormatDegreesMinutes, 2),
            u"89°0.00′S")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -91, QgsCoordinateFormatter.FormatDegreesMinutes, 2),
            u"89°0.00′N")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                179, QgsCoordinateFormatter.FormatDegreesMinutes, 2),
            u"1°0.00′S")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -179, QgsCoordinateFormatter.FormatDegreesMinutes, 2),
            u"1°0.00′N")

        # should be no directional suffixes for 0 degree coordinates
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0, QgsCoordinateFormatter.FormatDegreesMinutes, 2), u"0°0.00′")
        # should also be no directional suffix for 0 degree coordinates within specified precision
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2),
            u"0°0.00′")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2),
            u"0°0.00′")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5),
            u"0°0.00006′S")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5),
            u"0°0.00006′N")

        # test rounding does not create minutes >= 60
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                79.999999, QgsCoordinateFormatter.FormatDegreesMinutes, 2),
            u"80°0.00′N")

        # test without direction suffix
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                20, QgsCoordinateFormatter.FormatDegreesMinutes, 2,
                QgsCoordinateFormatter.FormatFlags()), u"20°0.00′")
        # test 0 latitude
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0, QgsCoordinateFormatter.FormatDegreesMinutes, 2,
                QgsCoordinateFormatter.FormatFlags()), u"0°0.00′")
        # test near zero latitude
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2,
                QgsCoordinateFormatter.FormatFlags()), u"0°0.00′")
        # should be no "-" prefix for near-zero latitude when rounding to 2 decimal places
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2,
                QgsCoordinateFormatter.FormatFlags()), u"0°0.00′")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5,
                QgsCoordinateFormatter.FormatFlags()), u"0°0.00006′")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5,
                QgsCoordinateFormatter.FormatFlags()), u"-0°0.00006′")

        # test with padding
        padding_and_suffix = QgsCoordinateFormatter.FormatFlags(
            QgsCoordinateFormatter.FlagDegreesPadMinutesSeconds
            | QgsCoordinateFormatter.FlagDegreesUseStringSuffix)
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                20, QgsCoordinateFormatter.FormatDegreesMinutes, 2,
                padding_and_suffix), u"20°00.00′N")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0, QgsCoordinateFormatter.FormatDegreesMinutes, 2,
                padding_and_suffix), u"0°00.00′")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2,
                padding_and_suffix), u"0°00.00′")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 2,
                padding_and_suffix), u"0°00.00′")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                -0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5,
                padding_and_suffix), u"0°00.00006′S")
        self.assertEqual(
            QgsCoordinateFormatter.formatY(
                0.000001, QgsCoordinateFormatter.FormatDegreesMinutes, 5,
                padding_and_suffix), u"0°00.00006′N")