[ 
https://issues.apache.org/jira/browse/LUCENE-8512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16624978#comment-16624978
 ] 

Karl Wright commented on LUCENE-8512:
-------------------------------------

More debug output:

{code}
   [junit4] Suite: org.apache.lucene.spatial3d.geom.GeoPolygonTest
   [junit4]   1> traveling from point1 to point2...
   [junit4]   1> 
   [junit4]   1> IsInSet called for 
[0.30714981250962886,0.2184407265252787,-0.9262519320737786], 
testPoint=[X=-0.30714981250962886, Y=-0.2184407265252787, 
Z=0.9262519320737786]; is in set? true
   [junit4]   1>  Using two planes
   [junit4]   1> Trying traversal strategy {firstLegValue=-0.2184407265252787; 
secondLegValue=0.30714981250962886; firstLegPlane=[A=0.0, B=1.0; C=0.0; 
D=0.2184407265252787]; secondLegPlane=[A=1.0, B=0.0; C=0.0; 
D=-0.30714981250962886]; intersectionPoint=[X=0.30714981250962886, 
Y=-0.2184407265252787, Z=0.9262519320737789]}
   [junit4]   1> Applying traversal strategy...
   [junit4]   1>  Finding whether [X=0.30714981250962886, 
Y=-0.2184407265252787, Z=0.9262519320737789] is in-set, based on travel from 
[X=-0.30714981250962886, Y=-0.2184407265252787, Z=0.9262519320737786] along 
[A=0.0, B=1.0; C=0.0; D=0.2184407265252787] (value=-0.2184407265252787)
   [junit4]   1>  creating sector linear crossing edge iterator
   [junit4]   1>  Finding whether 
[0.30714981250962886,0.2184407265252787,-0.9262519320737786] is in-set, based 
on travel from [X=0.30714981250962886, Y=-0.2184407265252787, 
Z=0.9262519320737789] along [A=1.0, B=0.0; C=0.0; D=-0.30714981250962886] 
(value=0.30714981250962886)
   [junit4]   1>  creating sector linear crossing edge iterator
   [junit4]   1>  failed; create full linear crossing edge iterator
   [junit4]   1>  Constructing full linear crossing edge iterator
   [junit4]   1> 
   [junit4]   1>  The following edges intersect the travel plane within the 
