[GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
41 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------

Comment (by strk):

 Reading the WKT from a file allows me to run the test, but the result of
 the test is a MULTILINESTRING EMPTY, dunno why:
 {{{
       FileInputStream fstream = new FileInputStream("/tmp/x");
       BufferedReader br = new BufferedReader(new
 InputStreamReader(fstream));
       String wkt1 = br.readLine();
       String wkt2 = br.readLine();
       String expected = "POINT EMPTY"; /* known to NOT be what we really
 want */
       double tol = 1.79499E-6;
       System.err.println("Using WKT1: " + wkt1);
       System.err.println("Using WKT2: " + wkt2);
       System.err.println("Using tolerance: " + tol);
       checkRounding(wkt1, wkt2, tol, expected);
 }}}

 Which results in:
 {{{
 FAIL - Expected = POINT EMPTY actual = MULTILINESTRING EMPTY
 F
 Time: 0.095
 There was 1 failure:
 1)
 testOverlappingLinesWithNearVertex(org.locationtech.jts.noding.snap.SnappingNoderTest)junit.framework.AssertionFailedError
         at test.jts.GeometryTestCase.checkEqual(GeometryTestCase.java:61)
         at
 org.locationtech.jts.noding.snap.SnappingNoderTest.checkRounding(SnappingNoderTest.java:53)
         at
 org.locationtech.jts.noding.snap.SnappingNoderTest.testOverlappingLinesWithNearVertex(SnappingNoderTest.java:31)
         at
 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
 Method)
         at
 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
         at
 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at
 org.locationtech.jts.noding.snap.SnappingNoderTest.main(SnappingNoderTest.java:14)

 FAILURES!!!
 Tests run: 1,  Failures: 1,  Errors: 0
 }}}

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:19>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------

Comment (by strk):

 Martin: how about an XML operation doing just SnappingNoder ?

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:20>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------

