<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 all,<br><br>I think the last days showed that unit tests around routing are missing or<br>to weak, else I should not have been able to build with so many stupid errors :-(<br><br>I'd like to add some unit tests, but I have a problem:<br>The existing input files don't contain (enough) restriction relations.<br><br>I thought about two possibilities:<br>1) Use JOSM to create all kinds of restrictions and the special cases<br>in an *.osm file, add it to mkgmap\test\resources\in\osm <br>and process the file like in SimpleRouteTest to find out<br>if the number of saved restrictions is okay.<br><br>2) Create single unit tests that&nbsp; produce small road networks <br>to test edge cases like 'via' nodes on tile boundaries, <br>'to' ways with loops, wrong angles (right_turn describes left_turn)<br>etc.<br><br>The advantage of 1) is that it also allows to test the created img file<br>in MapSource. The disadvantage is that it will only contain the special<br>cases that we know now and that it is difficult to find out if every special<br>case was treated correctly, we typically just count objects.<br>The advantage of 2) is that we can always add new test cases and<br>that the test is able to verify anything. The disadvantage is<br>that it is quite difficult to create a small road network in java and that the result<br>is not testable in MapSource. Unit tests should not be too complex,<br>else they will make living harder when something is changed by intention.<br><br>I see a similar need for other options like --process-exits, --process-destination, <br>--make-opposite-cycleways, --adjust-turn-headings<br>which all involve rather complex routines or are likely to have <br>side effects on other complex routines.<br><br>I think a good compromise would be a new small .osm (better .o5m or .pbf ) file <br>containing real data with a good number of special cases and some new unit <br>tests that use this data.<br><br>I think the fie should contain a part of a (large) city with motorways, trunks etc.<br>which is mapped by many different persons, so that we have different solutions<br>/errors. <br>Any suggestions?<br>Or better ideas?<br><br>Gerd<br>                                               </div></body>
</html>