From 627db1a41b5994f6879692fc91a134a94cfeab27 Mon Sep 17 00:00:00 2001 From: rldhont Date: Tue, 2 Jul 2019 12:58:08 +0200 Subject: [PATCH] [Tests] Add to PyQgsOgcUtils some tests to interpret specific text as decimal in scientific notation Fixed #27262 --- tests/src/python/test_qgsogcutils.py | 84 ++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/tests/src/python/test_qgsogcutils.py b/tests/src/python/test_qgsogcutils.py index bf3785a622c..c670ae0e6ca 100644 --- a/tests/src/python/test_qgsogcutils.py +++ b/tests/src/python/test_qgsogcutils.py @@ -98,6 +98,27 @@ class TestQgsOgcUtils(unittest.TestCase): e = QgsOgcUtils.expressionFromOgcFilter(d.documentElement(), vl) self.assertEqual(e.expression(), 'id > 2 AND id < 4') + # Literals are Scientific notation 15e-01 and 35e-01 + f = ''' + + + + id + 15e-01 + + + id + 35e-01 + + + + ''' + d = QDomDocument('filter') + d.setContent(f, True) + + e = QgsOgcUtils.expressionFromOgcFilter(d.documentElement(), vl) + self.assertEqual(e.expression(), 'id > 2 AND id < 4') + def test_expressionFromOgcFilterWithLonglong(self): """ Test expressionFromOgcFilter with LongLong type field @@ -168,6 +189,27 @@ class TestQgsOgcUtils(unittest.TestCase): e = QgsOgcUtils.expressionFromOgcFilter(d.documentElement(), vl) self.assertEqual(e.expression(), 'id > 2 AND id < 4') + # Literals are Scientific notation 15e-01 and 35e-01 + f = ''' + + + + id + 15e-01 + + + id + 35e-01 + + + + ''' + d = QDomDocument('filter') + d.setContent(f, True) + + e = QgsOgcUtils.expressionFromOgcFilter(d.documentElement(), vl) + self.assertEqual(e.expression(), 'id > 2 AND id < 4') + def test_expressionFromOgcFilterWithDouble(self): """ Test expressionFromOgcFilter with Double type field @@ -239,6 +281,27 @@ class TestQgsOgcUtils(unittest.TestCase): e = QgsOgcUtils.expressionFromOgcFilter(d.documentElement(), vl) self.assertEqual(e.expression(), 'id > 1.5 AND id < 3.5') + # Literals are Scientific notation 15e-01 and 35e-01 + f = ''' + + + + id + 15e-01 + + + id + 35e-01 + + + + ''' + d = QDomDocument('filter') + d.setContent(f, True) + + e = QgsOgcUtils.expressionFromOgcFilter(d.documentElement(), vl) + self.assertEqual(e.expression(), 'id > 1.5 AND id < 3.5') + def test_expressionFromOgcFilterWithString(self): """ Test expressionFromOgcFilter with String type field @@ -310,6 +373,27 @@ class TestQgsOgcUtils(unittest.TestCase): e = QgsOgcUtils.expressionFromOgcFilter(d.documentElement(), vl) self.assertEqual(e.expression(), 'id > \'1.5\' AND id < \'3.5\'') + # Literals are Scientific notation 15e-01 and 35e-01 + f = ''' + + + + id + 15e-01 + + + id + 35e-01 + + + + ''' + d = QDomDocument('filter') + d.setContent(f, True) + + e = QgsOgcUtils.expressionFromOgcFilter(d.documentElement(), vl) + self.assertEqual(e.expression(), 'id > \'15e-01\' AND id < \'35e-01\'') + if __name__ == '__main__': unittest.main()