Comment (by mdavis):

 This is what the
 [https://github.com/locationtech/jts/blob/master/doc/JTSOp.md jtsop
 utility] is for.  You can put WKT or WKB in files, and run any function
 that is provided in the TestBuilder (which is many), or else run your own
 (by add a class file containing static methods).

 So if you have the following files:
 {{{
 snapping-test-a.wkt:
 LINESTRING (100 200, 200 100.1, 300 100)

 snapping-test-b.wkt:
 LINESTRING (100 200, 200 100.1, 300 100)
 }}}

 the SnappingNoder can be run using:
 {{{
 <JTS_HOME>/bin/jtsop.sh -a snapping-test-a.wkt -b snapping-test-b.wkt -f
 wkt Noding.snappingNoder 1
 }}}

 (Note that the Noding.snappingNoder function actually allows a null second
 input, but at the moment the jtsop command doesn't recognize this).

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:21>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------
Changes (by strk):

 * Attachment "TestOverlay-geos-1051-simp.xml" added.

 First simplification of testcase (1/10 simplification)

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------
Changes (by strk):

 * Attachment "TestOverlay-geos-1051-simp.xml" added.

 First simplification of testcase (1/10 simplification)

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------

Comment (by strk):

 With TestOverlay-geos-1051-simp.xml​ both GEOS and JTS SnappingNoder end
 up with 636 noded segmentstrings. Hard to tell how they differ between
 one-other as the output is slightly different in terms of significant
 digits.

 To get you an Idea I'll paste the first 10 noded segstrings for each.

 GEOS:
 {{{
 Trying overlaySnapping(tol 1.79499e-06).
 NODED:  LINESTRING(654948.38532997924 1794977.1058540251,
 654995.48203391524 1794988.7717037243)
 NODED:  LINESTRING(654995.48203391524 1794988.7717037243,
 654997.17955858458 1794989.1921804454)
 NODED:  LINESTRING(654997.17955858458 1794989.1921804454,
 655000.36381421797 1794989.9809203045, 655006.34643579996
 1794983.8258888787)
 NODED:  LINESTRING(655006.34643579996 1794983.8258888787,
 655051.77446297742 1794937.088696653, 655102.56059972045
 1794927.5021000544)
 NODED:  LINESTRING(655102.56059972045 1794927.5021000544,
 655108.42102836783 1794926.3958618378, 655110.0720664172
 1794923.1048861023)
 NODED:  LINESTRING(655110.0720664172 1794923.1048861023,
 655110.12012789119 1794923.0090862843)
 NODED:  LINESTRING(655110.12012789119 1794923.0090862843,
 655111.03361745446 1794921.1882487882, 655105.8944992529
 1794809.0953964447, 655103.6628449125 1794805.4566734952)
 NODED:  LINESTRING(655103.6628449125 1794805.4566734952,
 655070.41920929297 1794806.064489258, 655062.62551842164
 1794798.488781017, 655061.46045440866 1794798.8496030809,
 655063.81619753118 1794810.6547597279)
 NODED:  LINESTRING(655063.81619753118 1794810.6547597279,
 655064.15367999999 1794812.3459600001, 655064.1887750614
 1794812.591778927, 655042.95566738653 1794904.1646406003,
 655029.10396397568 1794921.2111610321, 655029.01317000005
 1794921.3055899998, 655028.61825000006 1794921.71276, 655028.22155999998
 1794922.1181999999, 655027.82310000004 1794922.5219099999,
 655027.69848218339 1794922.6470757592, 655027.63206300582
 1794922.7137853792, 655027.62398069503 1794922.721903034)
 NODED:  LINESTRING(655027.62398069503 1794922.721903034,
 655027.62397786777 1794922.7219058727)
 }}}

 JTS:
 {{{
 try overlaySnapping with tolerance 1.7949899809203045E-6
 NODED: LINESTRING (654948.3853299792 1794977.105854025, 654995.4820339152
 1794988.7717037243)
 NODED: LINESTRING (654995.4820339152 1794988.7717037243, 654997.1795585846
 1794989.1921804454)
 NODED: LINESTRING (654997.1795585846 1794989.1921804454, 655000.363814218
 1794989.9809203045, 655006.3464358 1794983.8258888787)
 NODED: LINESTRING (655006.3464358 1794983.8258888787, 655051.7744629774
 1794937.088696653, 655102.5605997205 1794927.5021000544)
 NODED: LINESTRING (655102.5605997205 1794927.5021000544, 655108.4210283678
 1794926.3958618378, 655110.0720664172 1794923.1048861023)
 NODED: LINESTRING (655110.0720664172 1794923.1048861023, 655110.1201278912
 1794923.0090862843)
 NODED: LINESTRING (655110.1201278912 1794923.0090862843, 655111.0336174545
 1794921.1882487882, 655105.8944992529 1794809.0953964447,
 655103.6628449125 1794805.4566734952)
 NODED: LINESTRING (655103.6628449125 1794805.4566734952, 655070.419209293
 1794806.064489258, 655062.6255184216 1794798.488781017, 655061.4604544087
 1794798.849603081, 655063.8161975312 1794810.654759728)
 NODED: LINESTRING (655063.8161975312 1794810.654759728, 655064.15368
 1794812.34596, 655064.1887750614 1794812.591778927, 655042.9556673865
 1794904.1646406003, 655029.1039639757 1794921.211161032, 655029.01317
 1794921.3055899998, 655028.61825 1794921.71276, 655028.22156 1794922.1182,
 655027.8231 1794922.52191, 655027.6984821834 1794922.6470757592,
 655027.6320630058 1794922.7137853792, 655027.623980695 1794922.721903034)
 NODED: LINESTRING (655027.623980695 1794922.721903034, 655027.6239778678
 1794922.7219058727)
 }}}

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:22>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------

Comment (by strk):

 Snap tolerance is the same up to 17 significant digits:
 1.7949899809203045E-6 (verified in GEOS)

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:23>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------
Changes (by strk):

 * Attachment "TestOverlay-geos-1051-simp2.xml" added.

 Further simplified testcase (only 6 vertices each polygon)

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------

Comment (by strk):

 The second simplified testcase has only 6 vertices in each polygon, which
 should help comparing JTS and GEOS.

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:24>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------

Comment (by strk):

 Now that I see only 20 noded segments strings I can spot that ONE
 segmentstring has 3 vertices instead of 2 in the GEOS case. I'll write
 them all here:

 GEOS:
 {{{
 NODED: LINESTRING(654948.38532997924 1794977.1058540251,
 655015.54770534404 1794940.3747519043)
 NODED: LINESTRING(655015.54770534404 1794940.3747519043,
 655016.29615051334 1794939.965427252)
 NODED: LINESTRING(655016.29615051334 1794939.965427252, 655016.3812220972
 1794939.9189016039, 655016.20226531825 1794940.1099718122)
 NODED: LINESTRING(655016.20226531825 1794940.1099718122,
 655016.20226000005 1794940.10998)
 NODED: LINESTRING(655016.20226000005 1794940.10998, 655016.20225819293
 1794940.1099794197)
 NODED: LINESTRING(655016.20225819293 1794940.1099794197,
 655016.20126093226 1794940.1110076148)
 NODED: LINESTRING(655016.20126093226 1794940.1110076148,
 655014.92640687118 1794941.4254068714, 655014.83171824354
 1794941.5196832407)
 NODED: LINESTRING(655014.83171824354 1794941.5196832407,
 655014.82956023223 1794941.5218318563)
 NODED: LINESTRING(655014.82956023223 1794941.5218318563,
 655014.74088346737 1794941.6101225375)
 NODED: LINESTRING(655014.74088346737 1794941.6101225375,
 654948.38532997924 1794977.1058540251)
 NODED: LINESTRING(655103.66284549481 1794805.4566744049,
 655016.29615051334 1794939.965427252)
 NODED: LINESTRING(655016.29615051334 1794939.965427252, 655016.20226531825
 1794940.1099718122)
 XXXXX: LINESTRING(655016.20226531825 1794940.1099718122,
 655016.20226000005 1794940.10998, 655016.20225819293 1794940.1099794197)
 NODED: LINESTRING(655016.20225819293 1794940.1099794197,
 655016.20226000005 1794940.10998)
 NODED: LINESTRING(655016.20226000005 1794940.10998,
 655016.20126093226 1794940.1110076148)
 NODED: LINESTRING(655016.20126093226 1794940.1110076148,
 655014.83171824354 1794941.5196832407)
 NODED: LINESTRING(655014.83171824354 1794941.5196832407,
 655014.82956023223 1794941.5218318563)
 NODED: LINESTRING(655014.82956023223 1794941.5218318563,
 655014.74088346737 1794941.6101225375)
 NODED: LINESTRING(655014.74088346737 1794941.6101225375,
 655015.54770534404 1794940.3747519043)
 NODED: LINESTRING(655015.54770534404 1794940.3747519043,
 655103.66284549481 1794805.4566744049)
 }}}

 JTS:
 {{{
 NODED: LINESTRING(654948.3853299792  1794977.105854025,  655015.547705344
 1794940.3747519043)
 NODED: LINESTRING(655015.547705344   1794940.3747519043, 655016.2961505133
 1794939.965427252)
 NODED: LINESTRING(655016.2961505133  1794939.965427252, 655016.3812220972
 1794939.918901604,  655016.2022653183  1794940.1099718122)
 NODED: LINESTRING(655016.2022653183  1794940.1099718122, 655016.20226
 1794940.10998)
 NODED: LINESTRING(655016.20226       1794940.10998, 655016.2022581929
 1794940.1099794197)
 NODED: LINESTRING(655016.2022581929  1794940.1099794197, 655016.2012609323
 1794940.1110076148)
 NODED: LINESTRING(655016.2012609323  1794940.1110076148, 655014.9264068712
 1794941.4254068714, 655014.8317182435 1794941.5196832407)
 NODED: LINESTRING(655014.8317182435  1794941.5196832407, 655014.8295602322
 1794941.5218318563)
 NODED: LINESTRING(655014.8295602322  1794941.5218318563, 655014.7408834674
 1794941.6101225375)
 NODED: LINESTRING(655014.7408834674  1794941.6101225375, 654948.3853299792
 1794977.105854025)
 NODED: LINESTRING(655103.6628454948  1794805.456674405,  655016.2961505133
 1794939.965427252)
 NODED: LINESTRING(655016.2961505133  1794939.965427252, 655016.2022653183
 1794940.1099718122)
 NODED: LINESTRING(655016.2022653183  1794940.1099718122, 655016.20226
 1794940.10998)
 NODED: LINESTRING(655016.20226       1794940.10998,      655016.2022581929
 1794940.1099794197)
 NODED: LINESTRING(655016.2022581929  1794940.1099794197, 655016.2012609323
 1794940.1110076148)
 NODED: LINESTRING(655016.2012609323  1794940.1110076148, 655014.8317182435
 1794941.5196832407)
 NODED: LINESTRING(655014.8317182435  1794941.5196832407, 655014.8295602322
 1794941.5218318563)
 NODED: LINESTRING(655014.8295602322  1794941.5218318563, 655014.7408834674
 1794941.6101225375)
 NODED: LINESTRING(655014.7408834674  1794941.6101225375, 655015.547705344
 1794940.3747519043)
 NODED: LINESTRING(655015.547705344   1794940.3747519043, 655103.6628454948
 1794805.456674405)
 }}}

 See the one marked with XXXXX in the GEOS output

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:25>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------

Comment (by mdavis):

 The problem turns out to be that GEOS is not sorting the `SegmentNode`s in
 a `SegmentNodeList` quite correctly.  This is shown by dumping the segment
 nodes for the B geometry:

 GEOS:
 {{{
 0: Seg 0 - 655103.66284549481 1794805.4566744049 (Segment Start vertex)
 1: Seg 0 - 655016.29615051334 1794939.965427252
 2: Seg 0 - 655016.20226531825 1794940.1099718122
 3: Seg 1 - 655016.20225819293 1794940.1099794197 <-- *** incorrectly
 sorted ***
 4: Seg 1 - 655016.20226000005 1794940.10998 (Segment Start vertex)
 }}}

 JTS:
 {{{
 0: Seg 0 - 655103.66284549481 1794805.4566744049 (Segment Start vertex)
 1: Seg 0 - 655016.29615051334 1794939.965427252
 2: Seg 0 - 655016.20226531825 1794940.1099718122
 3: Seg 1 - 655016.20226 1794940.10998 (Segment Start vertex)
 4: Seg 1 - 655016.20225819293 1794940.1099794197
 }}}

 Note that the order of the last two nodes is different, AND that in GEOS
 in segment 1 the segment start point is incorrectly sorted ''after'' the
 next node in the segment.

 The reason for this is because the `SegmentNodeComparator` algorithm is
 slightly non-commutative as it stands in GEOS. This is due to the
 assumption that the nodes being compared are very close to the segment
 they are assigned to, so that their relative octant is the same as or
 adjacent to the segment octant.  This assumption doesn't hold in some
 situations when using a snapping tolerance. I.e. a node near a segment
 endpoint may actually lie far enough from the segment that it does not lie
 in the same or an adjacent octant).

 JTS fixed this last year in [https://github.com/locationtech/jts/pull/399
 PR 399], with
 [https://github.com/locationtech/jts/blob/master/modules/core/src/main/java/org/locationtech/jts/noding/SegmentNode.java#L75-L76
 this code].  I verified that this fix solves this test case.

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:26>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  closed
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:  fixed
 Keywords:              |
------------------------+---------------------------

Comment (by mdavis):

 Well spotted, Sandro!  This is a sneaky little bug for sure.

 Now, the question is whether to change the EdgeMerger error back to an
 assertion, rather than a `TopologyException`.  My vote is to revert this
 change, since otherwise it may  mask any further issues with the noding
 code.

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:27>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  reopened
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:
 Keywords:              |
------------------------+---------------------------
Changes (by mdavis):

 * status:  closed => reopened
 * resolution:  fixed =>


--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:28>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  reopened
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:
 Keywords:              |
------------------------+---------------------------

Comment (by strk):

 Great hunter! Reverting to Assert sounds dangerous from a production
 point of view (nobody wants their database cluster brougth down by a
 bug). But we should have an AssertionFailedException handy, to avoid
 TopologyException catching

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:29>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  reopened
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:
 Keywords:              |
------------------------+---------------------------

Comment (by mdavis):

 Replying to [comment:29 strk]:
 > Great hunter! Reverting to Assert sounds dangerous from a production
 > point of view (nobody wants their database cluster brougth down by a
 > bug). But we should have an AssertionFailedException handy, to avoid
 > TopologyException catching

 Very good point.  Is there an `AssertionFailedException` in GEOS?

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:30>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  reopened
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:
 Keywords:              |
------------------------+---------------------------

Comment (by Sandro Santilli <strk@…>):

 In [changeset:"e2157728ed6c5a41155b8f9d69d79ab758d63ed4/git" e215772/git]:
 {{{
 #!CommitTicketReference repository="git"
 revision="e2157728ed6c5a41155b8f9d69d79ab758d63ed4"
 Port JTS fix for very close nodes on same segment.

 References #1051 fixing its root cause.

 This commit partially reverts abb96620c275 to avoid hiding
 eventual other missing ports from JTS.
 }}}

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:31>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  reopened
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:
 Keywords:              |
------------------------+---------------------------

Comment (by strk):

 Yes, and we now use that exception. I'm leaving this ticket open waiting
 for your new fix test to land in JTS and port here (or please close the
 ticket if you don't think you'll create such test)

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:32>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  reopened
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:
 Keywords:              |
------------------------+---------------------------

Comment (by mdavis):

 Some new JTS tests testing SegmentNode ordering using this data are in
 [https://github.com/locationtech/jts/pull/610 JTS PR 610].

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:33>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  reopened
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:
 Keywords:              |
------------------------+---------------------------

Comment (by Sandro Santilli <strk@…>):

 In [changeset:"8d203e348716efed8da34c18b40309259a90024e/git" 8d203e3/git]:
 {{{
 #!CommitTicketReference repository="git"
 revision="8d203e348716efed8da34c18b40309259a90024e"
 Add test for https://trac.osgeo.org/geos/ticket/1051

 References #1051
 }}}

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:34>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GEOS] #1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() == edge->size()' failed.

geos-2
In reply to this post by geos-2
#1051: overlayng::EdgeMerger::merge(): Assertion `baseEdge->size() ==
edge->size()' failed.
------------------------+---------------------------
 Reporter:  strk        |       Owner:  geos-devel@…
     Type:  defect      |      Status:  reopened
 Priority:  blocker     |   Milestone:  3.9.0
Component:  Default     |     Version:  master
 Severity:  Unassigned  |  Resolution:
 Keywords:              |
------------------------+---------------------------

Comment (by Sandro Santilli <strk@…>):

 In [changeset:"3507276eee3ae0623d9aeb4cb91254844834109c/git" 3507276/git]:
 {{{
 #!CommitTicketReference repository="git"
 revision="3507276eee3ae0623d9aeb4cb91254844834109c"
 Another test for 1051, at another level

 References #1051
 }}}

--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1051#comment:35>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).

_______________________________________________
geos-devel mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/geos-devel
123