<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hi WanMil,<br><br>yes, looks better, and now I understand that the finalizer test depends on the order <br>of ways. Maybe it would be better to use points for these tests?<br><br>Please review also the attached patch. I think it allows to simplify the oneway<br>handling in RoadMerger. Do you have an idea why it changes the <br>number of merged roads?<br><br>With my additional patch I see this additional merge message:<br>Road 5066755 and road 26338423 are mergeable with angle 108.93699330523285<br><br>Gerd<br><br><div>Date: Sun, 5 Jan 2014 15:53:28 +0100<br>From: wmgcnfg@web.de<br>To: mkgmap-dev@lists.mkgmap.org.uk<br>Subject: Re: [mkgmap-dev] Unit tests in trunk fail<br><br><pre>Hi Gerd,<br> <br>attached patch also contains fixes to the junit tests.<br>The performance is at least the same using the patch.<br> <br>If you don't oppose the patch I want to commit it.<br> <br>WanMil<br> <br>&gt; Hi Gerd,<br>&gt;<br>&gt; the SimpleTest also randomly fails because the number of resulting lines<br>&gt; is sometimes different.<br>&gt;<br>&gt; You are right that the roadmerger does not change the number of lines in<br>&gt; roundabouts. But there are other ways similar to roundabouts:<br>&gt; <a href="http://www.openstreetmap.org/?mlat=51.25946&amp;mlon=6.74760&amp;zoom=17#map=19/51.25990/6.74788" target="_blank">http://www.openstreetmap.org/?mlat=51.25946&amp;mlon=6.74760&amp;zoom=17#map=19/51.25990/6.74788</a><br>&gt;<br>&gt; I guess such ways are responsible for different number of lines.<br>&gt;<br>&gt; Anyhow I have found a quite easy way to make the RoadMerger stable.<br>&gt; When creating the list of roads I copy all start and end points to a<br>&gt; list. This list is stable. Step by step I go through this list to find<br>&gt; merge candidates. No matter if we allow to merge ways to a closed way<br>&gt; this procedure is stable.<br>&gt; Sorting at the end is still required because the roads are copied from<br>&gt; the IdentityHashMap to the resulting list and this is not stable.<br>&gt;<br>&gt; Attached patch also contains the creation of a debugging file at the end<br>&gt; of the RoadMerger.merge procedure. The output contains informations<br>&gt; about the roads which makes it easy to compare two runs of mkgmap.<br>&gt;<br>&gt; Please give it a check if that solves your problem. I will have a look<br>&gt; on the tests and if the performance is still acceptable using the patch.<br>&gt;<br>&gt; WanMil<br>&gt;<br>&gt;&gt; Hi WanMil,<br>&gt;&gt;<br>&gt;&gt; it's a unit test regarding the style finalizer section which fails and I<br>&gt;&gt; don't know why.<br>&gt;&gt;<br>&gt;&gt; reg. RoadMerger:<br>&gt;&gt; it makes no sense to create closed ways because we would split them<br>&gt;&gt; again later in StyledConverter.<br>&gt;&gt; I don't understand the idea about roundabouts.<br>&gt;&gt; If one is divided into 4 parts you can do 2 merges without closing it,<br>&gt;&gt; no matter which<br>&gt;&gt; parts you connect first, and you should always get 2 remaining parts.<br>&gt;&gt; Assumes part a,b,c and d:<br>&gt;&gt; a+b and c+d or<br>&gt;&gt; a+b and a_b + c or<br>&gt;&gt; b+c and d+a  or<br>&gt;&gt; b+c and b_c + d or<br>&gt;&gt; b+c and a + b_c or<br>&gt;&gt; ...<br>&gt;&gt;<br>&gt;&gt; Gerd<br>&gt;&gt;<br>&gt;&gt;  &gt; Date: Sun, 5 Jan 2014 12:37:09 +0100<br>&gt;&gt;  &gt; From: wmgcnfg@web.de<br>&gt;&gt;  &gt; To: mkgmap-dev@lists.mkgmap.org.uk<br>&gt;&gt;  &gt; Subject: Re: [mkgmap-dev] Unit tests in trunk fail<br>&gt;&gt;  &gt;<br>&gt;&gt;  &gt; Hi Gerd,<br>&gt;&gt;  &gt;<br>&gt;&gt;  &gt; I think I found the problem:<br>&gt;&gt;  &gt;<br>&gt;&gt;  &gt; // check if merging would create a closed way - which should not<br>&gt;&gt;  &gt; // be done (why? WanMil)<br>&gt;&gt;  &gt; if (cStart == cOtherEnd) {<br>&gt;&gt;  &gt; return false;<br>&gt;&gt;  &gt; }<br>&gt;&gt;  &gt;<br>&gt;&gt;  &gt; The RoadMerger avoids to create closed roads. In case the roads are<br>&gt;&gt; not<br>&gt;&gt;  &gt; merged in exactly the same order this is the reason for different<br>&gt;&gt; merge<br>&gt;&gt;  &gt; results due to roundabouts. In case a roundabout is divided in<br>&gt;&gt; multiple<br>&gt;&gt;  &gt; ways the number of merged ways is random.<br>&gt;&gt;  &gt;<br>&gt;&gt;  &gt; At the moment I have no time to check that more in detail but I think<br>&gt;&gt;  &gt; the code listed above can be removed.<br>&gt;&gt;  &gt;<br>&gt;&gt;  &gt; WanMil<br>&gt;&gt;  &gt;<br>&gt;&gt;  &gt; &gt; Hi WanMil,<br>&gt;&gt;  &gt; &gt;<br>&gt;&gt;  &gt; &gt; please have a look, I don't fully understand why.<br>&gt;&gt;  &gt; &gt;<br>&gt;&gt;  &gt; &gt; Gerd<br>&gt;&gt;  &gt; &gt;<br>&gt;&gt;  &gt; &gt;<br>&gt;&gt;  &gt; &gt; _______________________________________________<br>&gt;&gt;  &gt; &gt; mkgmap-dev mailing list<br>&gt;&gt;  &gt; &gt; mkgmap-dev@lists.mkgmap.org.uk<br>&gt;&gt;  &gt; &gt; <a href="http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev" target="_blank">http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev</a><br>&gt;&gt;  &gt; &gt;<br>&gt;&gt;  &gt;<br>&gt;&gt;  &gt; _______________________________________________<br>&gt;&gt;  &gt; mkgmap-dev mailing list<br>&gt;&gt;  &gt; mkgmap-dev@lists.mkgmap.org.uk<br>&gt;&gt;  &gt; <a href="http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev" target="_blank">http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev</a><br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; _______________________________________________<br>&gt;&gt; mkgmap-dev mailing list<br>&gt;&gt; mkgmap-dev@lists.mkgmap.org.uk<br>&gt;&gt; <a href="http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev" target="_blank">http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev</a><br>&gt;&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; mkgmap-dev mailing list<br>&gt; mkgmap-dev@lists.mkgmap.org.uk<br>&gt; <a href="http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev" target="_blank">http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev</a><br>&gt;<br> <br></pre><br>_______________________________________________
mkgmap-dev mailing list
mkgmap-dev@lists.mkgmap.org.uk
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev</div>                                               </div></body>
</html>