[
https://issues.apache.org/jira/browse/LUCENE-8251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16437407#comment-16437407
]
Karl Wright commented on LUCENE-8251:
-------------------------------------
Things have quieted down enough so I can look at this some more.
The first thing I noted was that we've got detected intersections with both
inner and outer envelopes for the travel plane. But they aren't discovered to
be crossings -- because when you start at the intersection point and move along
the edge a small distance either way, you're not inside the actual travel plane
zone:
{code}
[junit4] 1> TestPoint plane: [lat=-1.1675693914784415,
lon=-1.8506150182993802E-4([X=0.39171238223740795, Y=-7.249088256978756E-5,
Z=-0.9182146655290553])] -> [X=1.0011188498955597, Y=-7.249088256978756E-5,
Z=-5.4114167758588356E-5]
[junit4] 1> Travel plane:
[1.0011188498955597,9.057045181228716E-5,3.5E-323] -> [X=1.0011188498955597,
Y=-7.249088256978756E-5, Z=-5.4114167758588356E-5]
[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> 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 inner crossings...
[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 outer crossings...
[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}
If the edge plane were parallel, or nearly parallel, to the envelope plane,
that might explain it -- and I think that may actually be the case.
> 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)
>
> Attachments: LUCENE-8251.jpg
>
>
> {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]