test added
This commit is contained in:
		
							parent
							
								
									9b0d3dfaeb
								
							
						
					
					
						commit
						8b62d04453
					
				
							
								
								
									
										69
									
								
								unit_tests/algorithms/geometry_string.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								unit_tests/algorithms/geometry_string.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,69 @@ | ||||
| /*
 | ||||
| 
 | ||||
| Copyright (c) 2015, Project OSRM contributors | ||||
| All rights reserved. | ||||
| 
 | ||||
| Redistribution and use in source and binary forms, with or without modification, | ||||
| are permitted provided that the following conditions are met: | ||||
| 
 | ||||
| Redistributions of source code must retain the above copyright notice, this list | ||||
| of conditions and the following disclaimer. | ||||
| Redistributions in binary form must reproduce the above copyright notice, this | ||||
| list of conditions and the following disclaimer in the documentation and/or | ||||
| other materials provided with the distribution. | ||||
| 
 | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | ||||
| ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
| WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
| DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR | ||||
| ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
| (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||||
| ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
| 
 | ||||
| */ | ||||
| 
 | ||||
| #include <boost/test/floating_point_comparison.hpp> | ||||
| #include <boost/test/unit_test.hpp> | ||||
| 
 | ||||
| #include "../../algorithms/polyline_compressor.hpp" | ||||
| #include "../../data_structures/coordinate_calculation.hpp" | ||||
| 
 | ||||
| #include <osrm/coordinate.hpp> | ||||
| 
 | ||||
| #include <cmath> | ||||
| #include <vector> | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(geometry_string) | ||||
| { | ||||
|     // Polyline string for the 5 coordinates
 | ||||
|     const std::string polyline = "_c`|@_c`|@o}@_pRo}@}oRm}@apRo}@_pR"; | ||||
|     PolylineCompressor pc; | ||||
|     std::vector<FixedPointCoordinate> coords = pc.decode_string(polyline); | ||||
| 
 | ||||
|     // Test coordinates; these would be the coordinates we give the loc parameter,
 | ||||
|     // e.g. loc=10.00,10.0&loc=10.01,10.1...
 | ||||
|     FixedPointCoordinate coord1(10.00 * COORDINATE_PRECISION, 10.0 * COORDINATE_PRECISION); | ||||
|     FixedPointCoordinate coord2(10.01 * COORDINATE_PRECISION, 10.1 * COORDINATE_PRECISION); | ||||
|     FixedPointCoordinate coord3(10.02 * COORDINATE_PRECISION, 10.2 * COORDINATE_PRECISION); | ||||
|     FixedPointCoordinate coord4(10.03 * COORDINATE_PRECISION, 10.3 * COORDINATE_PRECISION); | ||||
|     FixedPointCoordinate coord5(10.04 * COORDINATE_PRECISION, 10.4 * COORDINATE_PRECISION); | ||||
|      | ||||
|     // Put the test coordinates into the vector for comparison
 | ||||
|     std::vector<FixedPointCoordinate> cmp_coords; | ||||
|     cmp_coords.emplace_back(coord1); | ||||
|     cmp_coords.emplace_back(coord2); | ||||
|     cmp_coords.emplace_back(coord3); | ||||
|     cmp_coords.emplace_back(coord4); | ||||
|     cmp_coords.emplace_back(coord5); | ||||
| 
 | ||||
|     BOOST_CHECK_EQUAL(cmp_coords.size(), coords.size()); | ||||
| 
 | ||||
|     for(unsigned i = 0; i < cmp_coords.size(); ++i) | ||||
|     { | ||||
|         BOOST_CHECK_CLOSE(cmp_coords.at(i).lat, coords.at(i).lat, 0.0001); | ||||
|         BOOST_CHECK_CLOSE(cmp_coords.at(i).lon, coords.at(i).lon, 0.0001); | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user