Skip to content

[Bug] pygrass/vector – test_pygrass_vector_doctests fails with GEOS 3.12 #4118

@nilason

Description

@nilason

pygrass/vector – test_pygrass_vector_doctests fails with GEOS 3.12 (Python 3.12 and Numpy 2.0.1) at least on Mac, which is a regression compared to current CI setup with GEOS 3.11 (Python 3.11 and Numpy 1.26.4).

test_pygrass_vector_Change WKTWriter defaults output dimension to 4 and trim to ‘on’ ([GH-915](https://github.com/libgeos/geos/issues/915), Mike Taves)

./python/grass/pygrass/vector – test_pygrass_vector_doctests

❌ Test failed

Test	test_pygrass_vector_doctests
Testsuite	./python/grass/pygrass/vector
Test file	./python/grass/pygrass/vector/testsuite/test_pygrass_vector_doctests.py
Status	FAILED
Return code	1
Number of tests	99
Successful tests	96
Failed tests	3
Percent successful	97%
Test duration	0:00:00.789286
Supplementary files

standard output (stdout)
standard error output (stderr)
Standard error output (stderr)

Building topology for vector map <vector_doctest_map@__python_grass_pygrass_vector_test_pygrass_vector_doctests_Mac_1722423178195_local_28327>...
Registering primitives...

Building areas...
0..9..18..27..36..45..54..63..72..81..90..100
Attaching islands...
0..50..100
Attaching centroids...
0..25..50..75..100
Building topology for vector map <abstract_doctest_map@__python_grass_pygrass_vector_test_pygrass_vector_doctests_Mac_1722423178195_local_28327>...
Registering primitives...

Building areas...
0..9..18..27..36..45..54..63..72..81..90..100
Attaching islands...
0..50..100
Attaching centroids...
0..25..50..75..100
Building topology for vector map <geometry_doctest_map@__python_grass_pygrass_vector_test_pygrass_vector_doctests_Mac_1722423178195_local_28327>...
Registering primitives...

Building areas...
0..9..18..27..36..45..54..63..72..81..90..100
Attaching islands...
0..50..100
Attaching centroids...
0..25..50..75..100
Building topology for vector map <find_doctest_map@__python_grass_pygrass_vector_test_pygrass_vector_doctests_Mac_1722423178195_local_28327>...
Registering primitives...

Building areas...
0..9..18..27..36..45..54..63..72..81..90..100
Attaching islands...
0..50..100
Attaching centroids...
0..25..50..75..100
Building topology for vector map <table_doctest_map@__python_grass_pygrass_vector_test_pygrass_vector_doctests_Mac_1722423178195_local_28327>...
Registering primitives...

Building areas...
0..9..18..27..36..45..54..63..72..81..90..100
Attaching islands...
0..50..100
Attaching centroids...
0..25..50..75..100
...Option <column> given, assuming <use=attr>...
Converting color rules into categories...
0..33..66..100
Writing color rules...
Color table for vector map <mytest_vect@__python_grass_pygrass_vector_test_pygrass_vector_doctests_Mac_1722423178195_local_28327> set to 'population'
.Building topology for vector map <newvect@__python_grass_pygrass_vector_test_pygrass_vector_doctests_Mac_1722423178195_local_28327>...
Registering primitives...

.........Building topology for vector map <newvect_2@__python_grass_pygrass_vector_test_pygrass_vector_doctests_Mac_1722423178195_local_28327>...
Registering primitives...

Building topology for vector map <newvect_2@__python_grass_pygrass_vector_test_pygrass_vector_doctests_Mac_1722423178195_local_28327>...
Registering primitives...

...............F...........F........................F.................................
======================================================================
FAIL: area (grass.pygrass.vector.find.PointFinder)
Doctest: grass.pygrass.vector.find.PointFinder.area
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/runner/micromamba/envs/grass-env/lib/python3.12/doctest.py", line 2256, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for grass.pygrass.vector.find.PointFinder.area
  File "etc/python/grass/pygrass/vector/find.py", line 273, in area

----------------------------------------------------------------------
File "etc/python/grass/pygrass/vector/find.py", line 298, in grass.pygrass.vector.find.PointFinder.area
Failed example:
    for area in result:
        print(area.to_wkt())         #doctest: +NORMALIZE_WHITESPACE
Expected:
    POLYGON ((0.0000000000000000 0.0000000000000000,
              0.0000000000000000 4.0000000000000000,
              0.0000000000000000 4.0000000000000000,
              4.0000000000000000 4.0000000000000000,
              4.0000000000000000 4.0000000000000000,
              4.0000000000000000 0.0000000000000000,
              4.0000000000000000 0.0000000000000000,
              0.0000000000000000 0.0000000000000000),
             (1.0000000000000000 1.0000000000000000,
              3.0000000000000000 1.0000000000000000,
              3.0000000000000000 3.0000000000000000,
              1.0000000000000000 3.0000000000000000,
              1.0000000000000000 1.0000000000000000))
    POLYGON ((4.0000000000000000 0.0000000000000000,
              4.0000000000000000 4.0000000000000000,
              4.0000000000000000 4.0000000000000000,
              6.0000000000000000 4.0000000000000000,
              6.0000000000000000 4.0000000000000000,
              6.0000000000000000 0.0000000000000000,
              6.0000000000000000 0.0000000000000000,
              4.0000000000000000 0.0000000000000000))
    POLYGON ((6.0000000000000000 0.0000000000000000,
              6.0000000000000000 4.0000000000000000,
              6.0000000000000000 4.0000000000000000,
              8.0000000000000000 4.0000000000000000,
              8.0000000000000000 4.0000000000000000,
              8.0000000000000000 0.0000000000000000,
              8.0000000000000000 0.0000000000000000,
              6.0000000000000000 0.0000000000000000))
Got:
    POLYGON ((0 0, 0 4, 0 4, 4 4, 4 4, 4 0, 4 0, 0 0), (1 1, 3 1, 3 3, 1 3, 1 1))
    POLYGON ((4 0, 4 4, 4 4, 6 4, 6 4, 6 0, 6 0, 4 0))
    POLYGON ((6 0, 6 4, 6 4, 8 4, 8 4, 8 0, 8 0, 6 0))


======================================================================
FAIL: to_wkt (grass.pygrass.vector.geometry.Geo)
Doctest: grass.pygrass.vector.geometry.Geo.to_wkt
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/runner/micromamba/envs/grass-env/lib/python3.12/doctest.py", line 2256, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for grass.pygrass.vector.geometry.Geo.to_wkt
  File "etc/python/grass/pygrass/vector/geometry.py", line 385, in to_wkt

----------------------------------------------------------------------
File "etc/python/grass/pygrass/vector/geometry.py", line 390, in grass.pygrass.vector.geometry.Geo.to_wkt
Failed example:
    pnt.to_wkt()
Expected:
    'POINT (10.0000000000000000 100.0000000000000000)'
Got:
    'POINT (10 100)'


======================================================================
FAIL: Point (grass.pygrass.vector.geometry)
Doctest: grass.pygrass.vector.geometry.Point
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/runner/micromamba/envs/grass-env/lib/python3.12/doctest.py", line 2256, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for grass.pygrass.vector.geometry.Point
  File "etc/python/grass/pygrass/vector/geometry.py", line 413, in Point

----------------------------------------------------------------------
File "etc/python/grass/pygrass/vector/geometry.py", line 434, in grass.pygrass.vector.geometry.Point
Failed example:
    print(pnt)
Expected:
    POINT Z (0.0000000000000000 0.0000000000000000 0.0000000000000000)
Got:
    POINT Z (0 0 0)


----------------------------------------------------------------------
Ran 99 tests in 0.597s
FAILED (failures=3)```

Metadata

Metadata

Assignees

No one assigned

    Labels

    PythonRelated code is in PythonbugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions