[
https://issues.apache.org/jira/browse/LUCENE-8251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16437120#comment-16437120
]
Karl Wright commented on LUCENE-8251:
-------------------------------------
Here's the debug output:
{code}
[junit4] 1> The following edges should intersect the travel/testpoint
planes:
[junit4] 1> Travel plane: [lat=-1.0294747773716673,
lon=1.97235866074843([X=-0.20112459723348416, Y=0.47363995489643546,
Z=-0.8558716366345036])] -> [lat=-6.4E-323, lon=0.0([X=1.0011188539924791,
Y=0.0, Z=-6.4E-323])]
[junit4] 1>
[junit4] 1> Considering edge [lat=-0.12884119701201008,
lon=-1.1577813992513593([X=0.39846895697760487, Y=-0.9092889699600809,
Z=-0.1286216320286114])] -> [lat=-0.8977173781916888,
lon=2.3672262552845993([X=-0.44522608342175374, Y=0.435509619
867484, Z=-0.7811731004355484])]
[junit4] 1>
[junit4] 1> Considering edge [lat=-6.4E-323,
lon=0.0([X=1.0011188539924791, Y=0.0, Z=-6.4E-323])] ->
[lat=-0.12884119701201008, lon=-1.1577813992513593([X=0.39846895697760487,
Y=-0.9092889699600809, Z=-0.1286216320286114])]
[junit4] 1>
[junit4] 1> The following edges should intersect the travel/testpoint
planes:
[junit4] 1> Travel plane: [lat=-1.0294747773716673,
lon=1.97235866074843([X=-0.20112459723348416, Y=0.47363995489643546,
Z=-0.8558716366345036])] -> [lat=-6.4E-323, lon=0.0([X=1.0011188539924791,
Y=0.0, Z=-6.4E-323])]
[junit4] 1>
[junit4] 1> Considering edge [lat=-1.0294747773716673,
lon=1.97235866074843([X=-0.20112459723348416, Y=0.47363995489643546,
Z=-0.8558716366345036])] -> [lat=-6.4E-323, lon=0.0([X=1.0011188539924791,
Y=0.0, Z=-6.4E-323])]
[junit4] 1> Edge intersects travel or testPoint plane
[junit4] 1> Assessing travel envelope intersection point
[X=1.0011188498945593, Y=4.374699550797305E-5, Z=-7.90512123316076E-5]...
[junit4] 1> Adjoining point [X=1.0011188498945593,
Y=4.374699502377152E-5, Z=-7.905121145665111E-5] (dist = 9.999999942608793E-13)
is not within
[junit4] 1> Adjoining point [X=1.0011188498945591,
Y=4.3746995992174576E-5, Z=-7.905121320656408E-5] (dist =
1.0000000037738338E-12) is not within
[junit4] 1> Assessing travel envelope intersection point
[X=1.00111884989656, Y=4.3736315090256196E-5, Z=-7.903191272122474E-5]...
[junit4] 1> Adjoining point [X=1.00111884989656,
Y=4.3736314606054664E-5, Z=-7.903191184626825E-5] (dist =
9.999999942608793E-13) is not within
[junit4] 1> Adjoining point [X=1.0011188498965597,
Y=4.373631557445772E-5, Z=-7.903191359618122E-5] (dist =
1.0000000037738338E-12) is not within
{code}
So, only one edge actually intersects the travel planes, but another edge is
considered because it has an endpoint on the travel plane. But that edge does
not generate any crossings with the boundary plane at all! And the first edge
generates no crossings either.
[~ivera], I could use a graphic to show me why this is wrong.
> Test failure, geo3d complex polygons
> ------------------------------------
>
> Key: LUCENE-8251
> URL: https://issues.apache.org/jira/browse/LUCENE-8251
> Project: Lucene - Core
> Issue Type: Bug
> Components: modules/spatial3d
> Affects Versions: master (8.0)
> Reporter: Karl Wright
> Assignee: Karl Wright
> Priority: Major
> Fix For: 6.7, 7.4, master (8.0)
>
>
> {code}
> Error Message:
> Standard polygon: GeoCompositePolygon: {[GeoConvexPolygon:
> {planetmodel=PlanetModel.WGS84, points=[[lat=-0.12884119701201008,
> lon=-1.157781399251359([X=0.3984689569776051, Y=-0.9092889699600808,
> Z=-0.1286216320286114])], [lat=-0.8977173781916888,
> lon=2.3672262552845993([X=-0.44522608342175374, Y=0.435509619867484,
> Z=-0.7811731004355484])], [lat=-1.0294747773716673,
> lon=1.97235866074843([X=-0.20112459723348416, Y=0.47363995489643546,
> Z=-0.8558716366345036])]], internalEdges={2}}, GeoConvexPolygon:
> {planetmodel=PlanetModel.WGS84, points=[[lat=-0.12884119701201008,
> lon=-1.157781399251359([X=0.3984689569776051, Y=-0.9092889699600808,
> Z=-0.1286216320286114])], [lat=-1.0294747773716673,
> lon=1.97235866074843([X=-0.20112459723348416, Y=0.47363995489643546,
> Z=-0.8558716366345036])], [lat=-6.4E-323, lon=0.0([X=1.0011188539924791,
> Y=0.0, Z=-6.4E-323])]], internalEdges={0}}]} Large polygon:
> GeoComplexPolygon: {planetmodel=PlanetModel.WGS84, number of shapes=1,
> address=814a2a8c, testPoint=[lat=-1.1675693914784415,
> lon=-1.850615018297906E-4([X=0.39171238223740806, Y=-7.249088256972983E-5,
> Z=-0.9182146655290553])], testPointInSet=true, shapes={
> {[lat=-0.12884119701201008, lon=-1.157781399251359([X=0.3984689569776051,
> Y=-0.9092889699600808, Z=-0.1286216320286114])], [lat=-0.8977173781916888,
> lon=2.3672262552845993([X=-0.44522608342175374, Y=0.435509619867484,
> Z=-0.7811731004355484])], [lat=-1.0294747773716673,
> lon=1.97235866074843([X=-0.20112459723348416, Y=0.47363995489643546,
> Z=-0.8558716366345036])], [lat=-6.4E-323, lon=0.0([X=1.0011188539924791,
> Y=0.0, Z=-6.4E-323])]}} Point: [lat=3.5E-323,
> lon=9.046923007656787E-5([X=1.0011188498955597, Y=9.057045181228716E-5,
> Z=3.5E-323])] WKT: POLYGON((135.63207358036593
> -51.43541696593334,113.00782694696038 -58.984559858566556,0.0
> -3.68E-321,-66.33598777585381 -7.382056816201731,135.63207358036593
> -51.43541696593334)) WKT: POINT(0.005183505059185348 1.98E-321) normal
> polygon: false large polygon: true
> Stack Trace:
> java.lang.AssertionError:
> Standard polygon: GeoCompositePolygon: {[GeoConvexPolygon:
> {planetmodel=PlanetModel.WGS84, points=[[lat=-0.12884119701201008,
> lon=-1.157781399251359([X=0.3984689569776051, Y=-0.9092889699600808,
> Z=-0.1286216320286114])], [lat=-0.8977173781916888,
> lon=2.3672262552845993([X=-0.44522608342175374, Y=0.435509619867484,
> Z=-0.7811731004355484])], [lat=-1.0294747773716673,
> lon=1.97235866074843([X=-0.20112459723348416, Y=0.47363995489643546,
> Z=-0.8558716366345036])]], internalEdges={2}}, GeoConvexPolygon:
> {planetmodel=PlanetModel.WGS84, points=[[lat=-0.12884119701201008,
> lon=-1.157781399251359([X=0.3984689569776051, Y=-0.9092889699600808,
> Z=-0.1286216320286114])], [lat=-1.0294747773716673,
> lon=1.97235866074843([X=-0.20112459723348416, Y=0.47363995489643546,
> Z=-0.8558716366345036])], [lat=-6.4E-323, lon=0.0([X=1.0011188539924791,
> Y=0.0, Z=-6.4E-323])]], internalEdges={0}}]}
> Large polygon: GeoComplexPolygon: {planetmodel=PlanetModel.WGS84, number of
> shapes=1, address=814a2a8c, testPoint=[lat=-1.1675693914784415,
> lon=-1.850615018297906E-4([X=0.39171238223740806, Y=-7.249088256972983E-5,
> Z=-0.9182146655290553])], testPointInSet=true, shapes={
> {[lat=-0.12884119701201008, lon=-1.157781399251359([X=0.3984689569776051,
> Y=-0.9092889699600808, Z=-0.1286216320286114])], [lat=-0.8977173781916888,
> lon=2.3672262552845993([X=-0.44522608342175374, Y=0.435509619867484,
> Z=-0.7811731004355484])], [lat=-1.0294747773716673,
> lon=1.97235866074843([X=-0.20112459723348416, Y=0.47363995489643546,
> Z=-0.8558716366345036])], [lat=-6.4E-323, lon=0.0([X=1.0011188539924791,
> Y=0.0, Z=-6.4E-323])]}}
> Point: [lat=3.5E-323, lon=9.046923007656787E-5([X=1.0011188498955597,
> Y=9.057045181228716E-5, Z=3.5E-323])]
> WKT: POLYGON((135.63207358036593 -51.43541696593334,113.00782694696038
> -58.984559858566556,0.0 -3.68E-321,-66.33598777585381
> -7.382056816201731,135.63207358036593 -51.43541696593334))
> WKT: POINT(0.005183505059185348 1.98E-321)
> normal polygon: false
> large polygon: true
> at
> __randomizedtesting.SeedInfo.seed([C1E5FF7FBC7AC980:47CE8D3C5A69DD5B]:0)
> at org.junit.Assert.fail(Assert.java:93)
> at org.junit.Assert.assertTrue(Assert.java:43)
> at
> org.apache.lucene.spatial3d.geom.RandomGeoPolygonTest.testComparePolygons(RandomGeoPolygonTest.java:179)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1737)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:934)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:970)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:984)
> at
> org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49)
> at
> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
> at
> org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48)
> at
> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64)
> at
> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47)
> at
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
> at
> com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368)
> at
> com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817)
> at
> com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:943)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:829)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:879)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:890)
> at
> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
> at
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
> at
> org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41)
> at
> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
> at
> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
> at
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
> at
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
> at
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
> at
> org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
> at
> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47)
> at
> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64)
> at
> org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54)
> at
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
> at
> com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368)
> at java.lang.Thread.run(Thread.java:748)
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]