given bounds:
   [junit4]   1>   Edge [lat=-1.18434322804154, 
lon=0.618199439360918([X=0.3071490586684479, Y=0.2184426438256418, 
Z=-0.9262517298864009])] --> [lat=-1.1843453737470075, 
lon=0.6181782206159809([X=0.30715207402261285, Y=0.21843497462105488, 
Z=-0.9262525386123953])]:
   [junit4]   1>    ... intersects!!
   [junit4]   1>   Edge [lat=-1.1843453737470075, 
lon=0.6181782206159809([X=0.30715207402261285, Y=0.21843497462105488, 
Z=-0.9262525386123953])] --> [lat=-1.1843432280405986, 
lon=0.6181994393547311([X=0.30714905867051, Y=0.21844264382424686, 
Z=-0.9262517298860461])]:
   [junit4]   1>    ... intersection [X=0.30714981250962886, 
Y=-0.9497725277626164, Z=0.05992610601991444] excluded by edge start plane 
(-0.9856796711858306)
   [junit4]   1>    ... intersection [X=0.30714981250962886, 
Y=-0.9497725277626164, Z=0.05992610601991444] excluded by edge backing plane 
(-0.1686326247309164)
   [junit4]   1>    ... intersection [X=0.30714981250962886, 
Y=0.21844072652709384, Z=-0.9262519320733508] excluded by iterator bound 
(-1.8648971256141067E-12)
   [junit4]   1>   Edge [lat=-1.1843432280405986, 
lon=0.6181994393547311([X=0.30714905867051, Y=0.21844264382424686, 
Z=-0.9262517298860461])] --> [lat=-1.1843432280416921, 
lon=0.618199439357646([X=0.30714905866904785, Y=0.21844264382455517, 
Z=-0.9262517298864584])]:
   [junit4]   1>    ... intersection [X=0.30714981250962886, 
Y=-0.29365668638619585, Z=0.9052208256640913] excluded by edge start plane 
(-0.5888137834947567)
   [junit4]   1>    ... intersection [X=0.30714981250962886, 
Y=-0.29365668638619585, Z=0.9052208256640913] excluded by edge backing plane 
(-0.8082687228684081)
   [junit4]   1>    ... intersection [X=0.30714981250962886, 
Y=0.21844248489294116, Z=-0.9262515173909822] excluded by iterator bound 
(-1.806604178589133E-6)
   [junit4]   1>    ... intersection [X=0.30714981250962886, 
Y=0.21844248489294116, Z=-0.9262515173909822] excluded by edge start plane 
(-7.991787842054343E-7)
   [junit4]   1>   Edge [lat=-1.1843432280416921, 
lon=0.618199439357646([X=0.30714905866904785, Y=0.21844264382455517, 
Z=-0.9262517298864584])] --> [lat=-1.18434322804154, 
lon=0.618199439360918([X=0.3071490586684479, Y=0.2184426438256418, 
Z=-0.9262517298864009])]:
   [junit4]   1>    ... intersection [X=0.3071498125096288, 
Y=-0.8847045499103079, Z=0.35065203841315323] excluded by edge start plane 
(-0.9057986100955359)
   [junit4]   1>    ... intersection [X=0.3071498125096288, 
Y=-0.8847045499103079, Z=0.35065203841315323] excluded by edge backing plane 
(-0.4237084822722725)
   [junit4]   1>    ... intersection [X=0.3071498125096288, 
Y=0.21844127824994175, Z=-0.9262518019587498] excluded by iterator bound 
(-5.668597927166452E-7)
   [junit4]   1>    ... intersection [X=0.3071498125096288, 
Y=0.21844127824994175, Z=-0.9262518019587498] excluded by edge start plane 
(-1.5614941759473089E-6)
   [junit4]   1>  ...done
   [junit4]   1> 
   [junit4]   1>  Edge [[lat=-1.18434322804154, 
lon=0.618199439360918([X=0.3071490586684479, Y=0.2184426438256418, 
Z=-0.9262517298864009])] --> [lat=-1.1843453737470075, 
lon=0.6181782206159809([X=0.30715207402261285, Y=0.21843497462105488, 
Z=-0.9262525386123953])]] potentially crosses travel plane [A=1.0, B=0.0; 
C=0.0; D=-0.30714981250962886]
   [junit4]   1>   Point is on the edge; in-set
   [junit4]   1>  Check point in set? true
   [junit4]   1> traveling from poin2 to point1...
   [junit4]   1> 
   [junit4]   1> IsInSet called for 
[-0.30714981250962886,-0.2184407265252787,0.9262519320737786], 
testPoint=[X=0.30714981250962886, Y=0.2184407265252787, Z=-0.9262519320737786]; 
is in set? true
   [junit4]   1>  Using two planes
   [junit4]   1> Trying traversal strategy {firstLegValue=0.2184407265252787; 
secondLegValue=-0.30714981250962886; firstLegPlane=[A=0.0, B=1.0; C=0.0; 
D=-0.2184407265252787]; secondLegPlane=[A=1.0, B=0.0; C=0.0; 
D=0.30714981250962886]; intersectionPoint=[X=-0.30714981250962886, 
Y=0.2184407265252787, Z=0.9262519320737789]}
   [junit4]   1> Applying traversal strategy...
   [junit4]   1>  Finding whether [X=-0.30714981250962886, 
Y=0.2184407265252787, Z=0.9262519320737789] is in-set, based on travel from 
[X=0.30714981250962886, Y=0.2184407265252787, Z=-0.9262519320737786] along 
[A=0.0, B=1.0; C=0.0; D=-0.2184407265252787] (value=0.2184407265252787)
   [junit4]   1>  creating sector linear crossing edge iterator
   [junit4]   1>  failed; create full linear crossing edge iterator
   [junit4]   1>  Constructing full linear crossing edge iterator
   [junit4]   1> 
   [junit4]   1>  The following edges intersect the travel plane within the 
given bounds:
   [junit4]   1>   Edge [lat=-1.18434322804154, 
lon=0.618199439360918([X=0.3071490586684479, Y=0.2184426438256418, 
Z=-0.9262517298864009])] --> [lat=-1.1843453737470075, 
lon=0.6181782206159809([X=0.30715207402261285, Y=0.21843497462105488, 
Z=-0.9262525386123953])]:
   [junit4]   1>    ... intersects!!
   [junit4]   1>   Edge [lat=-1.1843453737470075, 
lon=0.6181782206159809([X=0.30715207402261285, Y=0.21843497462105488, 
Z=-0.9262525386123953])] --> [lat=-1.1843432280405986, 
lon=0.6181994393547311([X=0.30714905867051, Y=0.21844264382424686, 
Z=-0.9262517298860461])]:
   [junit4]   1>    ... intersects!!
   [junit4]   1>   Edge [lat=-1.1843432280405986, 
lon=0.6181994393547311([X=0.30714905867051, Y=0.21844264382424686, 
Z=-0.9262517298860461])] --> [lat=-1.1843432280416921, 
lon=0.618199439357646([X=0.30714905866904785, Y=0.21844264382455517, 
Z=-0.9262517298864584])]:
   [junit4]   1>    ... intersection [X=0.3071581526992726, 
Y=0.2184407265252787, Z=-0.9262491663831491] excluded by iterator bound 
(-8.786797365933907E-6)
   [junit4]   1>    ... intersection [X=0.3071581526992726, 
Y=0.2184407265252787, Z=-0.9262491663831491] excluded by edge start plane 
(-9.641003141158677E-6)
   [junit4]   1>    ... intersection [X=-0.9103783615736771, 
Y=0.2184407265252787, Z=-0.35141839418780496] excluded by edge end plane 
(0.9956101834689639)
   [junit4]   1>   Edge [lat=-1.1843432280416921, 
lon=0.618199439357646([X=0.30714905866904785, Y=0.21844264382455517, 
Z=-0.9262517298864584])] --> [lat=-1.18434322804154, 
lon=0.618199439360918([X=0.3071490586684479, Y=0.2184426438256418, 
Z=-0.9262517298864009])]:
   [junit4]   1>    ... intersection [X=0.30715011707887946, 
Y=0.2184407265252787, Z=-0.9262518310770235] excluded by iterator bound 
(-3.208781279018247E-7)
   [junit4]   1>    ... intersection [X=0.30715011707887946, 
Y=0.2184407265252787, Z=-0.9262518310770235] excluded by edge start plane 
(-2.1923748351124206E-6)
   [junit4]   1>    ... intersection [X=-0.49808352522711535, 
Y=0.2184407265252787, Z=0.8391641382306788] excluded by edge end plane 
(0.4702254126647571)
   [junit4]   1>    ... intersection [X=-0.49808352522711535, 
Y=0.2184407265252787, Z=0.8391641382306788] excluded by edge backing plane 
(-0.8825463507854838)
   [junit4]   1>  ...done
   [junit4]   1> 
   [junit4]   1>  Edge [[lat=-1.18434322804154, 
lon=0.618199439360918([X=0.3071490586684479, Y=0.2184426438256418, 
Z=-0.9262517298864009])] --> [lat=-1.1843453737470075, 
lon=0.6181782206159809([X=0.30715207402261285, Y=0.21843497462105488, 
Z=-0.9262525386123953])]] potentially crosses travel plane [A=0.0, B=1.0; 
C=0.0; D=-0.2184407265252787]
   [junit4]   1>   Edge intersects travel plane [A=0.0, B=1.0; C=0.0; 
D=-0.2184407265252787]
   [junit4]   1>   Above crossings = 1; below crossings = 1
   [junit4]   1>  Edge [[lat=-1.1843453737470075, 
lon=0.6181782206159809([X=0.30715207402261285, Y=0.21843497462105488, 
Z=-0.9262525386123953])] --> [lat=-1.1843432280405986, 
lon=0.6181994393547311([X=0.30714905867051, Y=0.21844264382424686, 
Z=-0.9262517298860461])]] potentially crosses travel plane [A=0.0, B=1.0; 
C=0.0; D=-0.2184407265252787]
   [junit4]   1>   Edge intersects travel plane [A=0.0, B=1.0; C=0.0; 
D=-0.2184407265252787]
   [junit4]   1>   Above crossings = 0; below crossings = 1
   [junit4]   1>  Finding whether 
[-0.30714981250962886,-0.2184407265252787,0.9262519320737786] is in-set, based 
on travel from [X=-0.30714981250962886, Y=0.2184407265252787, 
Z=0.9262519320737789] along [A=1.0, B=0.0; C=0.0; D=0.30714981250962886] 
(value=-0.30714981250962886)
   [junit4]   1>  creating sector linear crossing edge iterator
   [junit4]   1>  Check point in set? false
   [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=GeoPolygonTest 
-Dtests.method=testLUCENE8512 -Dtests.seed=571E0D8955849CAB -Dtests.slow=true 
-Dtests.badapples=true -Dtests.locale=en-GB -Dtests.timezone=Asia/Macau 
-Dtests.asserts=true -Dtests.file.encoding=US-ASCII
   [junit4] FAILURE 0.17s | GeoPolygonTest.testLUCENE8512 <<<
{code}


> GeoPolygon test failure
> -----------------------
>
>                 Key: LUCENE-8512
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8512
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: modules/spatial3d
>            Reporter: Ignacio Vera
>            Assignee: Karl Wright
>            Priority: Major
>         Attachments: LUCENE-8512.patch
>
>
>  
> {code:java}
>   [junit4]   2> NOTE: reproduce with: ant test  
> -Dtestcase=RandomGeoPolygonTest -Dtests.method=testCompareSmallPolygons 
> -Dtests.seed=7BA5F34669E15F97 -Dtests.slow=true -Dtests.badapples=true 
> -Dtests.locale=es-CU -Dtests.timezone=America/La_Paz -Dtests.asserts=true 
> -Dtests.file.encoding=UTF8
>    [junit4] FAILURE 0.01s | RandomGeoPolygonTest.testCompareSmallPolygons 
> {seed=[7BA5F34669E15F97:F73170EC892310D]} <<<
>    [junit4]    > Throwable #1: java.lang.AssertionError: Test point1 not 
> correctly in/out of set according to test point2
>    [junit4]    > at 
> __randomizedtesting.SeedInfo.seed([7BA5F34669E15F97:F73170EC892310D]:0)
>    [junit4]    > at 
> org.apache.lucene.spatial3d.geom.GeoComplexPolygon.<init>(GeoComplexPolygon.java:239)
>    [junit4]    > at 
> org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape.createGeoComplexPolygon(GeoPolygonFactory.java:465)
>    [junit4]    > at 
> org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeLargeGeoPolygon(GeoPolygonFactory.java:389)
>    [junit4]    > at 
> org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeGeoPolygon(GeoPolygonFactory.java:226)
>    [junit4]    > at 
> org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeGeoPolygon(GeoPolygonFactory.java:142)
>    [junit4]    > at 
> org.apache.lucene.spatial3d.geom.RandomGeoPolygonTest.testComparePolygons(RandomGeoPolygonTest.java:157)
>    [junit4]    > at 
> org.apache.lucene.spatial3d.geom.RandomGeoPolygonTest.testCompareSmallPolygons(RandomGeoPolygonTest.java:109)
>    [junit4]    > at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    [junit4]    > at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>    [junit4]    > at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>    [junit4]    > at java.base/java.lang.reflect.Method.invoke(Method.java:564)
>    [junit4]    > at java.base/java.lang.Thread.run(Thread.java:844)
>    [junit4] OK      0.34s | RandomGeoPolygonTest.testCompareSmallPolygons 
> {seed=[7BA5F34669E15F97:3DDFF260BF592657]}
>    [junit4] OK      0.35s | RandomGeoPolygonTest.testCompareSmallPolygons 
> {seed=[7BA5F34669E15F97:EA54A4DADB0E1105]}
>    [junit4]   2> NOTE: test params are: 
> codec=HighCompressionCompressingStoredFields(storedFieldsFormat=CompressingStoredFieldsFormat(compressionMode=HIGH_COMPRESSION,
>  chunkSize=1818, maxDocsPerChunk=791, blockSize=936), 
> termVectorsFormat=CompressingTermVectorsFormat(compressionMode=HIGH_COMPRESSION,
>  chunkSize=1818, blockSize=936)), sim=RandomSimilarity(queryNorm=false): {}, 
> locale=es-CU, timezone=America/La_Paz{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to