aboutsummaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2018-01-17Merge pull request #739 from kbevers/pipeline-inverseKristian Evers
Pipeline and cct inverse fixes
2018-01-17Adding a few more test cases for pipeline, ensuring better test coverageKristian Evers
2018-01-17Fix "double inversions" in pipelines, require a defined forward operation.Kristian Evers
"+proj=pipeline +inv +step +urm5 +n=0.5 +inv" now works as expected, returning the forward operation of urm5. In principle adding more +inv's should also work, resulting in the forward operation when an even number of +inv's are present, and the inverse when an odd number of +inv's are present. "+proj=pipeline +step +urm5 +n=0.5 +inv" fails at initialization since no forward operation can be performed. This is a new requirement, but aligns perfectly with the rest of the library since no operation without a forward method exists.
2018-01-09Convert GIGS tests to gie format and add to CMake testsKristian Evers
2018-01-09Add gie tests to CMake testing facilityKristian Evers
2018-01-09Added json to gie conversion scriptKristian Evers
2018-01-08Allow usage of classic +axis parameter in axisswap.Kristian Evers
Instead of +order the classic PROJ.4 parameter +axis can used instead. This is mostly an inititive to simplify backwars compatibility in the 4D API. P->axis is initialized in pj_init() it can be assumed that it is set up correctly. +order and +axis are mutually exclusive.
2018-01-05Custom unit factors in unitconvert.Kristian Evers
Added the possibility to use custom unit factors. Similar to the classic +to_meter parameter the conversion factor is related to meters, i.e. the factor for conversion from kilometers meters is 1000. The custom unit factors is given using the existing xy_in, xy_out, z_in and z_out parameters, for example: proj=unitconvert xy_in=4.5 +xy_out=mm
2018-01-03Introduce preparation/finalization steps in fwd/inv subsystem, supporting ↵Thomas Knudsen
arbitrary dimensionality in test code * Call trans func of same dimensionality as input in gie * Refactor prep/fin code for pj_fwd/pj_inv 2D,3D,4D * Remove prime meridian handling from pj_transform (now handled in pj_fwd_prepare/pj_inv_finalize) * Introduce prep/fin skips, mostly in support of axisswap and pipeline drivers * Refactor fwd/inv subsystem * pj_transform: Let pj_fwd/inv handle scaling * Let pj_fwd/inv3d fall back to 2D eventually
2017-12-19Some corrections in response to a review by Kristian Evers (#718)Thomas Knudsen
* Some corrections in response to a review by Kristian Evers
2017-12-18fix spelling mistakes in previous commitKristian Evers
2017-12-18Test deformation initialization errors.Kristian Evers
2017-12-17Free format everywhere (#693)Thomas Knudsen
* Free format now in cmd lines, in gie, and in init files * Corrected handling of defaults * Add demo of integrated definition and validation * Repair stack-smashing memmove in get_init * repair paralist corruption, clean up debug output * Install test files for nmake builds * Add many improvements following suggestions by @schwehr * Be consistent in requiring lower case everywhere in gie.c Also, this Fixes #703 and Fixes #697
2017-12-14Updates to deformation operation.Kristian Evers
The initial approach taken in the deformation operation was not geodetically sound. The deformation model grids were required to be indexed in lat/long space with the velocities in the grids being in cartesian space. This is quite confusing and it is not a normal way of making deformation models. The usual approach is to keep everything in the east, north, up, or ENU, space. We adopt that tradition in this commit. The velocities are still applied in cartesian space which requires that the grid-velocities are converted from ENU space to cartesian space. As a consequence of this change the operation is changed so that it only works in full 3D mode. That is, both horizontal and vertical grids need to be applied. The inverse operation is changed slightly to accommodate the now fully 3D transformation. In it's present form it is a modification to the original algorithm that also includes the vertical component in the iteration. This is necessary to get a proper mapping from ENU to cartesian space in the loop. The vertical component is overwritten with the initial z-correction at the end of the loop. This approach is not completely accurate and will introduce errors, especially when doing many roundtrip calculations, but it seems to be good enough for a few roundtrips. The PJ_ENU data type is re-introduced to better communicate the what state the grid corrections are in throughout the code.
2017-12-06Use approximate equations instead of exact as default in Helmert.Kristian Evers
2017-12-06Use t_epoch and t_obs instead of epoch and tobs.Kristian Evers
Prefixing with t_ is more consistent with the existing parameters in PROJ, such as x_0 and friends. t_epoch and t_obs is already used in PJ_deformation. Now users can expect consistency across time-varying transformations.
2017-11-28Merge pull request #691 from busstoptaktik/make_assignments_greedyThomas Knudsen
Free formatting of PROJ key=value pairs
2017-11-28Free formatting of PROJ key=value pairsThomas Knudsen
2017-11-28use full error code checking on failure in more_builtins.gieThomas Knudsen
2017-11-28Add tests for GDA2020 (#688)Thomas Knudsen
Add GDA2020 tests, and correct the PJ_helmert bug they revealed
2017-11-27gie support for builtin errcodes, and other improvements (#684)Thomas Knudsen
* gie support for builtin errcodes, and other improvements * allow lower case error constants
2017-11-22Merge pull request #680 from busstoptaktik/oss_fuzz-4355_rf-zeroThomas Knudsen
Avoid div-by-zero in rf setup
2017-11-22Merge pull request #679 from busstoptaktik/oss_fuzz-4369-to_meterThomas Knudsen
Avoid div-by-0 in to_meter init
2017-11-22Avoid div-by-zero in rf setupThomas Knudsen
2017-11-22Avoid div-by-0 in to_meter initThomas Knudsen
2017-11-21Central conic projection (gnomonic) implementation (as 'proj=ccon') (#662)Łukasz Komsta
Central conic projection implemented as 'ccon'.
2017-11-20Replace pj_ell_set with reimplementation... (#675)Thomas Knudsen
* Replace pj_ell_set with reimplementation supporting ellipsoid inheritance * remove unreachable code from pj_ell_set.c * Swap steps, so ellps args are read first, in accordance with historical behaviour * Add ellipsoid tests to CI targets * Reduce some optimistic tolerances OS/X appears to have a slightly off float handling, resulting in differences at the nanometer level. Switching to 10 nm.
2017-11-16Reintroduce the gie-internal tests.Thomas Knudsen
These were accidentally dropped during PR #669
2017-11-16Introduce geodetic-geocentric conversions ... (#669)Thomas Knudsen
* Introduce geodetic-geocentric conversions, as PJ_xxx style conversion step and as API entry points * minor improvements and minor bug squashing
2017-11-13Removed remaining traces of the built in selftest system (#661)Thomas Knudsen
* Removed remaining traces of the builtin selftest system. Moved all functionality to test/gie * Updated Appveyor and Travis build scripts * Another appveyor script update
2017-11-12Poder autochecking again (WIP) (#652)Thomas Knudsen
* Poder dual autochecking implementation * Debugging aid: Improvements in PJ_vgridshift.c and gie.c * Most likely, the bugbeing tripped is in the gridshift code, so. uncomment suspicious lines in deformation.gie and merge this to support the debugging effort
2017-11-11Fix various memory leaks. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3573 , https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3643 and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3641 . Credit to OSS Fuzz
2017-11-10Do not require needless plusses (#651)Thomas Knudsen
proj_create is now indifferent whether or not proj definition terms start with a '+' character. Also, improve gie to support testing this.
2017-10-31Add 'axisswap' operation - swap axes in pipelinesKristian Evers
2017-10-29Addition of 'deformation': Kinematic grid shifting.Kristian Evers
Kinematic deformation models are used in some geodetic transformations. This commit introduces the ability to do transformations involving a gridded deformation/velocity model. For practical reasons a gridded deformation model needs to be split into two seperate files, one for the horizontal components and one for the vertical component. For this we use formats already known to PROJ.4, namely the CTable/CTable2 and the GTX formats. Grids are specified in the proj-string with +xy_grids and +z_grids. Grid values are expected to be in m/year. The kinematic part of the operation is controlled by the +t_epoch parameter, which is the central epoch of the transformation. An observation epoch is also needed. It can be specified either in the PJ_OBS input as the fourth element in the coordinate, or in the proj-string with +t_obs. If +t_obs is present in the proj-string it takes presedence over the value in the PJ_OBS coordinate.
2017-10-29Repair gie and cct after breakage due to proj_strtod update (#628)Thomas Knudsen
* Repair gie and cct after breakage due to proj_strtod update * Remove unused variables
2017-10-19Prevent crashes and leaks on allocation failure (#606)Aaron Puchert
* Prevent crashes and leaks on allocation failure Memory allocation can fail. We need to gracefully handle this case and prevent dereferencing null pointers. * Make NULL checks consistent within a file * Properly report allocation errors * Improve cleanup in pj_gc_reader.c * Implement pj_strdup and use instead of strdup The function strdup is not part of ANSI C 89, but a POSIX extension. Therefore we can not rely on it being available on all platforms.
2017-10-12gie.c and builtins.gie now able to reproduce internal test resultsThomas Knudsen
improved docs, improved strtod - avoid precision loss for very long fractions Switch gie.c to use same framework as cct.c numerous improvements in proj_strtod.c and gie.c Add gie to the build system
2017-05-31standard_fuzzer: add BINARY_2D and BINARY_3D modesEven Rouault
2017-05-30catalog: memory leak and crashes related fixesEven Rouault
* pj_transform() crashes on a catalog that has no matching grid * pj_free() and pj_gc_unloadall() badly interact. No longer try to free the catalog object in pj_free(). That is the job of pj_gc_unloadall() * Fix memory leaks in pj_gc_readcatalog() and pj_gc_unloadall() Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1923 Credit to OSS Fuzz.
2017-05-23test/fuzzers/README.TXT: update instructionsEven Rouault
2017-05-22Add test/fuzzers/README.txtEven Rouault
2017-05-21Add fuzzer for Google OSS FuzzEven Rouault
2016-12-12Add a scripts/fix_typos.sh script and correct reported errorsEven Rouault
2016-05-25Correct all test_json.py flake8 warnings and errors with the exception of ↵Micah Cochran
some error E501 - 'line too long errors', lines with >79 characters.
2016-05-25Add lzip, a zip function that acts like Python 2.x's zip function. In ↵Micah Cochran
Python 3.x, the zip function is iterable, which caused Python 3.x to miss some coordinate tests. Add cli argument '--test' to test_json.py to only specify one test type (conversion/roundtrip) to be ran. Change Travis testing to only perform conversion test on some JSON test files.
2016-05-25Reformat JSON files to be more human readable. Various TESTNOTES revisions.Micah Cochran
2016-05-24Add GIGS tests. Use python3 code to test in travis.Micah Cochran