[geos-devel] bug testcase for scalednoder

strk at refractions.net strk at refractions.net
Fri May 5 11:49:27 EDT 2006


News on this. I found out that the NodingValidator
is actually reporting invalid noding when using
both MCIndexSnapRounder or SimpleSnapRounder.
The same is true with current JTS from CVS,
altought the checkCorrectness() call is commented-out
there, with this comment:

// testing purposes only - remove in final version

Well, uncommenting the checkCorrectness call results in this:

java.lang.RuntimeException: found non-noded intersection at (4.1982161286172776E
16, 4.551233049684474E17, NaN)-(4.1982162924572776E16, 4.551233029204475E17, NaN
) and (4.198216128617275E16, 4.551233049684474E17, NaN)-(4.198216497257282E16, 4
.5512330128204736E17, NaN)
java.lang.RuntimeException: found non-noded intersection at (4.1982161286172776E
16, 4.551233049684474E17, NaN)-(4.1982162924572776E16, 4.551233029204475E17, NaN
) and (4.198216128617275E16, 4.551233049684474E17, NaN)-(4.198216497257282E16, 4
.5512330128204736E17, NaN)
   at com.vividsolutions.jts.noding.NodingValidator.checkInteriorIntersections(c
om.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.S
egmentString, int) (/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.noding.NodingValidator.checkInteriorIntersections(c
om.vividsolutions.jts.noding.SegmentString, com.vividsolutions.jts.noding.Segmen
tString) (/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.noding.NodingValidator.checkInteriorIntersections()
 (/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.noding.NodingValidator.checkValid() (/usr/local/lib
/libjts.so)
   at com.vividsolutions.jts.noding.snapround.MCIndexSnapRounder.checkCorrectnes
s(java.util.Collection) (/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.noding.snapround.MCIndexSnapRounder.computeNodes(ja
va.util.Collection) (/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.noding.ScaledNoder.computeNodes(java.util.Collectio
n) (/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.operation.buffer.BufferBuilder.computeNodedEdges(ja
va.util.List, com.vividsolutions.jts.geom.PrecisionModel) (/usr/local/lib/libjts
.so)
   at com.vividsolutions.jts.operation.buffer.BufferBuilder.buffer(com.vividsolu
tions.jts.geom.Geometry, double) (/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.operation.buffer.BufferOp.bufferFixedPrecision(com.
vividsolutions.jts.geom.PrecisionModel) (/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.operation.buffer.BufferOp.bufferReducedPrecision(in
t) (/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.operation.buffer.BufferOp.bufferReducedPrecision()
(/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.operation.buffer.BufferOp.computeGeometry() (/usr/l
ocal/lib/libjts.so)
   at com.vividsolutions.jts.operation.buffer.BufferOp.getResultGeometry(double)
 (/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.operation.buffer.BufferOp.bufferOp(com.vividsolutio
ns.jts.geom.Geometry, double, int) (/usr/local/lib/libjts.so)
   at com.vividsolutions.jts.geom.Geometry.buffer(double, int) (/usr/local/lib/l
ibjts.so)
 
--strk;


On Thu, May 04, 2006 at 08:58:04PM +0200, strk at refractions.net wrote:
> I post this bug case to better keep track of
> it. In case someone wants to try it, welcome!
> 
> Basically, the same buffer operation, when using
> the MCIndexSnapRounder noder for ScaledNoder
> (BufferOp.cpp, around line 209) results in
> an assertion failing, while using MCIndexNoder
> does not. Might be a memory corruption again,
> but I'm not sure.
> 
> The assertion is in RightmostEdgeFinder#findEdge,
> which expects to find at least a Forward DirectedEdge
> in the given vector, as non-forward edges are skipped.
> 
> The vector of DirectedEdge passed to that function is
> created within BufferSubgraph, so something seems to 
> be going wrong there.
> 
> --strk;
> 
>  /"\    ASCII Ribbon Campaign
>  \ /    Respect for low technology.
>   X     Keep e-mail messages readable by any computer system.
>  / \    Keep it ASCII. 
> 

> <run>
>   <!--precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/-->
>   <precisionModel type="FLOATING" />
> <case><desc>Case #</desc>
> <a>
>  0106000000010000000103000000010000006901000048FE2BB8AE9F19413A4264888F5C514148FE2BB8AE9F1941039BD1868F5C514148FE2BB8AE9F1941EDD7FB848F5C514148FE2BB8AE9F1941D71426838F5C51415840FAB3AE9F1941A06D93818F5C51415840FAB3AE9F19418BAABD7F8F5C51417882C8AFAE9F194154032B7E8F5C51417882C8AFAE9F19413E40557C8F5C514188C496ABAE9F19410799C27A8F5C5141A80665A7AE9F1941D0F12F798F5C5141B84833A3AE9F1941BA2E5A778F5C5141E8CCCF9AAE9F19418387C7758F5C5141080F9E96AE9F19416EC4F1738F5C514118516C92AE9F1941361D5F728F5C514148D5088AAE9F1941FF75CC708F5C51416817D785AE9F1941EAB2F66E8F5C5141889B737DAE9F1941B30B646D8F5C5141B81F1075AE9F19417C64D16B8F5C5141E8A3AC6CAE9F194166A1FB698F5C514118284964AE9F19412FFA68688F5C514148ACE55BAE9F1941F852D6668F5C51419872504FAE9F1941C1AB43658F5C5141C8F6EC46AE9F19418A04B1638F5C5141F87A893EAE9F1941525D1E628F5C51413841F431AE9F19411BB68B608F5C514188075F25AE9F1941E40EF95E8F5C5141C8CDC918AE9F1941AD67665D8F5C5141F8516610AE9F194176C0D35B8F5C51414818D103AE9F19413F19415A8F5C514188DE3BF7AD9F1941E68DF1588F5C5141E8E674E6AD9F1941AFE65E578F5C514128ADDFD9AD9F1941783FCC558F5C514188B518C9AD9F194120B47C548F5C5141D87B83BCAD9F1941E90CEA528F5C51413884BCABAD9F194190819A518F5C5141784A279FAD9F194159DA07508F5C5141D852608EAD9F1941004FB84E8F5C5141385B997DAD9F1941A8C3684D8F5C51419863D26CAD9F19414F38194C8F5C5141F86B0B5CAD9F1941F7ACC94A8F5C51415874444BAD9F19419E217A498F5C5141B87C7D3AAD9F194145962A488F5C514128C78425AD9F1941ED0ADB468F5C514188CFBD14AD9F1941947F8B458F5C5141081AC5FFAC9F19413CF43B448F5C51416822FEEEAC9F1941E368EC428F5C5141D86C05DAAC9F194169F9DF418F5C514148B70CC5AC9F1941116E90408F5C5141C80114B0AC9F194196FE833F8F5C5141280A4D9FAC9F19411C8F773E8F5C51419854548AAC9F1941C403283D8F5C5141189F5B75AC9F19414A941B3C8F5C5141A82B315CAC9F1941D0240F3B8F5C5141F8336A4BAC9F194156B5023A8F5C514188C03F32AC9F1941DC45F6388F5C5141080B471DAC9F194140F22C388F5C514198971C04AC9F1941C68220378F5C514108E223EFAB9F19414C1314368F5C5141986EF9D5AB9F1941B0BF4A358F5C514108B900C1AB9F194136503E348F5C51419845D6A7AB9F19419BFC74338F5C51411890DD92AB9F1941FFA8AB328F5C5141A81CB379AB9F19416455E2318F5C514138A98860AB9F1941C80119318F5C5141C8355E47AB9F19412DAE4F308F5C514148C2332EAB9F1941915A862F8F5C5141D84E0915AB9F1941F606BD2E8F5C514168DBDEFBAA9F194138CF362E8F5C5141F867B4E2AA9F19419D7B6D2D8F5C514188F489C9AA9F1941E043E72C8F5C514118815FB0AA9F194144F01D2C8F5C5141A80D3597AA9F194187B8972B8F5C5141389A0A7EAA9F1941CA80112B8F5C5141D868AE60AA9F19410D498B2A8F5C514168F58347AA9F19415011052A8F5C5141F881592EAA9F194172F5C1298F5C5141880E2F15AA9F1941B5BD3B298F5C514128DDD2F7A99F1941F885B5288F5C5141B869A8DEA99F1941196A72288F5C514168384CC1A99F19413B4E2F288F5C5141E8C421A8A99F19415C32EC278F5C51417851F78EA99F19419FFA65278F5C514128209B71A99F1941C1DE22278F5C5141B8AC7058A99F1941C1DE22278F5C5141587B143BA99F1941E2C2DF268F5C5141E807EA21A99F194104A79C268F5C514188D68D04A99F194104A79C268F5C5141186363EBA89F1941258B59268F5C5141C83107CEA89F1941258B59268F5C514158BEDCB4A89F1941258B59268F5C5141F88C8097A89F1941258B59268F5C51418819567EA89F1941258B59268F5C514128E8F960A89F1941258B59268F5C5141D8B69D43A89F1941258B59268F5C51416843732AA89F194104A79C268F5C51410812170DA89F194104A79C268F5C5141989EECF3A79F1941E2C2DF268F5C5141386D90D6A79F1941C1DE22278F5C5141C8F965BDA79F1941C1DE22278F5C514158863BA4A79F19419FFA65278F5C51410855DF86A79F19415C32EC278F5C514188E1B46DA79F19413B4E2F288F5C514138B05850A79F1941196A72288F5C5141C83C2E37A79F1941F885B5288F5C514158C9031EA79F1941B5BD3B298F5C5141F897A700A79F194172F5C1298F5C514188247DE7A69F19415011052A8F5C514118B152CEA69F19410D498B2A8F5C5141B87FF6B0A69F1941CA80112B8F5C5141480CCC97A69F194187B8972B8F5C5141D898A17EA69F194144F01D2C8F5C514168257765A69F1941E043E72C8F5C5141F8B14C4CA69F19419D7B6D2D8F5C5141883E2233A69F194138CF362E8F5C514118CBF719A69F1941F606BD2E8F5C5141A857CD00A69F1941915A862F8F5C514138E4A2E7A59F19412DAE4F308F5C5141B87078CEA59F1941C80119318F5C514148FD4DB5A59F19416455E2318F5C5141C84755A0A59F1941FFA8AB328F5C514158D42A87A59F19419BFC74338F5C5141E860006EA59F194136503E348F5C514158AB0759A59F1941B0BF4A358F5C5141E837DD3FA59F19414C1314368F5C51415882E42AA59F1941C68220378F5C5141E80EBA11A59F194140F22C388F5C51416859C1FCA49F1941DC45F6388F5C5141D8A3C8E7A49F194156B5023A8F5C514158EECFD2A49F1941D0240F3B8F5C5141C838D7BDA49F19414A941B3C8F5C51413883DEA8A49F1941C403283D8F5C5141B8CDE593A49F19411C8F773E8F5C51412818ED7EA49F194196FE833F8F5C5141A862F469A49F1941116E90408F5C514118ADFB54A49F194169F9DF418F5C514178B53444A49F1941E368EC428F5C5141E8FF3B2FA49F19413CF43B448F5C5141684A431AA49F1941947F8B458F5C5141C8527C09A49F1941ED0ADB468F5C5141285BB5F8A39F194145962A488F5C514198A5BCE3A39F19419E217A498F5C5141F8ADF5D2A39F1941F7ACC94A8F5C514158B62EC2A39F19414F38194C8F5C5141B8BE67B1A39F1941A8C3684D8F5C514118C7A0A0A39F1941004FB84E8F5C5141588D0B94A39F194159DA07508F5C5141B8954483A39F194190819A518F5C5141189E7D72A39F1941E90CEA528F5C51416864E865A39F194120B47C548F5C5141C86C2155A39F1941783FCC558F5C514108338C48A39F1941AFE65E578F5C514158F9F63BA39F1941E68DF1588F5C514198BF612FA39F19413F19415A8F5C5141D885CC22A39F194176C0D35B8F5C5141284C3716A39F1941AD67665D8F5C51416812A209A39F1941E40EF95E8F5C5141B8D80CFDA29F19411BB68B608F5C5141E85CA9F4A29F1941525D1E628F5C5141282314E8A29F19418A04B1638F5C514158A7B0DFA29F1941C1AB43658F5C5141A86D1BD3A29F1941F852D6668F5C5141D8F1B7CAA29F19412FFA68688F5C5141087654C2A29F194166A1FB698F5C514138FAF0B9A29F19417C64D16B8F5C5141687E8DB1A29F1941B30B646D8F5C514178C05BADA29F1941EAB2F66E8F5C5141A844F8A4A29F1941FF75CC708F5C5141B886C6A0A29F1941361D5F728F5C5141E80A6398A29F19416EC4F1738F5C5141084D3194A29F19418387C7758F5C5141188FFF8FA29F1941BA2E5A778F5C514148139C87A29F1941D0F12F798F5C514168556A83A29F19410799C27A8F5C514168556A83A29F19413E40557C8F5C51417897387FA29F194154032B7E8F5C514198D9067BA29F19418BAABD7F8F5C514198D9067BA29F1941A06D93818F5C5141A81BD576A29F1941D71426838F5C5141A81BD576A29F1941EDD7FB848F5C5141A81BD576A29F1941039BD1868F5C5141A81BD576A29F19413A4264888F5C5141A81BD576A29F19414F053A8A8F5C5141A81BD576A29F194186ACCC8B8F5C5141A81BD576A29F19419C6FA28D8F5C514198D9067BA29F1941D316358F8F5C514198D9067BA29F1941E9D90A918F5C51417897387FA29F194120819D928F5C514168556A83A29F1941354473948F5C514168556A83A29F19416DEB05968F5C514148139C87A29F194182AEDB978F5C5141188FFF8FA29F1941B9556E998F5C5141084D3194A29F1941F0FC009B8F5C5141E80A6398A29F194106C0D69C8F5C5141B886C6A0A29F19413D67699E8F5C5141A844F8A4A29F1941532A3FA08F5C514178C05BADA29F19418AD1D1A18F5C5141687E8DB1A29F1941C17864A38F5C514138FAF0B9A29F1941F81FF7A48F5C5141087654C2A29F19410DE3CCA68F5C5141D8F1B7CAA29F1941458A5FA88F5C5141A86D1BD3A29F19417C31F2A98F5C514158A7B0DFA29F1941B3D884AB8F5C5141282314E8A29F1941EA7F17AD8F5C5141E85CA9F4A29F19412127AAAE8F5C5141B8D80CFDA29F194158CE3CB08F5C51416812A209A39F19418F75CFB18F5C5141284C3716A39F1941C61C62B38F5C5141D885CC22A39F1941FDC3F4B48F5C514198BF612FA39F1941346B87B68F5C514158F9F63BA39F19418DF6D6B78F5C514108338C48A39F1941C49D69B98F5C5141C86C2155A39F1941FB44FCBA8F5C51416864E865A39F194154D04BBC8F5C5141189E7D72A39F19418B77DEBD8F5C5141B8954483A39F1941E3022EBF8F5C5141588D0B94A39F19411AAAC0C08F5C514118C7A0A0A39F1941733510C28F5C5141B8BE67B1A39F1941CCC05FC38F5C514158B62EC2A39F1941244CAFC48F5C5141F8ADF5D2A39F19415BF341C68F5C514198A5BCE3A39F1941B47E91C78F5C5141285BB5F8A39F19410C0AE1C88F5C5141C8527C09A49F19418779EDC98F5C5141684A431AA49F1941DF043DCB8F5C5141E8FF3B2FA49F194138908CCC8F5C514178B53444A49F1941901BDCCD8F5C514118ADFB54A49F19410A8BE8CE8F5C5141A862F469A49F1941631638D08F5C51412818ED7EA49F1941DD8544D18F5C5141B8CDE593A49F1941361194D28F5C51413883DEA8A49F1941B080A0D38F5C5141C838D7BDA49F19412AF0ACD48F5C514158EECFD2A49F1941A45FB9D58F5C5141D8A3C8E7A49F19411ECFC5D68F5C51416859C1FCA49F1941983ED2D78F5C5141E80EBA11A59F194112AEDED88F5C51415882E42AA59F1941AD01A8D98F5C5141E837DD3FA59F19412771B4DA8F5C514158AB0759A59F1941C3C47DDB8F5C5141E860006EA59F19413D348ADC8F5C514158D42A87A59F1941D98753DD8F5C5141C84755A0A59F194174DB1CDE8F5C514148FD4DB5A59F1941102FE6DE8F5C5141B87078CEA59F19418A9EF2DF8F5C514138E4A2E7A59F194147D678E08F5C5141A857CD00A69F1941E22942E18F5C514118CBF719A69F19417E7D0BE28F5C5141883E2233A69F194119D1D4E28F5C5141F8B14C4CA69F1941D6085BE38F5C514168257765A69F19419440E1E38F5C5141D898A17EA69F19412F94AAE48F5C5141480CCC97A69F1941ECCB30E58F5C5141B87FF6B0A69F1941A903B7E58F5C514118B152CEA69F1941663B3DE68F5C514188247DE7A69F19412373C3E68F5C5141F897A700A79F1941E0AA49E78F5C514158C9031EA79F1941BFC68CE78F5C5141C83C2E37A79F19417CFE12E88F5C514138B05850A79F19415A1A56E88F5C514188E1B46DA79F1941393699E88F5C51410855DF86A79F1941F66D1FE98F5C514158863BA4A79F1941D48962E98F5C5141C8F965BDA79F1941B3A5A5E98F5C5141386D90D6A79F194191C1E8E98F5C5141989EECF3A79F194191C1E8E98F5C51410812170DA89F194170DD2BEA8F5C51416843732AA89F194170DD2BEA8F5C5141D8B69D43A89F19414EF96EEA8F5C514128E8F960A89F19414EF96EEA8F5C51418819567EA89F19414EF96EEA8F5C5141F88C8097A89F19414EF96EEA8F5C514158BEDCB4A89F19414EF96EEA8F5C5141C83107CEA89F19414EF96EEA8F5C5141186363EBA89F19414EF96EEA8F5C514188D68D04A99F194170DD2BEA8F5C5141E807EA21A99F194170DD2BEA8F5C5141587B143BA99F194191C1E8E98F5C5141B8AC7058A99F194191C1E8E98F5C514128209B71A99F1941B3A5A5E98F5C51417851F78EA99F1941D48962E98F5C5141E8C421A8A99F1941F66D1FE98F5C514168384CC1A99F1941393699E88F5C5141B869A8DEA99F19415A1A56E88F5C514128DDD2F7A99F19417CFE12E88F5C5141880E2F15AA9F1941BFC68CE78F5C5141F881592EAA9F1941E0AA49E78F5C514168F58347AA9F19412373C3E68F5C5141D868AE60AA9F1941663B3DE68F5C5141389A0A7EAA9F1941A903B7E58F5C5141A80D3597AA9F1941ECCB30E58F5C514118815FB0AA9F19412F94AAE48F5C514188F489C9AA9F19419440E1E38F5C5141F867B4E2AA9F1941D6085BE38F5C514168DBDEFBAA9F194119D1D4E28F5C5141D84E0915AB9F19417E7D0BE28F5C514148C2332EAB9F1941E22942E18F5C5141C8355E47AB9F194147D678E08F5C514138A98860AB9F19418A9EF2DF8F5C5141A81CB379AB9F1941102FE6DE8F5C51411890DD92AB9F194174DB1CDE8F5C51419845D6A7AB9F1941D98753DD8F5C514108B900C1AB9F19413D348ADC8F5C5141986EF9D5AB9F1941C3C47DDB8F5C514108E223EFAB9F19412771B4DA8F5C514198971C04AC9F1941AD01A8D98F5C5141080B471DAC9F194112AEDED88F5C514188C03F32AC9F1941983ED2D78F5C5141F8336A4BAC9F19411ECFC5D68F5C5141A82B315CAC9F1941A45FB9D58F5C5141189F5B75AC9F19412AF0ACD48F5C51419854548AAC9F1941B080A0D38F5C5141280A4D9FAC9F1941361194D28F5C5141C80114B0AC9F1941DD8544D18F5C514148B70CC5AC9F1941631638D08F5C5141D86C05DAAC9F19410A8BE8CE8F5C51416822FEEEAC9F1941901BDCCD8F5C5141081AC5FFAC9F194138908CCC8F5C514188CFBD14AD9F1941DF043DCB8F5C514128C78425AD9F19418779EDC98F5C5141B87C7D3AAD9F19410C0AE1C88F5C51415874444BAD9F1941B47E91C78F5C5141F86B0B5CAD9F19415BF341C68F5C51419863D26CAD9F1941244CAFC48F5C5141385B997DAD9F1941CCC05FC38F5C5141D852608EAD9F1941733510C28F5C5141784A279FAD9F19411AAAC0C08F5C51413884BCABAD9F1941E3022EBF8F5C5141D87B83BCAD9F19418B77DEBD8F5C514188B518C9AD9F194154D04BBC8F5C514128ADDFD9AD9F1941FB44FCBA8F5C5141E8E674E6AD9F1941C49D69B98F5C514188DE3BF7AD9F19418DF6D6B78F5C51414818D103AE9F1941346B87B68F5C5141F8516610AE9F1941FDC3F4B48F5C5141C8CDC918AE9F1941C61C62B38F5C514188075F25AE9F19418F75CFB18F5C51413841F431AE9F194158CE3CB08F5C5141F87A893EAE9F19412127AAAE8F5C5141C8F6EC46AE9F1941EA7F17AD8F5C51419872504FAE9F1941B3D884AB8F5C514148ACE55BAE9F19417C31F2A98F5C514118284964AE9F1941458A5FA88F5C5141E8A3AC6CAE9F19410DE3CCA68F5C5141B81F1075AE9F1941F81FF7A48F5C5141889B737DAE9F1941C17864A38F5C51416817D785AE9F19418AD1D1A18F5C514148D5088AAE9F1941532A3FA08F5C514118516C92AE9F19413D67699E8F5C5141080F9E96AE9F194106C0D69C8F5C5141E8CCCF9AAE9F1941F0FC009B8F5C5141B84833A3AE9F1941B9556E998F5C5141A80665A7AE9F194182AEDB978F5C514188C496ABAE9F19416DEB05968F5C51417882C8AFAE9F1941354473948F5C51417882C8AFAE9F194120819D928F5C51415840FAB3AE9F1941E9D90A918F5C51415840FAB3AE9F1941D316358F8F5C514148FE2BB8AE9F19419C6FA28D8F5C514148FE2BB8AE9F194186ACCC8B8F5C514148FE2BB8AE9F19414F053A8A8F5C514148FE2BB8AE9F19413A4264888F5C5141
> </a>
> <test>
> <op name="buffer" arg1="a" arg3="3">
> GEOMETRYCOLLECTION EMPTY
> </op>
> </test>
> </case>
> </run>

> _______________________________________________
> geos-devel mailing list
> geos-devel at geos.refractions.net
> http://geos.refractions.net/mailman/listinfo/geos-devel


-- 

 /"\    ASCII Ribbon Campaign
 \ /    Respect for low technology.
  X     Keep e-mail messages readable by any computer system.
 / \    Keep it ASCII. 




More information about the geos-devel mailing list