aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2018-02-19 22:39:17 +0100
committerKristian Evers <kristianevers@gmail.com>2018-02-19 22:39:17 +0100
commit43d811d20598abde95a8d177123e9f26fe5229ab (patch)
treec66684d7975798109a072b52bce5e7c5f9bd5182 /test
parenta9e08ad008b1ff16d6139aab5e813058c922eef8 (diff)
parentefa636e0d9e0cef5a5fff1b7ed76d0368d20121b (diff)
downloadPROJ-43d811d20598abde95a8d177123e9f26fe5229ab.tar.gz
PROJ-43d811d20598abde95a8d177123e9f26fe5229ab.zip
Merge remote-tracking branch 'osgeo/master' into docs-release-4.10.0
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt46
-rw-r--r--test/Makefile.am3
-rw-r--r--test/gie/4D-API_cs2cs-style.gie189
-rw-r--r--test/gie/DHDN_ETRS89.gie373
-rw-r--r--test/gie/GDA.gie51
-rw-r--r--test/gie/Makefile.am39
-rw-r--r--test/gie/axisswap.gie173
-rw-r--r--test/gie/builtins.gie379
-rw-r--r--test/gie/deformation.gie82
-rw-r--r--test/gie/ellipsoid.gie7
-rw-r--r--test/gie/more_builtins.gie182
-rw-r--r--test/gie/unitconvert.gie28
-rw-r--r--test/gigs/5101.1-jhs.gie732
-rw-r--r--test/gigs/5101.1-jhs.json63
-rw-r--r--test/gigs/5101.2-jhs.gie300
-rw-r--r--test/gigs/5101.2-jhs.json32
-rw-r--r--test/gigs/5101.3-jhs.gie300
-rw-r--r--test/gigs/5101.3-jhs.json33
-rw-r--r--test/gigs/5101.4-jhs-etmerc.gie300
-rw-r--r--test/gigs/5101.4-jhs-etmerc.json31
-rw-r--r--test/gigs/5101.4-jhs.gie.failing300
-rw-r--r--test/gigs/5101.4-jhs.json33
-rw-r--r--test/gigs/5102.1.gie252
-rw-r--r--test/gigs/5102.1.json29
-rw-r--r--test/gigs/5102.2.gie.failing252
-rw-r--r--test/gigs/5102.2.json29
-rw-r--r--test/gigs/5103.1.gie211
-rw-r--r--test/gigs/5103.1.json29
-rw-r--r--test/gigs/5103.2.gie144
-rw-r--r--test/gigs/5103.2.json21
-rw-r--r--test/gigs/5103.3.gie144
-rw-r--r--test/gigs/5103.3.json20
-rw-r--r--test/gigs/5104.gie.failing264
-rw-r--r--test/gigs/5104.json30
-rw-r--r--test/gigs/5105.1.gie.failing300
-rw-r--r--test/gigs/5105.1.json26
-rw-r--r--test/gigs/5105.2.gie168
-rw-r--r--test/gigs/5105.2.json23
-rw-r--r--test/gigs/5106.gie300
-rw-r--r--test/gigs/5106.json35
-rw-r--r--test/gigs/5107.gie180
-rw-r--r--test/gigs/5107.json26
-rw-r--r--test/gigs/5108.gie.failing235
-rw-r--r--test/gigs/5108.json26
-rw-r--r--test/gigs/5109.gie180
-rw-r--r--test/gigs/5109.json23
-rw-r--r--test/gigs/5110.gie.failing164
-rw-r--r--test/gigs/5110.json12
-rw-r--r--test/gigs/5111.1.gie450
-rw-r--r--test/gigs/5111.1.json45
-rw-r--r--test/gigs/5111.2.gie.failing444
-rw-r--r--test/gigs/5111.2.json44
-rw-r--r--test/gigs/5112.gie75
-rw-r--r--test/gigs/5112.json15
-rw-r--r--test/gigs/5113.gie84
-rw-r--r--test/gigs/5113.json12
-rw-r--r--test/gigs/5201.gie354
-rw-r--r--test/gigs/5201.json39
-rw-r--r--test/gigs/5203.1.gie.failing192
-rw-r--r--test/gigs/5203.1.json25
-rw-r--r--test/gigs/5204.1.gie.failing192
-rw-r--r--test/gigs/5204.1.json25
-rw-r--r--test/gigs/5205.1.gie.failing192
-rw-r--r--test/gigs/5205.1.json25
-rw-r--r--test/gigs/5206.gie.failing540
-rw-r--r--test/gigs/5206.json54
-rw-r--r--test/gigs/5207.1.gie.failing252
-rw-r--r--test/gigs/5207.1.json30
-rw-r--r--test/gigs/5207.2.gie.failing456
-rw-r--r--test/gigs/5207.2.json47
-rw-r--r--test/gigs/5208.gie208
-rw-r--r--test/gigs/5208.json25
-rw-r--r--test/gigs/Makefile.am76
-rw-r--r--test/gigs/TESTNOTES.md225
-rw-r--r--test/gigs/test_json.py528
75 files changed, 9410 insertions, 2043 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
new file mode 100644
index 00000000..7475f715
--- /dev/null
+++ b/test/CMakeLists.txt
@@ -0,0 +1,46 @@
+set(GIE_BIN "gie")
+
+# Regression tests
+proj_add_gie_test("Builtins" "gie/builtins.gie")
+proj_add_gie_test("Builtins2" "gie/more_builtins.gie")
+proj_add_gie_test("Axisswap" "gie/axisswap.gie")
+proj_add_gie_test("Deformation" "gie/deformation.gie")
+proj_add_gie_test("Ellipsoid" "gie/ellipsoid.gie")
+proj_add_gie_test("GDA" "gie/GDA.gie")
+proj_add_gie_test("4D-API-cs2cs-style" "gie/4D-API_cs2cs-style.gie")
+
+# GIGS tests. Uncommented tests are expected to fail due to issues with
+# various projections. Should be investigated further and fixed.
+proj_add_gie_test("GIGS-5101.1-jhs" "gigs/5101.1-jhs.gie")
+proj_add_gie_test("GIGS-5101.2-jhs" "gigs/5101.2-jhs.gie")
+proj_add_gie_test("GIGS-5101.3-jhs" "gigs/5101.3-jhs.gie")
+proj_add_gie_test("GIGS-5101.4-jhs-etmerc" "gigs/5101.4-jhs-etmerc.gie")
+#proj_add_gie_test("GIGS-5101.4-jhs" "gigs/5101.4-jhs.gie") # Same as above, but using etmerc instead of tmerc
+proj_add_gie_test("GIGS-5102.1" "gigs/5102.1.gie")
+#proj_add_gie_test("GIGS-5102.2" "gigs/5102.2.gie")
+proj_add_gie_test("GIGS-5103.1" "gigs/5103.1.gie")
+proj_add_gie_test("GIGS-5103.2" "gigs/5103.2.gie")
+proj_add_gie_test("GIGS-5103.3" "gigs/5103.3.gie")
+#proj_add_gie_test("GIGS-5104" "gigs/5104.gie")
+#proj_add_gie_test("GIGS-5105.1" "gigs/5105.1.gie")
+proj_add_gie_test("GIGS-5105.2" "gigs/5105.2.gie")
+proj_add_gie_test("GIGS-5106" "gigs/5106.gie")
+proj_add_gie_test("GIGS-5107" "gigs/5107.gie")
+#proj_add_gie_test("GIGS-5108" "gigs/5108.gie")
+proj_add_gie_test("GIGS-5109" "gigs/5109.gie")
+#proj_add_gie_test("GIGS-5110" "gigs/5110.gie")
+proj_add_gie_test("GIGS-5111.1" "gigs/5111.1.gie")
+#proj_add_gie_test("GIGS-5111.2" "gigs/5111.2.gie")
+proj_add_gie_test("GIGS-5112" "gigs/5112.gie")
+proj_add_gie_test("GIGS-5113" "gigs/5113.gie")
+proj_add_gie_test("GIGS-5201" "gigs/5201.gie")
+#proj_add_gie_test("GIGS-5203" "gigs/5203.1.gie")
+#proj_add_gie_test("GIGS-5204.1" "gigs/5204.1.gie")
+#proj_add_gie_test("GIGS-5205.1" "gigs/5205.1.gie")
+#proj_add_gie_test("GIGS-5206" "gigs/5206.gie")
+#proj_add_gie_test("GIGS-5207.1" "gigs/5207.1.gie")
+#proj_add_gie_test("GIGS-5207.2" "gigs/5207.2.gie")
+proj_add_gie_test("GIGS-5208" "gigs/5208.gie")
+
+
+
diff --git a/test/Makefile.am b/test/Makefile.am
new file mode 100644
index 00000000..8bdfdc0a
--- /dev/null
+++ b/test/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = gie gigs
+
+EXTRA_DIST = CMakeLists.txt
diff --git a/test/gie/4D-API_cs2cs-style.gie b/test/gie/4D-API_cs2cs-style.gie
new file mode 100644
index 00000000..66da0633
--- /dev/null
+++ b/test/gie/4D-API_cs2cs-style.gie
@@ -0,0 +1,189 @@
+===============================================================================
+
+Test the 4D API handling of cs2cs style transformation options.
+
+These tests are mostly based on the same material as those in
+more_builtins.gie, since we are testing the same kinds of things,
+but provided through a different interface.
+
+===============================================================================
+
+
+<gie>
+
+-------------------------------------------------------------------------------
+Test the handling of the +towgs84 parameter.
+-------------------------------------------------------------------------------
+(additional tests of the towgs84 handling can be found in DHDN_ETRS89.gie)
+-------------------------------------------------------------------------------
+
+
+-------------------------------------------------------------------------------
+This example is from Lotti Jivall: "Simplified transformations from
+ITRF2008/IGS08 to ETRS89 for maritime applications" (see also more_builtins.gie)
+-------------------------------------------------------------------------------
+operation proj=geocent
+ towgs84 = 0.676780, 0.654950, -0.528270,
+ -0.022742, 0.012667, 0.022704,
+ -0.01070
+-------------------------------------------------------------------------------
+tolerance 1 um
+
+direction inverse
+
+accept 3565285.00000000 855949.00000000 5201383.00000000
+expect 3565285.41342351 855948.67986759 5201382.72939791
+-------------------------------------------------------------------------------
+
+
+-------------------------------------------------------------------------------
+This example is a random point, transformed from ED50 to ETRS89 using KMStrans2.
+-------------------------------------------------------------------------------
+operation proj=latlong ellps=intl
+ towgs84 = -081.07030, -089.36030, -115.75260,
+ 000.48488, 000.02436, 000.41321, -0.540645
+-------------------------------------------------------------------------------
+tolerance 25 mm
+
+accept 16.82 55.17 61.0
+expect 16.8210462130 55.1705688946 29.0317
+-------------------------------------------------------------------------------
+
+
+
+-------------------------------------------------------------------------------
+operation proj=latlong nadgrids=nzgd2kgrid0005.gsb ellps=GRS80
+-------------------------------------------------------------------------------
+This functionality is also tested in DHDN_ETRS89.gie
+-------------------------------------------------------------------------------
+tolerance 1 mm
+ignore pjd_err_failed_to_load_grid
+accept 173 -45
+expect 172.999892181021551 -45.001620431954613
+direction inverse
+accept 172.999892181021551 -45.001620431954613
+expect 173 -45
+-------------------------------------------------------------------------------
+
+
+
+-------------------------------------------------------------------------------
+operation proj=latlong geoidgrids=egm96_15.gtx ellps=GRS80
+-------------------------------------------------------------------------------
+tolerance 15 cm # lax tolerance due to widespread bad egm96 file
+ignore pjd_err_failed_to_load_grid
+
+accept 12.5 55.5 0
+expect 12.5 55.5 -36.0213
+
+direction inverse
+
+accept 12.5 55.5 -36.0213
+expect 12.5 55.5 0
+-------------------------------------------------------------------------------
+operation proj=merc geoidgrids=egm96_15.gtx ellps=GRS80
+-------------------------------------------------------------------------------
+tolerance 0.1 mm
+ignore pjd_err_failed_to_load_grid
+accept 12.5 55.5 0
+expect 1391493.63492 7424275.19462 -36.0213
+direction inverse
+accept 1391493.63492 7424275.19462 -36.0213
+expect 12.5 55.5 0
+-------------------------------------------------------------------------------
+
+
+
+-------------------------------------------------------------------------------
+Same as the two above, but also do axis swapping.
+-------------------------------------------------------------------------------
+NOTE: A number of the tests below are commented out. The actually do the
+right thing, but the gie distance computation is not yet able to cope
+with "unusual" axis orders
+-------------------------------------------------------------------------------
+operation proj=latlong geoidgrids=egm96_15.gtx axis=neu ellps=GRS80
+-------------------------------------------------------------------------------
+tolerance 15 cm # lax tolerance due to widely distributed, bad egm96 file
+ignore pjd_err_failed_to_load_grid
+accept 12.5 55.5 0
+expect 55.5 12.5 -36.0213
+direction inverse
+accept 55.5 12.5 -36.0213
+expect 12.5 55.5 0
+-------------------------------------------------------------------------------
+operation proj=latlong geoidgrids=egm96_15.gtx axis=dne ellps=GRS80
+-------------------------------------------------------------------------------
+tolerance 15 cm # lax tolerance due to widely distributed, bad egm96 file
+ignore pjd_err_failed_to_load_grid
+# accept 12.5 55.5 0
+# expect 36.0213 55.5 12.5
+# direction inverse
+# accept 36.0213 55.5 12.5
+# expect 12.5 55.5 0
+-------------------------------------------------------------------------------
+operation proj=merc geoidgrids=egm96_15.gtx ellps=GRS80
+-------------------------------------------------------------------------------
+tolerance 0.1 mm
+ignore pjd_err_failed_to_load_grid
+accept 12.5 55.5 0
+expect 1391493.63492 7424275.19462 -36.0213
+direction inverse
+accept 1391493.63492 7424275.19462 -36.0213
+expect 12.5 55.5 0
+-------------------------------------------------------------------------------
+
+
+-------------------------------------------------------------------------------
+Some more complex axis swapping.
+-------------------------------------------------------------------------------
+operation proj=latlong geoidgrids=egm96_15.gtx axis=nue ellps=GRS80
+-------------------------------------------------------------------------------
+tolerance 15 cm # lax tolerance due to widely distributed, bad egm96 file
+ignore pjd_err_failed_to_load_grid
+accept 12.5 55.5 0
+expect 55.5 -36.0213 12.5
+# direction inverse
+# accept 55.5 -36.0213 12.5
+# expect 12.5 55.5 0
+-------------------------------------------------------------------------------
+operation proj=merc geoidgrids=egm96_15.gtx axis=sue ellps=GRS80
+-------------------------------------------------------------------------------
+tolerance 15 cm
+ignore pjd_err_failed_to_load_grid
+accept 12.5 55.5 0
+expect -7424275.1946 -36.0213 1391493.6349 0.0000
+# direction inverse
+# accept -7424275.1946 -36.0213 1391493.6349 0.0000
+# expect 12.5 55.5 0
+-------------------------------------------------------------------------------
+
+
+
+-------------------------------------------------------------------------------
+A test case from a comment by Github user c0nk
+-------------------------------------------------------------------------------
+operation proj=somerc
+ lat_0=46.95240555555556 lon_0=7.439583333333333 k_0=1
+ x_0=2600000 y_0=1200000 ellps=bessel
+ towgs84=674.374,15.056,405.346 no_defs
+-------------------------------------------------------------------------------
+tolerance 20 cm
+accept 7.438632495 46.951082877
+expect 2600000.0 1200000.0
+-------------------------------------------------------------------------------
+Same test, but now implemented as a pipeline. This is for testing a nasty bug,
+where, at the end of pipeline creation, a false warning about missing ellps was
+left behind from the creation of the Helmert step (now repaired in pj_init).
+-------------------------------------------------------------------------------
+operation proj=pipeline
+ step proj=cart ellps=WGS84 no_defs
+ step proj=helmert x=674.37400 y=15.05600 z=405.34600 inv no_defs
+ step proj=cart ellps=bessel no_defs inv
+ step proj=somerc lat_0=46.95240555555556 lon_0=7.439583333333333
+ k_0=1 x_0=2600000 y_0=1200000 ellps=bessel units=m no_defs
+-------------------------------------------------------------------------------
+tolerance 20 cm
+accept 7.438632495 46.951082877
+expect 2600000.0 1200000.0
+-------------------------------------------------------------------------------
+</gie>
diff --git a/test/gie/DHDN_ETRS89.gie b/test/gie/DHDN_ETRS89.gie
new file mode 100644
index 00000000..f536821b
--- /dev/null
+++ b/test/gie/DHDN_ETRS89.gie
@@ -0,0 +1,373 @@
+<gie>
+
+-------------------------------------------------------------------------------
+operation proj=latlong datum=potsdam ellps=bessel
+-------------------------------------------------------------------------------
+DE_DHDN (BeTA, 2007) to ETRS89 using NTv2 grid. epsg:15948
+-------------------------------------------------------------------------------
+
+tolerance 1 mm
+accept 7.482506019176 53.498461143331 # ETRS89_Lat-Lon
+expect 7.483333333333 53.500000000000 # DE_DHDN_Lat-Lon
+
+direction inverse
+
+accept 7.483333333333 53.500000000000 # DE_DHDN_Lat-Lon
+expect 7.482506019176 53.498461143331 # ETRS89_Lat-Lon
+accept 10.333333333333 48.833333333333 # DE_DHDN_Lat-Lon
+expect 10.332117283303 48.832327188640 # ETRS89_Lat-Lon
+accept 8.000000000000 50.083333333333 # DE_DHDN_Lat-Lon
+expect 7.999097344043 50.082172046476 # ETRS89_Lat-Lon
+accept 10.016666666667 51.033333333333 # DE_DHDN_Lat-Lon
+expect 10.015460839103 51.032075951188 # ETRS89_Lat-Lon
+accept 10.466666666667 54.333333333333 # DE_DHDN_Lat-Lon
+expect 10.465373788153 54.331696254077 # ETRS89_Lat-Lon
+accept 10.750000000000 53.583333333333 # DE_DHDN_Lat-Lon
+expect 10.748659705929 53.581781243436 # ETRS89_Lat-Lon
+accept 10.016666666667 53.500000000000 # DE_DHDN_Lat-Lon
+expect 10.015444367463 53.498457503620 # ETRS89_Lat-Lon
+accept 11.000000000000 53.466666666667 # DE_DHDN_Lat-Lon
+expect 10.998619309575 53.465127257963 # ETRS89_Lat-Lon
+accept 13.466666666667 53.766666666667 # DE_DHDN_Lat-Lon
+expect 13.464877774631 53.765109112396 # ETRS89_Lat-Lon
+accept 10.983333333333 52.766666666667 # DE_DHDN_Lat-Lon
+expect 10.981965431979 52.765211787713 # ETRS89_Lat-Lon
+accept 13.000000000000 51.783333333333 # DE_DHDN_Lat-Lon
+expect 12.998336654827 51.782006921265 # ETRS89_Lat-Lon
+accept 10.466666666667 52.500000000000 # DE_DHDN_Lat-Lon
+expect 10.465380298337 52.498573633365 # ETRS89_Lat-Lon
+accept 10.550000000000 51.466666666667 # DE_DHDN_Lat-Lon
+expect 10.548711467380 51.465361979987 # ETRS89_Lat-Lon
+accept 10.450000000000 50.583333333333 # DE_DHDN_Lat-Lon
+expect 10.448735275612 50.582129474187 # ETRS89_Lat-Lon
+accept 10.416666666667 49.666666666667 # DE_DHDN_Lat-Lon
+expect 10.415423634267 49.665566047661 # ETRS89_Lat-Lon
+accept 10.550000000000 47.750000000000 # DE_DHDN_Lat-Lon
+expect 10.548775945187 47.749120260296 # ETRS89_Lat-Lon
+accept 13.450000000000 50.666666666667 # DE_DHDN_Lat-Lon
+expect 13.448283429558 50.665476385913 # ETRS89_Lat-Lon
+accept 13.550000000000 51.333333333333 # DE_DHDN_Lat-Lon
+expect 13.548264242652 51.332063317958 # ETRS89_Lat-Lon
+accept 13.566666666667 52.050000000000 # DE_DHDN_Lat-Lon
+expect 13.564906713066 52.048646469731 # ETRS89_Lat-Lon
+accept 13.433333333333 53.166666666667 # DE_DHDN_Lat-Lon
+expect 13.431569610583 53.165185284138 # ETRS89_Lat-Lon
+accept 13.466666666667 52.483333333333 # DE_DHDN_Lat-Lon
+expect 13.464913254978 52.481930297429 # ETRS89_Lat-Lon
+accept 13.133333333333 49.066666666667 # DE_DHDN_Lat-Lon
+expect 13.131706947050 49.065661709281 # ETRS89_Lat-Lon
+accept 8.666666666667 53.116666666667 # DE_DHDN_Lat-Lon
+expect 8.665654272188 53.115169791635 # ETRS89_Lat-Lon
+accept 12.950000000000 47.650000000000 # DE_DHDN_Lat-Lon
+expect 12.948437185277 47.649155713893 # ETRS89_Lat-Lon
+accept 8.500000000000 54.716666666667 # DE_DHDN_Lat-Lon
+expect 8.499027339833 54.714992333813 # ETRS89_Lat-Lon
+accept 7.483333333333 51.983333333333 # DE_DHDN_Lat-Lon
+expect 7.482494584516 51.981965147975 # ETRS89_Lat-Lon
+accept 7.516666666667 51.016666666667 # DE_DHDN_Lat-Lon
+expect 7.515823996992 51.015402184493 # ETRS89_Lat-Lon
+accept 7.466666666667 50.500000000000 # DE_DHDN_Lat-Lon
+expect 7.465834308888 50.498791390585 # ETRS89_Lat-Lon
+accept 7.533333333333 49.333333333333 # DE_DHDN_Lat-Lon
+expect 7.532503616986 49.332250779407 # ETRS89_Lat-Lon
+accept 7.250000000000 49.333333333333 # DE_DHDN_Lat-Lon
+expect 7.249209260581 49.332249456364 # ETRS89_Lat-Lon
+accept 7.533333333333 47.666666666667 # DE_DHDN_Lat-Lon
+expect 7.532530252396 47.665765608135 # ETRS89_Lat-Lon
+-------------------------------------------------------------------------------
+
+
+
+-------------------------------------------------------------------------------
+operation proj=latlong
+ towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7 ellps=bessel
+-------------------------------------------------------------------------------
+DE_DHDN to ETRS89 using deprecated 7 parameter Helmert transform. The results
+agree at the 3 m level.
+-------------------------------------------------------------------------------
+tolerance 3 m
+
+accept 7.482506019176 53.498461143331 # ETRS89_Lat-Lon
+expect 7.483333333333 53.500000000000 # DE_DHDN_Lat-Lon
+
+direction inverse
+
+accept 7.483333333333 53.500000000000 # DE_DHDN_Lat-Lon
+expect 7.482506019176 53.498461143331 # ETRS89_Lat-Lon
+
+accept 10.333333333333 48.833333333333 # DE_DHDN_Lat-Lon
+expect 10.332117283303 48.832327188640 # ETRS89_Lat-Lon
+accept 8.000000000000 50.083333333333 # DE_DHDN_Lat-Lon
+expect 7.999097344043 50.082172046476 # ETRS89_Lat-Lon
+accept 10.016666666667 51.033333333333 # DE_DHDN_Lat-Lon
+expect 10.015460839103 51.032075951188 # ETRS89_Lat-Lon
+accept 10.466666666667 54.333333333333 # DE_DHDN_Lat-Lon
+expect 10.465373788153 54.331696254077 # ETRS89_Lat-Lon
+accept 10.750000000000 53.583333333333 # DE_DHDN_Lat-Lon
+expect 10.748659705929 53.581781243436 # ETRS89_Lat-Lon
+accept 10.016666666667 53.500000000000 # DE_DHDN_Lat-Lon
+expect 10.015444367463 53.498457503620 # ETRS89_Lat-Lon
+accept 11.000000000000 53.466666666667 # DE_DHDN_Lat-Lon
+expect 10.998619309575 53.465127257963 # ETRS89_Lat-Lon
+accept 13.466666666667 53.766666666667 # DE_DHDN_Lat-Lon
+expect 13.464877774631 53.765109112396 # ETRS89_Lat-Lon
+accept 10.983333333333 52.766666666667 # DE_DHDN_Lat-Lon
+expect 10.981965431979 52.765211787713 # ETRS89_Lat-Lon
+accept 13.000000000000 51.783333333333 # DE_DHDN_Lat-Lon
+expect 12.998336654827 51.782006921265 # ETRS89_Lat-Lon
+accept 10.466666666667 52.500000000000 # DE_DHDN_Lat-Lon
+expect 10.465380298337 52.498573633365 # ETRS89_Lat-Lon
+accept 10.550000000000 51.466666666667 # DE_DHDN_Lat-Lon
+expect 10.548711467380 51.465361979987 # ETRS89_Lat-Lon
+accept 10.450000000000 50.583333333333 # DE_DHDN_Lat-Lon
+expect 10.448735275612 50.582129474187 # ETRS89_Lat-Lon
+accept 10.416666666667 49.666666666667 # DE_DHDN_Lat-Lon
+expect 10.415423634267 49.665566047661 # ETRS89_Lat-Lon
+accept 10.550000000000 47.750000000000 # DE_DHDN_Lat-Lon
+expect 10.548775945187 47.749120260296 # ETRS89_Lat-Lon
+accept 13.450000000000 50.666666666667 # DE_DHDN_Lat-Lon
+expect 13.448283429558 50.665476385913 # ETRS89_Lat-Lon
+accept 13.550000000000 51.333333333333 # DE_DHDN_Lat-Lon
+expect 13.548264242652 51.332063317958 # ETRS89_Lat-Lon
+accept 13.566666666667 52.050000000000 # DE_DHDN_Lat-Lon
+expect 13.564906713066 52.048646469731 # ETRS89_Lat-Lon
+accept 13.433333333333 53.166666666667 # DE_DHDN_Lat-Lon
+expect 13.431569610583 53.165185284138 # ETRS89_Lat-Lon
+accept 13.466666666667 52.483333333333 # DE_DHDN_Lat-Lon
+expect 13.464913254978 52.481930297429 # ETRS89_Lat-Lon
+accept 13.133333333333 49.066666666667 # DE_DHDN_Lat-Lon
+expect 13.131706947050 49.065661709281 # ETRS89_Lat-Lon
+accept 8.666666666667 53.116666666667 # DE_DHDN_Lat-Lon
+expect 8.665654272188 53.115169791635 # ETRS89_Lat-Lon
+accept 12.950000000000 47.650000000000 # DE_DHDN_Lat-Lon
+expect 12.948437185277 47.649155713893 # ETRS89_Lat-Lon
+accept 8.500000000000 54.716666666667 # DE_DHDN_Lat-Lon
+expect 8.499027339833 54.714992333813 # ETRS89_Lat-Lon
+accept 7.483333333333 51.983333333333 # DE_DHDN_Lat-Lon
+expect 7.482494584516 51.981965147975 # ETRS89_Lat-Lon
+accept 7.516666666667 51.016666666667 # DE_DHDN_Lat-Lon
+expect 7.515823996992 51.015402184493 # ETRS89_Lat-Lon
+accept 7.466666666667 50.500000000000 # DE_DHDN_Lat-Lon
+expect 7.465834308888 50.498791390585 # ETRS89_Lat-Lon
+accept 7.533333333333 49.333333333333 # DE_DHDN_Lat-Lon
+expect 7.532503616986 49.332250779407 # ETRS89_Lat-Lon
+accept 7.250000000000 49.333333333333 # DE_DHDN_Lat-Lon
+expect 7.249209260581 49.332249456364 # ETRS89_Lat-Lon
+accept 7.533333333333 47.666666666667 # DE_DHDN_Lat-Lon
+expect 7.532530252396 47.665765608135 # ETRS89_Lat-Lon
+-------------------------------------------------------------------------------
+</gie>
+
+
+
+
+
+
+
+
+
+
+-------------------------------------------------------------------------------
+The numerical material in this file is based on the contents of the
+BKG test data file over at http://crs.bkg.bund.de/crseu/crs/descrtrans/BeTA/BETA2007testdaten.csv
+
+The conversion was carried out as follows:
+
+set insertkey=gawk 'BEGIN {FS=","}; {print $3","$0}
+set reformat=gawk 'BEGIN {FS=","}; {print "accept " $6 " " $5 " # " $4 "\nexpect " $9 " " $8 " # " $7}'
+cat BETA2007testdaten.csv | %insertkey% | sort | %reformat% >DHDN_ETRS89.gie
+-------------------------------------------------------------------------------
+
+
+-------------------------------------------------------------------------------
+Tests for GK system zones to UTM32/33 not implemented yet
+-------------------------------------------------------------------------------
+accept 2598417.333192 5930677.980308 # DE_DHDN_3GK2
+expect 399340.601863 5928794.177992 # ETRS89_UTM32
+accept 2643120.946052 5551463.861308 # DE_DHDN_3GK2
+expect 428391.209209 5548246.766868 # ETRS89_UTM32
+accept 2678509.791823 5890320.494547 # DE_DHDN_3GK2
+expect 477621.722498 5885134.566909 # ETRS89_UTM32
+accept 2661073.960381 6067930.993896 # DE_DHDN_3GK2
+expect 467726.896146 6063191.974102 # ETRS89_UTM32
+accept 2601895.024514 5761935.671777 # DE_DHDN_3GK2
+expect 395783.496871 5760119.715259 # ETRS89_UTM32
+accept 2606412.760026 5654454.411797 # DE_DHDN_3GK2
+expect 395892.865206 5652585.895428 # ETRS89_UTM32
+accept 2604044.332230 5596917.811668 # DE_DHDN_3GK2
+expect 391195.030128 5595215.127880 # ETRS89_UTM32
+accept 2611430.565041 5467270.623504 # DE_DHDN_3GK2
+expect 393381.121595 5465427.351346 # ETRS89_UTM32
+accept 2590840.678885 5466891.206854 # DE_DHDN_3GK2
+expect 372799.647928 5465865.755414 # ETRS89_UTM32
+accept 2615145.447136 5281966.148083 # DE_DHDN_3GK2
+expect 389829.267589 5280195.601333 # ETRS89_UTM32
+accept 3399371.190396 5930724.531323 # DE_DHDN_3GK3
+expect 399340.601862 5928794.177992 # ETRS89_UTM32
+accept 3597874.421966 5411397.512092 # DE_DHDN_3GK3
+expect 597759.898637 5409672.239612 # ETRS89_UTM32
+accept 3428437.612810 5550026.645035 # DE_DHDN_3GK3
+expect 428391.209209 5548246.766869 # ETRS89_UTM32
+accept 3571307.006323 5655705.338031 # DE_DHDN_3GK3
+expect 571204.563344 5653882.476948 # ETRS89_UTM32
+accept 3595392.782000 6023387.959898 # DE_DHDN_3GK3
+expect 595286.044398 6021417.376973 # ETRS89_UTM32
+accept 3615881.001454 5940351.727710 # DE_DHDN_3GK3
+expect 615764.364007 5938413.819150 # ETRS89_UTM32
+accept 3615881.001454 5940351.727710 # DE_DHDN_3GK3
+expect 218617.111391 5945399.220269 # ETRS89_UTM33
+accept 3567455.742115 5930134.904864 # DE_DHDN_3GK3
+expect 567358.390548 5928201.976543 # ETRS89_UTM32
+accept 3632798.076882 5927807.051283 # DE_DHDN_3GK3
+expect 632674.379672 5925873.747901 # ETRS89_UTM32
+accept 3632798.076882 5927807.051283 # DE_DHDN_3GK3
+expect 234423.486615 5931470.592457 # ETRS89_UTM33
+accept 3633848.721200 5849896.198513 # DE_DHDN_3GK3
+expect 633723.734075 5847994.536970 # ETRS89_UTM32
+accept 3633848.721200 5849896.198513 # DE_DHDN_3GK3
+expect 228947.171966 5853725.067987 # ETRS89_UTM33
+accept 3599586.686397 5819391.659845 # DE_DHDN_3GK3
+expect 599474.934168 5817502.626999 # ETRS89_UTM32
+accept 3607695.214682 5704557.217497 # DE_DHDN_3GK3
+expect 607578.857121 5702714.405562 # ETRS89_UTM32
+accept 3607695.214682 5704557.217497 # DE_DHDN_3GK3
+expect 190859.292094 5710978.842070 # ETRS89_UTM33
+accept 3602680.921862 5606162.921133 # DE_DHDN_3GK3
+expect 602565.455313 5604359.618990 # ETRS89_UTM32
+accept 3602680.921862 5606162.921133 # DE_DHDN_3GK3
+expect 177845.139712 5613251.897383 # ETRS89_UTM33
+accept 3602255.364740 5504172.212483 # DE_DHDN_3GK3
+expect 602139.527314 5502409.680191 # ETRS89_UTM32
+accept 3602255.364740 5504172.212483 # DE_DHDN_3GK3
+expect 169220.450101 5511545.700292 # ETRS89_UTM33
+accept 3616211.566778 5291255.078896 # DE_DHDN_3GK3
+expect 616089.408439 5289578.131826 # ETRS89_UTM32
+accept 3616211.566778 5291255.078896 # DE_DHDN_3GK3
+expect 166384.067958 5298018.237122 # ETRS89_UTM33
+accept 3477684.063162 5887048.676718 # DE_DHDN_3GK3
+expect 477621.722499 5885134.566914 # ETRS89_UTM32
+accept 3467781.947036 6065176.417740 # DE_DHDN_3GK3
+expect 467726.896147 6063191.974105 # ETRS89_UTM32
+accept 3395815.326925 5761982.907482 # DE_DHDN_3GK3
+expect 395783.496872 5760119.715259 # ETRS89_UTM32
+accept 3395925.872234 5654406.808724 # DE_DHDN_3GK3
+expect 395892.865206 5652585.895428 # ETRS89_UTM32
+accept 3391226.589718 5597013.366086 # DE_DHDN_3GK3
+expect 391195.030128 5595215.127881 # ETRS89_UTM32
+accept 3393414.080125 5467174.397245 # DE_DHDN_3GK3
+expect 393381.121595 5465427.351346 # ETRS89_UTM32
+accept 3372824.499428 5467612.907301 # DE_DHDN_3GK3
+expect 372799.647928 5465865.755413 # ETRS89_UTM32
+accept 3389860.774004 5281869.239226 # DE_DHDN_3GK3
+expect 389829.267590 5280195.601333 # ETRS89_UTM32
+accept 4377657.794741 5411879.839992 # DE_DHDN_3GK4
+expect 597759.898636 5409672.239612 # ETRS89_UTM32
+accept 4360897.154310 5657085.679344 # DE_DHDN_3GK4
+expect 571204.563343 5653882.476947 # ETRS89_UTM32
+accept 4400271.505998 6023480.198072 # DE_DHDN_3GK4
+expect 595286.044399 6021417.376972 # ETRS89_UTM32
+accept 4417225.999425 5939654.081375 # DE_DHDN_3GK4
+expect 615764.364007 5938413.819151 # ETRS89_UTM32
+accept 4417225.999425 5939654.081375 # DE_DHDN_3GK4
+expect 218617.111391 5945399.220269 # ETRS89_UTM33
+accept 4368411.664264 5931484.902370 # DE_DHDN_3GK4
+expect 567358.390548 5928201.976543 # ETRS89_UTM32
+accept 4433598.021986 5926410.006980 # DE_DHDN_3GK4
+expect 632674.379671 5925873.747901 # ETRS89_UTM32
+accept 4433598.021986 5926410.006980 # DE_DHDN_3GK4
+expect 234423.486614 5931470.592457 # ETRS89_UTM33
+accept 4596699.814954 5960328.296681 # DE_DHDN_3GK4
+expect 794226.051532 5966642.993890 # ETRS89_UTM32
+accept 4596699.814954 5960328.296681 # DE_DHDN_3GK4
+expect 398811.452821 5958481.617326 # ETRS89_UTM33
+accept 4431385.771953 5848536.122437 # DE_DHDN_3GK4
+expect 633723.734074 5847994.536971 # ETRS89_UTM32
+accept 4431385.771953 5848536.122437 # DE_DHDN_3GK4
+expect 228947.171966 5853725.067987 # ETRS89_UTM33
+accept 4568999.833703 5739119.060681 # DE_DHDN_3GK4
+expect 775766.817929 5744357.999264 # ETRS89_UTM32
+accept 4568999.833703 5739119.060681 # DE_DHDN_3GK4
+expect 361924.813552 5738688.111797 # ETRS89_UTM33
+accept 4395886.918912 5819485.694352 # DE_DHDN_3GK4
+expect 599474.934169 5817502.626999 # ETRS89_UTM32
+accept 4399252.521454 5704414.901133 # DE_DHDN_3GK4
+expect 607578.857121 5702714.405563 # ETRS89_UTM32
+accept 4399252.521454 5704414.901133 # DE_DHDN_3GK4
+expect 190859.292094 5710978.842070 # ETRS89_UTM33
+accept 4390237.957560 5606306.171667 # DE_DHDN_3GK4
+expect 602565.455313 5604359.618990 # ETRS89_UTM32
+accept 4390237.957560 5606306.171667 # DE_DHDN_3GK4
+expect 177845.139712 5613251.897384 # ETRS89_UTM33
+accept 4385715.060070 5504412.338975 # DE_DHDN_3GK4
+expect 602139.527314 5502409.680191 # ETRS89_UTM32
+accept 4385715.060070 5504412.338975 # DE_DHDN_3GK4
+expect 169220.450101 5511545.700292 # ETRS89_UTM33
+accept 4391285.796869 5291109.755123 # DE_DHDN_3GK4
+expect 616089.408439 5289578.131827 # ETRS89_UTM32
+accept 4391285.796869 5291109.755123 # DE_DHDN_3GK4
+expect 166384.067958 5298018.237122 # ETRS89_UTM33
+accept 4602499.566145 5615431.379860 # DE_DHDN_3GK4
+expect 814311.364242 5622071.326313 # ETRS89_UTM32
+accept 4602499.566145 5615431.379860 # DE_DHDN_3GK4
+expect 390338.211462 5613774.353256 # ETRS89_UTM33
+accept 4608008.855658 5689725.987089 # DE_DHDN_3GK4
+expect 816793.461724 5696579.298817 # ETRS89_UTM32
+accept 4608008.855658 5689725.987089 # DE_DHDN_3GK4
+expect 398863.493307 5687753.129020 # ETRS89_UTM33
+accept 4607459.254388 5769472.054323 # DE_DHDN_3GK4
+expect 812962.846098 5776288.882564 # ETRS89_UTM32
+accept 4607459.254388 5769472.054323 # DE_DHDN_3GK4
+expect 401589.388273 5767420.751372 # ETRS89_UTM33
+accept 4595844.509596 5893520.178529 # DE_DHDN_3GK4
+expect 796184.889876 5899821.806119 # ETRS89_UTM32
+accept 4595844.509596 5893520.178529 # DE_DHDN_3GK4
+expect 395147.893839 5891795.036022 # ETRS89_UTM33
+accept 4599624.347102 5817537.418158 # DE_DHDN_3GK4
+expect 803137.012417 5824018.671556 # ETRS89_UTM32
+accept 4599624.347102 5817537.418158 # DE_DHDN_3GK4
+expect 395754.092849 5815749.835902 # ETRS89_UTM33
+accept 4582806.457775 5437104.667215 # DE_DHDN_3GK4
+expect 801769.133341 5442981.626260 # ETRS89_UTM32
+accept 4582806.457775 5437104.667215 # DE_DHDN_3GK4
+expect 363531.446507 5436436.282581 # ETRS89_UTM33
+accept 4571363.304563 5279411.440581 # DE_DHDN_3GK4
+expect 796505.582915 5284862.664428 # ETRS89_UTM32
+accept 4571363.304563 5279411.440581 # DE_DHDN_3GK4
+expect 345930.907036 5279345.459526 # ETRS89_UTM33
+accept 5398905.047545 5960421.130827 # DE_DHDN_3GK5
+expect 794226.051532 5966642.993889 # ETRS89_UTM32
+accept 5398905.047545 5960421.130827 # DE_DHDN_3GK5
+expect 398811.452821 5958481.617326 # ETRS89_UTM33
+accept 5362005.247500 5740538.568445 # DE_DHDN_3GK5
+expect 775766.817929 5744357.999262 # ETRS89_UTM32
+accept 5362005.247500 5740538.568445 # DE_DHDN_3GK5
+expect 361924.813551 5738688.111796 # ETRS89_UTM33
+accept 5390431.824773 5615574.548074 # DE_DHDN_3GK5
+expect 814311.364241 5622071.326313 # ETRS89_UTM32
+accept 5390431.824773 5615574.548074 # DE_DHDN_3GK5
+expect 390338.211462 5613774.353256 # ETRS89_UTM33
+accept 5398959.121385 5689583.521018 # DE_DHDN_3GK5
+expect 816793.461724 5696579.298817 # ETRS89_UTM32
+accept 5398959.121385 5689583.521018 # DE_DHDN_3GK5
+expect 398863.493307 5687753.129020 # ETRS89_UTM33
+accept 5401685.729154 5769283.220752 # DE_DHDN_3GK5
+expect 812962.846098 5776288.882564 # ETRS89_UTM32
+accept 5401685.729154 5769283.220752 # DE_DHDN_3GK5
+expect 401589.388272 5767420.751372 # ETRS89_UTM33
+accept 5395240.318989 5893707.029636 # DE_DHDN_3GK5
+expect 796184.889876 5899821.806119 # ETRS89_UTM32
+accept 5395240.318989 5893707.029636 # DE_DHDN_3GK5
+expect 395147.893840 5891795.036022 # ETRS89_UTM33
+accept 5395847.545864 5817631.467237 # DE_DHDN_3GK5
+expect 803137.012417 5824018.671556 # ETRS89_UTM32
+accept 5395847.545864 5817631.467237 # DE_DHDN_3GK5
+expect 395754.092849 5815749.835902 # ETRS89_UTM33
+accept 5363615.032963 5438164.610427 # DE_DHDN_3GK5
+expect 801769.133341 5442981.626260 # ETRS89_UTM32
+accept 5363615.032963 5438164.610427 # DE_DHDN_3GK5
+expect 363531.446506 5436436.282581 # ETRS89_UTM33
+accept 5346007.854521 5281010.564511 # DE_DHDN_3GK5
+expect 796505.582915 5284862.664427 # ETRS89_UTM32
+accept 5346007.854521 5281010.564511 # DE_DHDN_3GK5
+expect 345930.907036 5279345.459525 # ETRS89_UTM33
+-------------------------------------------------------------------------------
diff --git a/test/gie/GDA.gie b/test/gie/GDA.gie
index 3fe0f3e3..ea975bb6 100644
--- a/test/gie/GDA.gie
+++ b/test/gie/GDA.gie
@@ -13,58 +13,65 @@ Which is distributed under Creative Commons CC-BY 4.0
These tests will probably be useful as a template for an AU setup file, defining
transformations for Australian systems, but I'm reluctant to provide such a file
-directly - I believe it should come from official AU sources.
+myself - it probably should come from official AU sources.
Thomas Knudsen, thokn@sdfe.dk, 2017-11-27
-----------------------------------------------------------------------------------
<gie>
+
-----------------------------------------------------------------------------------
GDA94 to GDA2020
-----------------------------------------------------------------------------------
Just the Helmert transformation, to verify that we are within 100 um
-----------------------------------------------------------------------------------
-operation proj=helmert x=0.06155 y=-0.01087 z=-0.04019 s=-0.009994 \
- rx=-0.0394924 ry=-0.0327221 rz=-0.0328979
+operation proj=helmert
+ x = 0.06155 rx = -0.0394924
+ y = -0.01087 ry = -0.0327221
+ z = -0.04019 rz = -0.0328979 s = -0.009994
+
-----------------------------------------------------------------------------------
tolerance 75 um
accept -4052051.7643 4212836.2017 -2545106.0245
expect -4052052.7379 4212835.9897 -2545104.5898
+-------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
GDA94 to GDA2020
-----------------------------------------------------------------------------------
-All the way from geographic-to-geographic
+All the way from geographic-to-cartesian-and-back-to-geographic
-----------------------------------------------------------------------------------
-operation proj=pipeline ellps=GRS80 \
- step proj=cart \
- step proj=helmert x=0.06155 y=-0.01087 z=-0.04019 s=-0.009994 \
- rx=-0.0394924 ry=-0.0327221 rz=-0.0328979 \
- step proj=cart inv
+operation proj = pipeline ellps=GRS80;
+ step proj = cart;
+ step proj = helmert
+ x = 0.06155; rx = -0.0394924;
+ y = -0.01087; ry = -0.0327221;
+ z = -0.04019; rz = -0.0328979; s = -0.009994;
+ step proj = cart inv;
-----------------------------------------------------------------------------------
+tolerance 2 mm
accept 133.88551329 -23.67012389 603.3466 0 # Alice Springs GDA94
expect 133.8855216 -23.67011014 603.2489 0 # Alice Springs GDA2020
+-------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-ITRF2014@2018 to GDA2020
+ITRF2014@2018 to GDA2020 - Test point ALIC (Alice Springs)
-----------------------------------------------------------------------------------
Just the Helmert transformation, to verify that we are within 100 um
-----------------------------------------------------------------------------------
-operation proj = helmert; \
- x = 0; rx = 0; dx = 0; drx = 0.00150379; \
- y = 0; ry = 0; dy = 0; dry = 0.00118346; \
- z = 0; rz = 0; dz = 0; drz = 0.00120716; \
- \
- ds = 0; epoch=2020.0;
------------------------------------------------------------------------------------
-tolerance 50 um
+operation proj = helmert ellps=GRS80 exact
- # Alice Springs ITRF2014@2018.0
-accept -4052052.6588 4212835.9938 -2545104.6946 2018.0
+ x = 0 rx = 0 dx = 0 drx = 0.00150379
+ y = 0 ry = 0 dy = 0 dry = 0.00118346
+ z = 0 rz = 0 dz = 0 drz = 0.00120716
- # Alice Springs GDA2020
-expect -4052052.7373 4212835.9835 -2545104.5867
+ s = 0 ds = 0 t_epoch=2020.0
+-----------------------------------------------------------------------------------
+tolerance 40 um
+accept -4052052.6588 4212835.9938 -2545104.6946 2018.0 # ITRF2014@2018.0
+expect -4052052.7373 4212835.9835 -2545104.5867 # GDA2020
+-----------------------------------------------------------------------------------
</gie>
diff --git a/test/gie/Makefile.am b/test/gie/Makefile.am
new file mode 100644
index 00000000..4d5b206d
--- /dev/null
+++ b/test/gie/Makefile.am
@@ -0,0 +1,39 @@
+EXEPATH = ../../src
+GIEEXE = $(EXEPATH)/gie
+
+EXTRA_DIST = 4D-API_cs2cs-style.gie \
+ GDA.gie \
+ axisswap.gie \
+ builtins.gie \
+ deformation.gie \
+ ellipsoid.gie \
+ more_builtins.gie \
+ unitconvert.gie
+
+PROJ_LIB ?= $(top_srcdir)/nad
+
+4D-API-cs2cs-style: 4D-API_cs2cs-style.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+GDA: GDA.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+axisswap: axisswap.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+builtins: builtins.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+deformation: deformation.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+ellipsoid: ellipsoid.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+more_builtins: more_builtins.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+unitconvert: unitconvert.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+check-local: 4D-API-cs2cs-style GDA axisswap builtins deformation ellipsoid more_builtins unitconvert
diff --git a/test/gie/axisswap.gie b/test/gie/axisswap.gie
index b9281ef7..5fe86200 100644
--- a/test/gie/axisswap.gie
+++ b/test/gie/axisswap.gie
@@ -2,73 +2,110 @@
Tests for the axisswap operation
-------------------------------------------------------------------------------
-BEGIN
-
-OPERATION +proj=axisswap +order=1,2,3,4
-TOLERANCE 0.000001 m
-ACCEPT 1 2 3 4
-EXPECT 1 2 3 4
-ROUNDTRIP 100
-
-OPERATION +proj=axisswap +order=4,3,2,1
-TOLERANCE 0.000001 m
-ACCEPT 1 2 3 4
-EXPECT 4 3 2 1
-ROUNDTRIP 100
-
-OPERATION +proj=axisswap +order=-1,-2,-3,-4
-TOLERANCE 0.000001 m
-ACCEPT 1 2 3 4
-EXPECT -1 -2 -3 -4
-ROUNDTRIP 100
-
-OPERATION +proj=axisswap +order=1,2,-3,4
-TOLERANCE 0.000001 m
-ACCEPT 1 2 3 4
-EXPECT 1 2 -3 4
-ROUNDTRIP 100
-
-OPERATION +proj=axisswap +order=-1,2,3,4
-TOLERANCE 0.000001 m
-ACCEPT 1 2 3 4
-EXPECT -1 2 3 4
-ROUNDTRIP 100
-
-OPERATION +proj=axisswap +order=1,2,3,-4
-TOLERANCE 0.000001 m
-ACCEPT 1 2 3 4
-EXPECT 1 2 3 -4
-ROUNDTRIP 100
-
-OPERATION +proj=axisswap +order=-2,1
-TOLERANCE 0.000001 m
-ACCEPT 1 2 3 4
-EXPECT -2 1 3 4
-ROUNDTRIP 100
-$
-OPERATION +proj=axisswap +order=3,-2,1
-TOLERANCE 0.000001 m
-ACCEPT 1 2 3 4
-EXPECT 3 -2 1 4
-ROUNDTRIP 100
-
-
-OPERATION proj=pipeline step proj=latlong step proj=axisswap order=1,2,3,4 angularunits
-TOLERANCE 0.00001 m
-ACCEPT 12 55 0 0
-EXPECT 12 55 0 0
-
-OPERATION +proj=pipeline +step +proj=latlong +step +proj=axisswap +order=-2,-1,3,4 +angularunits
-TOLERANCE 0.00001 m
-ACCEPT 12 55 0 0
-EXPECT -55 -12 0 0
+<gie>
--------------------------------------------------------------------------------
-operation +proj=aea +ellps=GRS80 +lat_1=0 +lat_2=2
--------------------------------------------------------------------------------
-tolerance 0.00010 mm
-accept 2 1
-expect 222571.608757106 110653.326743030
-ROUNDTRIP 100
+operation proj=axisswap order=1,2,3,4
+tolerance 0.000001 m
+accept 1 2 3 4
+expect 1 2 3 4
+roundtrip 100
+
+operation proj=axisswap order=4,3,2,1
+tolerance 0.000001 m
+accept 1 2 3 4
+expect 4 3 2 1
+roundtrip 100
+
+operation proj=axisswap order=-1,-2,-3,-4
+tolerance 0.000001 m
+accept 1 2 3 4
+expect -1 -2 -3 -4
+roundtrip 100
+
+operation proj=axisswap order=1,2,-3,4
+tolerance 0.000001 m
+accept 1 2 3 4
+expect 1 2 -3 4
+roundtrip 100
+
+operation proj=axisswap order=-1,2,3,4
+tolerance 0.000001 m
+accept 1 2 3 4
+expect -1 2 3 4
+roundtrip 100
+
+operation proj=axisswap order=1,2,3,-4
+tolerance 0.000001 m
+accept 1 2 3 4
+expect 1 2 3 -4
+roundtrip 100
+
+operation proj=axisswap order=-2,1
+tolerance 0.000001 m
+accept 1 2 3 4
+expect -2 1 3 4
+roundtrip 100
+
+operation proj=axisswap order=3,-2,1
+tolerance 0.000001 m
+accept 1 2 3 4
+expect 3 -2 1 4
+roundtrip 100
+
+operation proj=axisswap axis=neu
+tolerance 0 m
+accept 1 2 3
+expect 2 1 3
+
+# when using the +axis parameter we specify the order of the INPUT coordinate,
+# as opposed to +order which relates to the OUTPUT coordinate. Here we test
+# that n(1), u(2) and e(3) are swapped correctly to enu ordering.
+operation proj=axisswap axis=nue
+tolerance 0 m
+accept 1 2 3
+expect 2 3 1
+
+operation proj=axisswap axis=swd
+tolerance 0.000001 m
+accept 1 2 3 4
+expect -2 -1 -3 4
+
+operation proj=pipeline
+ step proj=latlong
+ step proj=axisswap
+ order=1,2,3,4
+ angularunits
+
+tolerance 0.00001 m
+accept 12 55 0 0
+expect 12 55 0 0
+
+operation proj=pipeline
+ step proj=latlong
+ step proj=axisswap
+ order=-2,-1,3,4
+ angularunits
+
+tolerance 0.00001 m
+accept 12 55 0 0
+expect -55 -12 0 0
+
+operation proj=axisswap order=1,2,3,4 axis=enu
+expect failure pjd_err_axis
+
+operation proj=axisswap
+expect failure pjd_err_axis
+
+operation proj=axisswap order=1,2,1,4
+expect failure pjd_err_axis
+
+operation proj=axisswap order=2,3
+expect failure pjd_err_axis
+
+operation proj=axisswap order=2,3,4
+expect failure pjd_err_axis
+
+operation proj=axisswap order=1,2,3,5
+expect failure pjd_err_axis
-END
+</gie>
diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie
index 6b820c01..a8a440e3 100644
--- a/test/gie/builtins.gie
+++ b/test/gie/builtins.gie
@@ -10,7 +10,7 @@ See more_builtins.gie for some test cases with a more human touch.
===============================================================================
-BEGIN
+<gie>
===============================================================================
Albers Equal Area
@@ -20,7 +20,7 @@ Albers Equal Area
-------------------------------------------------------------------------------
operation +proj=aea +ellps=GRS80 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222571.608757106 110653.326743030
accept 2 -1
@@ -43,7 +43,7 @@ expect -0.001796630 -0.000904370
-------------------------------------------------------------------------------
operation +proj=aea +R=6400000 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223334.085170885 111780.431884472
accept 2 -1
@@ -73,7 +73,7 @@ Azimuthal Equidistant
-------------------------------------------------------------------------------
operation +proj=aeqd +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222616.522190052 110596.996549550
accept 2 -1
@@ -96,7 +96,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=aeqd +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223379.456047271 111723.757570854
accept 2 -1
@@ -126,7 +126,7 @@ Airy
-------------------------------------------------------------------------------
operation +proj=airy +a=6400000 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 189109.886908621 94583.752387504
accept 2 -1
@@ -145,7 +145,7 @@ Aitoff
-------------------------------------------------------------------------------
operation +proj=aitoff +R=6400000 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223379.458811696 111706.742883853
accept 2 -1
@@ -174,7 +174,7 @@ Mod. Stereographic of Alaska
-------------------------------------------------------------------------------
operation +proj=alsk +ellps=clrk66
-------------------------------------------------------------------------------
-tolerance 0.00001 mm
+tolerance 0.1 mm
accept -160.000000000 55.000000000
expect -513253.146950842 -968928.031867943
accept -160.000000000 70.000000000
@@ -197,7 +197,7 @@ expect -144.758985461 60.202929201
-------------------------------------------------------------------------------
operation +proj=alsk +R=6370997
-------------------------------------------------------------------------------
-tolerance 0.0001 mm
+tolerance 0.1 mm
accept -160.000000000 55.000000000
expect -511510.319410844 -967150.991676078
accept -160.000000000 70.000000000
@@ -226,7 +226,7 @@ Apian Globular I
-------------------------------------------------------------------------------
operation +proj=apian +a=6400000 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223374.577355253 111701.072127637
accept 2 -1
@@ -245,7 +245,7 @@ August Epicycloidal
-------------------------------------------------------------------------------
operation +proj=august +a=6400000 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223404.978180972 111722.340289763
accept 2 -1
@@ -264,7 +264,7 @@ Bacon Globular
-------------------------------------------------------------------------------
operation +proj=bacon +a=6400000 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223334.132555965 175450.725922666
accept 2 -1
@@ -283,7 +283,7 @@ Bipolar conic of western hemisphere
-------------------------------------------------------------------------------
operation +proj=bipc +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 2452160.217725756 -14548450.759654747
accept 2 -1
@@ -306,7 +306,7 @@ expect -73.034496627 17.246832896
-------------------------------------------------------------------------------
operation +proj=bipc +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 2460565.740974965 -14598319.989330800
accept 2 -1
@@ -335,7 +335,7 @@ Boggs Eumorphic
-------------------------------------------------------------------------------
operation +proj=boggs +a=6400000 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 211949.700808182 117720.998305411
accept 2 -1
@@ -355,7 +355,7 @@ Bonne (Werner lat_1=90)
-------------------------------------------------------------------------------
operation +proj=bonne +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222605.296097157 55321.139565495
accept 2 -1
@@ -378,7 +378,7 @@ expect -0.001796698 0.499095631
-------------------------------------------------------------------------------
operation +proj=bonne +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223368.115572528 55884.555246394
accept 2 -1
@@ -407,7 +407,7 @@ Cal Coop Ocean Fish Invest Lines/Stations
-------------------------------------------------------------------------------
operation +proj=calcofi +ellps=GRS80 +lat_1=0.5 +lat_2=2 +no_defs
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 508.444872150 -1171.764860418
accept 2 -1
@@ -430,7 +430,7 @@ expect -62.486322854 87.980755945
-------------------------------------------------------------------------------
operation +proj=calcofi +R=6400000 +lat_1=0.5 +lat_2=2 +no_defs
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 507.090507488 -1164.727375198
accept 2 -1
@@ -459,7 +459,7 @@ Cassini
-------------------------------------------------------------------------------
operation +proj=cass +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222605.285776991 110642.229253999
accept 2 -1
@@ -482,7 +482,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=cass +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223368.105203484 111769.145040586
accept 2 -1
@@ -505,13 +505,15 @@ expect -0.001790493 -0.000895247
===============================================================================
Central Conic
Sph
- lat_1
+ lat_1
===============================================================================
-------------------------------------------------------------------------------
-operation +proj=pipeline +step +proj=ccon +lat_1=52 +lat_0=52 +lon_0=19 +a=6390000 +x_0=330000 +y_0=-350000 +step +proj=axisswap +order=1,-2,3,4
+operation +proj=pipeline +R=6390000
+ +step +proj=ccon +lat_1=52 +lat_0=52 +lon_0=19 +x_0=330000 +y_0=-350000
+ +step +proj=axisswap +order=1,-2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 24 55
expect 650031.54109413219363 4106.1617770643609028
accept 15 49
@@ -542,7 +544,7 @@ Central Cylindrical
-------------------------------------------------------------------------------
operation +proj=cc +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223402.144255274 111712.415540593
accept 2 -1
@@ -572,7 +574,7 @@ Equal Area Cylindrical
-------------------------------------------------------------------------------
operation +proj=cea +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222638.981586547 110568.812396267
accept 2 -1
@@ -595,7 +597,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=cea +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223402.144255274 111695.401198614
accept 2 -1
@@ -625,7 +627,7 @@ Chamberlin Trimetric
-------------------------------------------------------------------------------
operation +proj=chamb +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.5 mm
accept 2 1
expect -27864.779586801 -223364.324593274
accept 2 -1
@@ -644,7 +646,7 @@ Collignon
-------------------------------------------------------------------------------
operation +proj=collg +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 249872.921577930 99423.174788460
accept 2 -1
@@ -673,7 +675,7 @@ Compact Miller
-------------------------------------------------------------------------------
operation +proj=comill +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223402.144255274 110611.859089459
accept 2 -1
@@ -702,7 +704,7 @@ Craster Parabolic (Putnins P4)
-------------------------------------------------------------------------------
operation +proj=crast +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 218280.142056781 114306.045604280
accept 2 -1
@@ -731,7 +733,7 @@ Denoyer Semi-Elliptical
-------------------------------------------------------------------------------
operation +proj=denoy +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223377.422876954 111701.072127637
accept 2 -1
@@ -750,7 +752,7 @@ Eckert I
-------------------------------------------------------------------------------
operation +proj=eck1 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 204680.888202951 102912.178426065
accept 2 -1
@@ -779,7 +781,7 @@ Eckert II
-------------------------------------------------------------------------------
operation +proj=eck2 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 204472.870907960 121633.734975242
accept 2 -1
@@ -808,7 +810,7 @@ Eckert III
-------------------------------------------------------------------------------
operation +proj=eck3 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 188652.015721538 94328.919337031
accept 2 -1
@@ -837,7 +839,7 @@ Eckert IV
-------------------------------------------------------------------------------
operation +proj=eck4 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 188646.389356416 132268.540174065
accept 2 -1
@@ -866,7 +868,7 @@ Eckert V
-------------------------------------------------------------------------------
operation +proj=eck5 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 197031.392134061 98523.198847227
accept 2 -1
@@ -895,7 +897,7 @@ Eckert VI
-------------------------------------------------------------------------------
operation +proj=eck6 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 197021.605628992 126640.420733174
accept 2 -1
@@ -925,7 +927,7 @@ Equidistant Cylindrical (Plate Caree)
-------------------------------------------------------------------------------
operation +proj=eqc +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223402.144255274 111701.072127637
accept 2 -1
@@ -955,7 +957,7 @@ Equidistant Conic
-------------------------------------------------------------------------------
operation +proj=eqdc +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222588.440269286 110659.134907347
accept 2 -1
@@ -978,7 +980,7 @@ expect -0.001796358 -0.000904370
-------------------------------------------------------------------------------
operation +proj=eqdc +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223351.088175114 111786.108747174
accept 2 -1
@@ -1008,7 +1010,7 @@ Euler
-------------------------------------------------------------------------------
operation +proj=euler +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222597.634659108 111404.240549919
accept 2 -1
@@ -1031,7 +1033,7 @@ expect -0.001796279 -0.000898316
-------------------------------------------------------------------------------
operation +proj=euler +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223360.655598694 111786.112389791
accept 2 -1
@@ -1062,7 +1064,7 @@ lat_0=(0)
-------------------------------------------------------------------------------
operation +proj=etmerc +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5 +zone=30
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222650.796797586 110642.229411933
accept 2 -1
@@ -1091,7 +1093,7 @@ Fahey
-------------------------------------------------------------------------------
operation +proj=fahey +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 182993.344649124 101603.193569884
accept 2 -1
@@ -1120,7 +1122,7 @@ Foucaut
-------------------------------------------------------------------------------
operation +proj=fouc +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222588.120675892 111322.316700694
accept 2 -1
@@ -1143,7 +1145,7 @@ expect -0.001796631 -0.000898315
-------------------------------------------------------------------------------
operation +proj=fouc +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223351.109003414 111703.907721713
accept 2 -1
@@ -1172,7 +1174,7 @@ Foucaut Sinusoidal
-------------------------------------------------------------------------------
operation +proj=fouc_s +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223402.144255274 111695.401198614
accept 2 -1
@@ -1201,7 +1203,7 @@ Gall (Gall Stereographic)
-------------------------------------------------------------------------------
operation +proj=gall +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 157969.171134520 95345.249178386
accept 2 -1
@@ -1230,15 +1232,15 @@ Geocentric
-------------------------------------------------------------------------------
operation +proj=geocent +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
-accept 2 1
-expect 222638.981586547 111319.490793274
-accept 2 -1
-expect 222638.981586547 -111319.490793274
-accept -2 1
-expect -222638.981586547 111319.490793274
-accept -2 -1
-expect -222638.981586547 -111319.490793274
+tolerance 0.1 mm
+accept 2 1 0
+expect 6373287.27950247 222560.09599219 110568.77482092
+accept 2 -1 0
+expect 6373287.27950247 222560.09599219 -110568.77482092
+accept -2 1 0
+expect 6373287.27950247 -222560.09599219 110568.77482092
+accept -2 -1 0
+expect 6373287.27950247 -222560.09599219 -110568.77482092
direction inverse
accept 200 100
@@ -1253,7 +1255,7 @@ expect -0.001796631 -0.000898315
-------------------------------------------------------------------------------
operation +proj=geocent +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
===============================================================================
@@ -1265,7 +1267,7 @@ Geostationary Satellite View
-------------------------------------------------------------------------------
operation +proj=geos +ellps=GRS80 +lat_1=0.5 +lat_2=2 +h=35785831
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222527.070365800 110551.303413329
accept 2 -1
@@ -1288,7 +1290,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=geos +R=6400000 +lat_1=0.5 +lat_2=2 +h=35785831
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223289.457635795 111677.657456537
accept 2 -1
@@ -1317,7 +1319,7 @@ Ginsburg VIII (TsNIIGAiK)
-------------------------------------------------------------------------------
operation +proj=gins8 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 194350.250939590 111703.907635335
accept 2 -1
@@ -1337,7 +1339,7 @@ General Sinusoidal Series
-------------------------------------------------------------------------------
operation +proj=gn_sinu +a=6400000 +lat_1=0.5 +lat_2=2 +m=1 +n=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223385.132504696 111698.236447187
accept 2 -1
@@ -1366,7 +1368,7 @@ Gnomonic
-------------------------------------------------------------------------------
operation +proj=gnom +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223492.924747185 111780.509206593
accept 2 -1
@@ -1395,7 +1397,7 @@ Goode Homolosine
-------------------------------------------------------------------------------
operation +proj=goode +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223368.119026632 111701.072127637
accept 2 -1
@@ -1424,7 +1426,7 @@ Mod. Stereographic of 48 U.S.
-------------------------------------------------------------------------------
operation +proj=gs48 +R=6370997
-------------------------------------------------------------------------------
-tolerance 0.0001 mm
+tolerance 0.1 mm
accept -119.000000000 40.000000000
expect -1923908.446529346 355874.658944479
accept -70.000000000 64.000000000
@@ -1453,7 +1455,7 @@ Mod. Stereographic of 50 U.S.
-------------------------------------------------------------------------------
operation +proj=gs50 +ellps=clrk66
-------------------------------------------------------------------------------
-tolerance 0.0001 mm
+tolerance 0.1 mm
accept -160.000000000 65.000000000
expect -1874628.537740233 2660907.942291015
accept -130.000000000 45.000000000
@@ -1476,7 +1478,7 @@ expect -75.550660091 34.191114076
-------------------------------------------------------------------------------
operation +proj=gs50 +R=6370997
-------------------------------------------------------------------------------
-tolerance 0.0001 mm
+tolerance 0.1 mm
accept -160.000000000 65.000000000
expect -1867268.253460009 2656506.230401823
accept -130.000000000 45.000000000
@@ -1506,7 +1508,7 @@ Hammer & Eckert-Greifendorff
-------------------------------------------------------------------------------
operation +proj=hammer +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223373.788703241 111703.907397767
accept 2 -1
@@ -1535,7 +1537,7 @@ Hatano Asymmetrical Equal Area
-------------------------------------------------------------------------------
operation +proj=hatano +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 189878.878946528 131409.802440626
accept 2 -1
@@ -1564,7 +1566,7 @@ HEALPix
-------------------------------------------------------------------------------
operation +proj=healpix +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222390.103949239 130406.588664482
accept 2 -1
@@ -1587,7 +1589,7 @@ expect -0.001798641 -0.000766795
-------------------------------------------------------------------------------
operation +proj=healpix +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223402.144255274 131588.044441999
accept 2 -1
@@ -1617,7 +1619,7 @@ rHEALPix
-------------------------------------------------------------------------------
operation +proj=rhealpix +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222390.103949239 130406.588664482
accept 2 -1
@@ -1640,7 +1642,7 @@ expect -0.001798641 -0.000766795
-------------------------------------------------------------------------------
operation +proj=rhealpix +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223402.144255274 131588.044441999
accept 2 -1
@@ -1669,7 +1671,7 @@ Interrupted Goode Homolosine
-------------------------------------------------------------------------------
operation +proj=igh +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223878.497456271 111701.072127637
accept 2 -1
@@ -1699,7 +1701,7 @@ International Map of the World Polyconic
-------------------------------------------------------------------------------
operation +proj=imw_p +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222588.441139376 55321.128653810
accept 2 -1
@@ -1728,7 +1730,7 @@ Icosahedral Snyder Equal Area
-------------------------------------------------------------------------------
operation +proj=isea +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect -1097074.948022474 3442909.309037183
accept 2 -1
@@ -1747,7 +1749,7 @@ Kavraisky V
-------------------------------------------------------------------------------
operation +proj=kav5 +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 200360.905308829 123685.082476998
accept 2 -1
@@ -1770,7 +1772,7 @@ expect -0.001996259 -0.000808483
-------------------------------------------------------------------------------
operation +proj=kav5 +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 201047.703110878 124109.050629171
accept 2 -1
@@ -1799,7 +1801,7 @@ Kavraisky VII
-------------------------------------------------------------------------------
operation +proj=kav7 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 193462.974943729 111701.072127637
accept 2 -1
@@ -1828,7 +1830,7 @@ Krovak
-------------------------------------------------------------------------------
operation +proj=krovak +ellps=GRS80 +no_defs
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect -3196535.232563641 -6617878.867551444
accept 2 -1
@@ -1858,7 +1860,7 @@ Laborde
-------------------------------------------------------------------------------
operation +proj=labrd +ellps=GRS80 +lon_0=0.5 +lat_0=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 166973.166090228 -110536.912730266
accept 2 -1
@@ -1887,7 +1889,7 @@ Lambert Azimuthal Equal Area
-------------------------------------------------------------------------------
operation +proj=laea +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222602.471450095 110589.827224410
accept 2 -1
@@ -1910,7 +1912,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=laea +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223365.281370125 111716.668072916
accept 2 -1
@@ -1940,7 +1942,7 @@ Lagrange
-------------------------------------------------------------------------------
operation +proj=lagrng +a=6400000 +W=2 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 111703.375917226 27929.831908033
accept 2 -1
@@ -1959,7 +1961,7 @@ Larrivee
-------------------------------------------------------------------------------
operation +proj=larr +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223393.637624201 111707.215961256
accept 2 -1
@@ -1978,7 +1980,7 @@ Laskowski
-------------------------------------------------------------------------------
operation +proj=lask +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 217928.275907355 112144.329220142
accept 2 -1
@@ -1998,7 +2000,7 @@ Lambert Conformal Conic
-------------------------------------------------------------------------------
operation +proj=lcc +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222588.439735968 110660.533870800
accept 2 -1
@@ -2028,7 +2030,7 @@ Lambert Conformal Conic Alternative
-------------------------------------------------------------------------------
operation +proj=lcca +ellps=GRS80 +lat_0=1 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222605.285770237 67.806007272
accept 2 -1
@@ -2058,7 +2060,7 @@ Lambert Equal Area Conic
-------------------------------------------------------------------------------
operation +proj=leac +ellps=GRS80 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 220685.140542979 112983.500889396
accept 2 -1
@@ -2081,7 +2083,7 @@ expect -0.001796616 -0.000904387
-------------------------------------------------------------------------------
operation +proj=leac +R=6400000 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 221432.868592852 114119.454526532
accept 2 -1
@@ -2110,7 +2112,7 @@ Lee Oblated Stereographic
-------------------------------------------------------------------------------
operation +proj=lee_os +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.0010 mm
+tolerance 0.1 mm
accept 2 1
expect -25564478.952605054 154490848.828625500
accept 2 -1
@@ -2139,7 +2141,7 @@ Loximuthal
-------------------------------------------------------------------------------
operation +proj=loxim +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223382.295791339 55850.536063819
accept 2 -1
@@ -2169,7 +2171,7 @@ Space oblique for LANDSAT
-------------------------------------------------------------------------------
operation +proj=lsat +ellps=GRS80 +lat_1=0.5 +lat_2=2 +lsat=1 +path=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 18241950.014558550 9998256.839822935
accept 2 -1
@@ -2198,7 +2200,7 @@ McBryde-Thomas Flat-Polar Sine (No. 1)
-------------------------------------------------------------------------------
operation +proj=mbt_s +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 204131.517850273 121400.330225508
accept 2 -1
@@ -2221,7 +2223,7 @@ expect -0.001959383 -0.000823699
-------------------------------------------------------------------------------
operation +proj=mbt_s +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 204831.240570992 121816.466696035
accept 2 -1
@@ -2250,7 +2252,7 @@ McBryde-Thomas Flat-Pole Sine (No. 2)
-------------------------------------------------------------------------------
operation +proj=mbt_fps +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 198798.176129850 125512.017254531
accept 2 -1
@@ -2279,7 +2281,7 @@ McBride-Thomas Flat-Polar Parabolic
-------------------------------------------------------------------------------
operation +proj=mbtfpp +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 206804.786929820 120649.762565793
accept 2 -1
@@ -2308,7 +2310,7 @@ McBryde-Thomas Flat-Polar Quartic
-------------------------------------------------------------------------------
operation +proj=mbtfpq +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 209391.854738393 119161.040199055
accept 2 -1
@@ -2337,7 +2339,7 @@ McBryde-Thomas Flat-Polar Sinusoidal
-------------------------------------------------------------------------------
operation +proj=mbtfps +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 204740.117478572 121864.729719340
accept 2 -1
@@ -2367,7 +2369,7 @@ Mercator
-------------------------------------------------------------------------------
operation +proj=merc +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222638.981586547 110579.965218250
accept 2 -1
@@ -2390,7 +2392,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=merc +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223402.144255274 111706.743574944
accept 2 -1
@@ -2419,7 +2421,7 @@ Miller Oblated Stereographic
-------------------------------------------------------------------------------
operation +proj=mil_os +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect -1908527.949594205 -1726237.473061448
accept 2 -1
@@ -2448,7 +2450,7 @@ Miller Cylindrical
-------------------------------------------------------------------------------
operation +proj=mill +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223402.144255274 111704.701754394
accept 2 -1
@@ -2478,7 +2480,7 @@ Space oblique for MISR
-------------------------------------------------------------------------------
operation +proj=misrsom +ellps=GRS80 +lat_1=0.5 +lat_2=2 +path=1
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 18556630.368369825 9533394.675311271
accept 2 -1
@@ -2501,7 +2503,7 @@ expect 127.761567257 -0.001735150
-------------------------------------------------------------------------------
operation +proj=misrsom +R=6400000 +lat_1=0.5 +lat_2=2 +path=1
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 18641249.279170386 9563342.532334166
accept 2 -1
@@ -2530,7 +2532,7 @@ Mollweide
-------------------------------------------------------------------------------
operation +proj=moll +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 201113.698641813 124066.283433860
accept 2 -1
@@ -2560,7 +2562,7 @@ Murdoch I
-------------------------------------------------------------------------------
operation +proj=murd1 +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222600.813473554 111404.244180546
accept 2 -1
@@ -2583,7 +2585,7 @@ expect -0.001796254 -0.000898316
-------------------------------------------------------------------------------
operation +proj=murd1 +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223363.845309492 111786.116032863
accept 2 -1
@@ -2613,7 +2615,7 @@ Murdoch II
-------------------------------------------------------------------------------
operation +proj=murd2 +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222588.099751230 111426.140027412
accept 2 -1
@@ -2636,7 +2638,7 @@ expect -0.001796356 -0.000897888
-------------------------------------------------------------------------------
operation +proj=murd2 +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223351.088007027 111808.086934388
accept 2 -1
@@ -2666,7 +2668,7 @@ Murdoch III
-------------------------------------------------------------------------------
operation +proj=murd3 +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222600.814077577 111404.246601372
accept 2 -1
@@ -2689,7 +2691,7 @@ expect -0.001796254 -0.000898316
-------------------------------------------------------------------------------
operation +proj=murd3 +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223363.845915585 111786.118461987
accept 2 -1
@@ -2718,7 +2720,7 @@ Natural Earth
-------------------------------------------------------------------------------
operation +proj=natearth +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 194507.265257889 112508.737358295
accept 2 -1
@@ -2747,7 +2749,7 @@ Natural Earth 2
-------------------------------------------------------------------------------
operation +proj=natearth2 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 189255.172934731 113022.495810907
accept 2 -1
@@ -2776,7 +2778,7 @@ Nell
-------------------------------------------------------------------------------
operation +proj=nell +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223385.132504696 111698.236447187
accept 2 -1
@@ -2805,7 +2807,7 @@ Nell-Hammer
-------------------------------------------------------------------------------
operation +proj=nell_h +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223385.131640953 111698.236533562
accept 2 -1
@@ -2834,7 +2836,7 @@ Nicolosi Globular
-------------------------------------------------------------------------------
operation +proj=nicol +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223374.561814140 111732.553988545
accept 2 -1
@@ -2854,7 +2856,7 @@ Near-sided perspective
-------------------------------------------------------------------------------
operation +proj=nsper +a=6400000 +h=1000000
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222239.816114100 111153.763991925
accept 2 -1
@@ -2883,7 +2885,7 @@ New Zealand Map Grid
-------------------------------------------------------------------------------
operation +proj=nzmg +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.010 mm
+tolerance 0.1 mm
accept 2 1
expect 3352675144.747425100 -7043205391.100243600
accept 2 -1
@@ -2916,7 +2918,7 @@ General Oblique Transformation
-------------------------------------------------------------------------------
operation +proj=ob_tran +R=6400000 +o_proj=latlon +o_lon_p=20 +o_lat_p=20 +lon_0=180
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect -2.685687214 1.237430235
accept 2 -1
@@ -2946,7 +2948,7 @@ Oblique Cylindrical Equal Area
-------------------------------------------------------------------------------
operation +proj=ocea +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 19994423.837934088 223322.760576728
accept 2 -1
@@ -2976,7 +2978,7 @@ Oblated Equal Area
-------------------------------------------------------------------------------
operation +proj=oea +a=6400000 +lat_1=0.5 +lat_2=2 +n=1 +m=2 +theta=3
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 228926.872097864 99870.488430076
accept 2 -1
@@ -3007,7 +3009,7 @@ Oblique Mercator
-------------------------------------------------------------------------------
operation +proj=omerc +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222650.796885261 110642.229314984
accept 2 -1
@@ -3036,7 +3038,7 @@ Ortelius Oval
-------------------------------------------------------------------------------
operation +proj=ortel +a=6400000 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223374.577355253 111701.072127637
accept 2 -1
@@ -3055,7 +3057,7 @@ Orthographic
-------------------------------------------------------------------------------
operation +proj=ortho +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223322.760576727 111695.401198614
accept 2 -1
@@ -3085,7 +3087,7 @@ Perspective Conic
-------------------------------------------------------------------------------
operation +proj=pconic +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222588.098841617 111416.604770067
accept 2 -1
@@ -3108,7 +3110,7 @@ expect -0.001796356 -0.000897965
-------------------------------------------------------------------------------
operation +proj=pconic +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223351.087094295 111798.518992055
accept 2 -1
@@ -3137,7 +3139,7 @@ Patterson Cylindrical
-------------------------------------------------------------------------------
operation +proj=patterson +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223402.144255274 113354.250397780
accept 2 -1
@@ -3166,7 +3168,7 @@ Polyconic (American)
-------------------------------------------------------------------------------
operation +proj=poly +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222605.285770237 110642.194561440
accept 2 -1
@@ -3189,7 +3191,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=poly +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223368.105210219 111769.110491225
accept 2 -1
@@ -3218,7 +3220,7 @@ Putnins P1
-------------------------------------------------------------------------------
operation +proj=putp1 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 211642.762754160 105831.180787330
accept 2 -1
@@ -3247,7 +3249,7 @@ Putnins P2
-------------------------------------------------------------------------------
operation +proj=putp2 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 211638.039634339 117895.033043380
accept 2 -1
@@ -3276,7 +3278,7 @@ Putnins P3
-------------------------------------------------------------------------------
operation +proj=putp3 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 178227.115507794 89124.560786088
accept 2 -1
@@ -3305,7 +3307,7 @@ Putnins P3'
-------------------------------------------------------------------------------
operation +proj=putp3p +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 178238.118539985 89124.560786088
accept 2 -1
@@ -3334,7 +3336,7 @@ Putnins P4'
-------------------------------------------------------------------------------
operation +proj=putp4p +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 195241.477349386 127796.782307926
accept 2 -1
@@ -3363,7 +3365,7 @@ Putnins P5
-------------------------------------------------------------------------------
operation +proj=putp5 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 226367.213380562 113204.568558475
accept 2 -1
@@ -3392,7 +3394,7 @@ Putnins P5'
-------------------------------------------------------------------------------
operation +proj=putp5p +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 226388.175248756 113204.568558475
accept 2 -1
@@ -3421,7 +3423,7 @@ Putnins P6
-------------------------------------------------------------------------------
operation +proj=putp6 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 226369.395133403 110218.523796521
accept 2 -1
@@ -3450,7 +3452,7 @@ Putnins P6'
-------------------------------------------------------------------------------
operation +proj=putp6p +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 198034.195132195 125989.475461323
accept 2 -1
@@ -3479,7 +3481,7 @@ Quartic Authalic
-------------------------------------------------------------------------------
operation +proj=qua_aut +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222613.549033097 111318.077887984
accept 2 -1
@@ -3502,7 +3504,7 @@ expect -0.001796631 -0.000898315
-------------------------------------------------------------------------------
operation +proj=qua_aut +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223376.624524029 111699.654379186
accept 2 -1
@@ -3531,7 +3533,7 @@ Quadrilateralized Spherical Cube
-------------------------------------------------------------------------------
operation +proj=qsc +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 304638.450843852 164123.870923794
accept 2 -1
@@ -3554,7 +3556,7 @@ expect -0.001321341 -0.000610653
-------------------------------------------------------------------------------
operation +proj=qsc +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 305863.792402891 165827.722754715
accept 2 -1
@@ -3583,7 +3585,7 @@ Robinson
-------------------------------------------------------------------------------
operation +proj=robin +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 189588.423282508 107318.530350703
accept 2 -1
@@ -3612,7 +3614,7 @@ Roussilhe Stereographic
-------------------------------------------------------------------------------
operation +proj=rouss +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222644.894131617 110611.091868370
accept 2 -1
@@ -3642,7 +3644,7 @@ Rectangular Polyconic
-------------------------------------------------------------------------------
operation +proj=rpoly +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223368.098302014 111769.110486991
accept 2 -1
@@ -3661,7 +3663,7 @@ Sinusoidal (Sanson-Flamsteed)
-------------------------------------------------------------------------------
operation +proj=sinu +ellps=GRS80 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222605.299539466 110574.388554153
accept 2 -1
@@ -3684,7 +3686,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=sinu +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223368.119026632 111701.072127637
accept 2 -1
@@ -3714,7 +3716,7 @@ Swiss. Obl. Mercator
-------------------------------------------------------------------------------
operation +proj=somerc +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222638.981586547 110579.965218249
accept 2 -1
@@ -3737,7 +3739,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=somerc +R=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223402.144255274 111706.743574944
accept 2 -1
@@ -3767,7 +3769,7 @@ Stereographic
-------------------------------------------------------------------------------
operation +proj=stere +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222644.854550117 110610.883474174
accept 2 -1
@@ -3790,7 +3792,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=stere +R=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223407.810259507 111737.938996443
accept 2 -1
@@ -3819,7 +3821,7 @@ Oblique Stereographic Alternative
-------------------------------------------------------------------------------
operation +proj=sterea +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222644.894109198 110611.091871737
accept 2 -1
@@ -3842,7 +3844,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=sterea +R=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223407.810259507 111737.938996443
accept 2 -1
@@ -3872,7 +3874,7 @@ Gauss-Schreiber Transverse Mercator (aka Gauss-Laborde Reunion)
-------------------------------------------------------------------------------
operation +proj=gstmerc +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223413.466406322 111769.145040586
accept 2 -1
@@ -3901,7 +3903,7 @@ Transverse Central Cylindrical
-------------------------------------------------------------------------------
operation +proj=tcc +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223458.844192458 111769.145040586
accept 2 -1
@@ -3920,7 +3922,7 @@ Transverse Cylindrical Equal Area
-------------------------------------------------------------------------------
operation +proj=tcea +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223322.760576727 111769.145040586
accept 2 -1
@@ -3949,7 +3951,7 @@ Times
-------------------------------------------------------------------------------
operation +proj=times +ellps=sphere
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 0.000000000 0.000000000
expect 0.000000000 0.000000000
accept 80.000000000 70.000000000
@@ -3983,7 +3985,7 @@ Tissot
-------------------------------------------------------------------------------
operation +proj=tissot +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222641.078699631 54347.828487281
accept 2 -1
@@ -4006,7 +4008,7 @@ expect -0.001796279 0.511648325
-------------------------------------------------------------------------------
operation +proj=tissot +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223404.248556849 54534.122161158
accept 2 -1
@@ -4035,7 +4037,7 @@ Transverse Mercator
-------------------------------------------------------------------------------
operation +proj=tmerc +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222650.796795778 110642.229411927
accept 2 -1
@@ -4058,7 +4060,7 @@ expect -0.001796631 -0.000904369
-------------------------------------------------------------------------------
operation +proj=tmerc +R=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223413.466406322 111769.145040597
accept 2 -1
@@ -4088,7 +4090,7 @@ Two Point Equidistant
-------------------------------------------------------------------------------
operation +proj=tpeqd +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.15 mm
accept 2 1
expect -27750.758831679 -222599.403691777
accept 2 -1
@@ -4111,7 +4113,7 @@ expect 0.000898554 1.248203369
-------------------------------------------------------------------------------
operation +proj=tpeqd +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect -27845.882978485 -223362.430695260
accept 2 -1
@@ -4141,7 +4143,7 @@ Tilted perspective
-------------------------------------------------------------------------------
operation +proj=tpers +a=6400000 +h=1000000 +azi=20
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 170820.288955531 180460.865555805
accept 2 -1
@@ -4171,7 +4173,7 @@ Universal Polar Stereographic
-------------------------------------------------------------------------------
operation +proj=ups +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 2433455.563438467 -10412543.301512826
accept 2 -1
@@ -4201,7 +4203,7 @@ Urmaev V
-------------------------------------------------------------------------------
operation +proj=urm5 +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223393.638433964 111696.818785117
accept 2 -1
@@ -4221,7 +4223,7 @@ Urmaev Flat-Polar Sinusoidal
-------------------------------------------------------------------------------
operation +proj=urmfps +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 196001.708134192 127306.843329993
accept 2 -1
@@ -4251,7 +4253,7 @@ Universal Transverse Mercator (UTM)
-------------------------------------------------------------------------------
operation +proj=utm +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5 +zone=30
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 1057002.405491298 110955.141175949
accept 2 -1
@@ -4280,7 +4282,7 @@ van der Grinten (I)
-------------------------------------------------------------------------------
operation +proj=vandg +a=6400000 +lat_1=0.5 +lat_2=2 +no_defs
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223395.249543407 111704.596633675
rem 223395.249543407 111704.596633675 osgeo
@@ -4313,7 +4315,7 @@ van der Grinten II
-------------------------------------------------------------------------------
operation +proj=vandg2 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.5 mm
accept 2 1
expect 223395.247850437 111718.491037226
accept 2 -1
@@ -4332,7 +4334,7 @@ van der Grinten III
-------------------------------------------------------------------------------
operation +proj=vandg3 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223395.249552831 111704.519904421
accept 2 -1
@@ -4351,7 +4353,7 @@ van der Grinten IV
-------------------------------------------------------------------------------
operation +proj=vandg4 +R=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.01 mm
+tolerance 0.1 mm
accept 2 1
expect 223374.577294355 111701.195484154
accept 2 -1
@@ -4371,7 +4373,7 @@ Vitkovsky I
-------------------------------------------------------------------------------
operation +proj=vitk1 +ellps=GRS80 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 222607.171211458 111404.251442435
accept 2 -1
@@ -4394,7 +4396,7 @@ expect -0.001796202 -0.000898316
-------------------------------------------------------------------------------
operation +proj=vitk1 +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223370.224840471 111786.123319644
accept 2 -1
@@ -4423,7 +4425,7 @@ Wagner I (Kavraisky VI)
-------------------------------------------------------------------------------
operation +proj=wag1 +a=6400000 +lat_1=0.5 +lat_2=2 +n=0.5
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 195986.781561158 127310.075060660
accept 2 -1
@@ -4452,7 +4454,7 @@ Wagner II
-------------------------------------------------------------------------------
operation +proj=wag2 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 206589.888099962 120778.040357547
accept 2 -1
@@ -4482,7 +4484,7 @@ Wagner III
-------------------------------------------------------------------------------
operation +proj=wag3 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223387.021718166 111701.072127637
accept 2 -1
@@ -4511,7 +4513,7 @@ Wagner IV
-------------------------------------------------------------------------------
operation +proj=wag4 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 192801.218662384 129416.216394803
accept 2 -1
@@ -4540,7 +4542,7 @@ Wagner V
-------------------------------------------------------------------------------
operation +proj=wag5 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 203227.051925325 138651.631442713
accept 2 -1
@@ -4569,7 +4571,7 @@ Wagner VI
-------------------------------------------------------------------------------
operation +proj=wag6 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 211652.562164410 105831.180787330
accept 2 -1
@@ -4598,7 +4600,7 @@ Wagner VII
-------------------------------------------------------------------------------
operation +proj=wag7 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 198601.876957312 125637.045714171
accept 2 -1
@@ -4617,7 +4619,7 @@ Werenskiold I
-------------------------------------------------------------------------------
operation +proj=weren +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223378.515757634 146214.093042288
accept 2 -1
@@ -4647,7 +4649,7 @@ Winkel I
-------------------------------------------------------------------------------
operation +proj=wink1 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223385.131640953 111701.072127637
accept 2 -1
@@ -4677,7 +4679,7 @@ Winkel II
-------------------------------------------------------------------------------
operation +proj=wink2 +a=6400000 +lat_1=0.5 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223387.396433786 124752.032797445
accept 2 -1
@@ -4697,7 +4699,7 @@ Winkel Tripel
-------------------------------------------------------------------------------
operation +proj=wintri +a=6400000 +lat_1=0 +lat_2=2
-------------------------------------------------------------------------------
-tolerance 0.00010 mm
+tolerance 0.1 mm
accept 2 1
expect 223390.801533485 111703.907505745
accept 2 -1
@@ -4716,6 +4718,5 @@ accept -200 100
expect -0.001790493 0.000895247
accept -200 -100
expect -0.001790493 -0.000895247
-Internal regression tests done. [Stubs: 0] Total: 151. Failure: 0. Success: 151
-END
+</gie>
diff --git a/test/gie/deformation.gie b/test/gie/deformation.gie
index ce9aca75..55283b84 100644
--- a/test/gie/deformation.gie
+++ b/test/gie/deformation.gie
@@ -9,67 +9,49 @@ The input coordinate is located at lon=60, lam=-160 - somewhere in Alaska.
===============================================================================
-BEGIN
-
--------------------------------------------------------------------------------
-Test using only horizontal grid and +tobs parameter
--------------------------------------------------------------------------------
-OPERATION +proj=deformation +xy_grids=alaska +t_epoch=2016.0 +t_obs=2000.0
--------------------------------------------------------------------------------
-TOLERANCE 1 um
-ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457
-EXPECT -3004295.5888766116 -1093474.1688513425 5500477.1338251457
-# ROUNDTRIP 1000
-
--------------------------------------------------------------------------------
-Test using only vertical grid and +tobs parameter
--------------------------------------------------------------------------------
-OPERATION +proj=deformation +z_grids=egm96_15.gtx +t_epoch=2016.0 +t_obs=2000.0
--------------------------------------------------------------------------------
-TOLERANCE 1 um
-ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457
-EXPECT -3004295.5882503074 -1093474.1690603832 5500234.008855661
-# ROUNDTRIP 1000
+<gie>
-------------------------------------------------------------------------------
Test using both horizontal and vertical grids as well as the +tobs parameter
-------------------------------------------------------------------------------
-OPERATION +proj=deformation +xy_grids=alaska +z_grids=egm96_15.gtx +t_epoch=2016.0 +t_obs=2000.0
+operation +proj=deformation +xy_grids=alaska +z_grids=egm96_15.gtx
+ +t_epoch=2016.0 +t_obs=2000.0 +ellps=GRS80
-------------------------------------------------------------------------------
-TOLERANCE 0.000001 m
-ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457
-EXPECT -3004295.5888766116 -1093474.1688513425 5500234.008855661
-# ROUNDTRIP 1000
+tolerance 0.1 mm
+ignore pjd_err_failed_to_load_grid
+accept -3004295.5882503074 -1093474.1690603832 5500477.1338251457
+expect -3004295.7025 -1093474.2106 5500477.3444
+roundtrip 5
-------------------------------------------------------------------------------
-Test using only horizontal grid
+Test using both horizontal and vertical grids
-------------------------------------------------------------------------------
-OPERATION +proj=deformation +xy_grids=alaska +t_epoch=2016.0
+operation +proj=deformation
+ +xy_grids=alaska +z_grids=egm96_15.gtx +t_epoch=2016.0 +ellps=GRS80
-------------------------------------------------------------------------------
-TOLERANCE 1 um
-ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457 2000.0
-EXPECT -3004295.5888766116 -1093474.1688513425 5500477.1338251457 2000.0
-# ROUNDTRIP 1000
+tolerance 0.1 mm
+ignore pjd_err_failed_to_load_grid
+accept -3004295.5882503074 -1093474.1690603832 5500477.1338251457 2000.0
+expect -3004295.7025 -1093474.2106 5500477.3444 2000.0
+roundtrip 5
-------------------------------------------------------------------------------
-Test using only vertical grid
--------------------------------------------------------------------------------
-OPERATION +proj=deformation +z_grids=egm96_15.gtx +t_epoch=2016.0
--------------------------------------------------------------------------------
-TOLERANCE 1 um
-ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457 2000.0
-EXPECT -3004295.5882503074 -1093474.1690603832 5500234.008855661 2000.0
-# ROUNDTRIP 1000
+operation proj=deformation xy_grids=alaska t_epoch=2016.0 t_obs=2017.0
+ ellps=GRS80
+expect failure pjd_err_no_args
--------------------------------------------------------------------------------
-Test using both horizontal and vertical grids
--------------------------------------------------------------------------------
-OPERATION +proj=deformation +xy_grids=alaska +z_grids=egm96_15.gtx +t_epoch=2016.0 +ellps=GRS80
--------------------------------------------------------------------------------
-TOLERANCE 1 um
-ACCEPT -3004295.5882503074 -1093474.1690603832 5500477.1338251457 2000.0
-EXPECT -3004295.5888766116 -1093474.1688513425 5500234.008855661 2000.0
-# ROUNDTRIP 1000
+operation proj=deformation z_grids=egm96_15.gtx t_epoch=2016.0 t_obs=2017.0
+ ellps=GRS80
+expect failure pjd_err_no_args
+
+operation proj=deformation xy_grids=nonexisting z_grids=egm96_15.gtx
+ t_epoch=2016.0 t_obs=2017.0 ellps=GRS80
+expect failure pjd_err_failed_to_load_grid
+operation proj=deformation xy_grids=alaska z_grids=nonexisting
+ t_epoch=2016.0 t_obs=2017.0 ellps=GRS80
+expect failure pjd_err_failed_to_load_grid
-END
+operation proj=deformation xy_grids=alaska z_grids=nonexisting ellps=GRS80
+expect failure pjd_err_missing_args
+</gie>
diff --git a/test/gie/ellipsoid.gie b/test/gie/ellipsoid.gie
index 65101f6c..81208bc1 100644
--- a/test/gie/ellipsoid.gie
+++ b/test/gie/ellipsoid.gie
@@ -5,7 +5,7 @@ Test pj_ellipsoid, the reimplementation of pj_ell_set
===============================================================================
-BEGIN
+<gie>
-------------------------------------------------------------------------------
First a spherical example
@@ -56,7 +56,8 @@ operation proj=merc ellps=GRS80000000000
expect failure errno unknown_ellp_param
operation proj=merc +a=-1
expect failure errno major_axis_not_given
-operation proj=merc +no_defs
+
+operation proj=merc no_defs
expect failure errno major_axis_not_given
# This one should succeed due to ellps=WGS84 in proj_def.dat
@@ -158,4 +159,4 @@ accept 12 55
expect 700416.5900 5669475.8884
-------------------------------------------------------------------------------
-END
+</gie>
diff --git a/test/gie/more_builtins.gie b/test/gie/more_builtins.gie
index ea37a763..d7074c5b 100644
--- a/test/gie/more_builtins.gie
+++ b/test/gie/more_builtins.gie
@@ -8,7 +8,7 @@ intends to exercise corner cases.
===============================================================================
-BEGIN
+<gie>
-------------------------------------------------------------------------------
Two ob_tran tests from nad/testvarious
@@ -18,13 +18,13 @@ operation +proj=ob_tran +o_proj=moll +R=6378137.0 +o_lon_p=0 +o_lat_p=0 +lo
tolerance 1 mm
direction inverse
-accept 300000 400000 0 0
-expect -42.7562158333 85.5911341667 0 0
+accept 300000 400000
+expect -42.7562158333 85.5911341667
direction forward
-accept 10 20 0 0
-expect -1384841.18787 7581707.88240 0 0
+accept 10 20
+expect -1384841.18787 7581707.88240
-------------------------------------------------------------------------------
@@ -34,8 +34,8 @@ expect -1384841.18787 7581707.88240 0 0
-------------------------------------------------------------------------------
Two tests from PJ_molodensky.c
-------------------------------------------------------------------------------
-operation proj=molodensky a=6378160 rf=298.25 \
- da=-23 df=-8.120449e-8 dx=-134 dy=-48 dz=149 \
+operation proj=molodensky a=6378160 rf=298.25
+ da=-23 df=-8.120449e-8 dx=-134 dy=-48 dz=149
abridged
-------------------------------------------------------------------------------
tolerance 2 m
@@ -47,7 +47,7 @@ roundtrip 100 1 m
-------------------------------------------------------------------------------
Same thing once more, but this time unabridged
-------------------------------------------------------------------------------
-operation proj=molodensky a=6378160 rf=298.25 \
+operation proj=molodensky a=6378160 rf=298.25
da=-23 df=-8.120449e-8 dx=-134 dy=-48 dz=149
-------------------------------------------------------------------------------
tolerance 2 m
@@ -65,10 +65,10 @@ roundtrip 100 1 m
-------------------------------------------------------------------------------
Some tests from PJ_pipeline.c
-------------------------------------------------------------------------------
-Forward-reverse geo->utm->geo
+Forward-reverse geo->utm->geo (4D functions)
-------------------------------------------------------------------------------
-operation proj=pipeline zone=32 step \
- proj=utm ellps=GRS80 step \
+operation proj=pipeline zone=32 step
+ proj=utm ellps=GRS80 step
proj=utm ellps=GRS80 inv
-------------------------------------------------------------------------------
tolerance 0.1 mm
@@ -81,10 +81,10 @@ Now the inverse direction (still same result: the pipeline is symmetrical)
direction inverse
expect 12 55 0 0
-------------------------------------------------------------------------------
-And now the back-to-back situation utm->geo->utm
+And now the back-to-back situation utm->geo->utm (4D functions)
-------------------------------------------------------------------------------
-operation proj=pipeline zone=32 ellps=GRS80 step \
- proj=utm inv step \
+operation proj=pipeline zone=32 ellps=GRS80 step
+ proj=utm inv step
proj=utm
-------------------------------------------------------------------------------
accept 691875.63214 6098907.82501 0 0
@@ -92,6 +92,33 @@ expect 691875.63214 6098907.82501 0 0
direction inverse
expect 691875.63214 6098907.82501 0 0
-------------------------------------------------------------------------------
+Forward-reverse geo->utm->geo (3D functions)
+-------------------------------------------------------------------------------
+operation proj=pipeline zone=32 step
+ proj=utm ellps=GRS80 step
+ proj=utm ellps=GRS80 inv
+-------------------------------------------------------------------------------
+tolerance 0.1 mm
+
+accept 12 55 0
+expect 12 55 0
+
+Now the inverse direction (still same result: the pipeline is symmetrical)
+
+direction inverse
+expect 12 55 0
+-------------------------------------------------------------------------------
+And now the back-to-back situation utm->geo->utm (3D functions)
+-------------------------------------------------------------------------------
+operation proj=pipeline zone=32 ellps=GRS80 step
+ proj=utm inv step
+ proj=utm
+-------------------------------------------------------------------------------
+accept 691875.63214 6098907.82501 0
+expect 691875.63214 6098907.82501 0
+direction inverse
+expect 691875.63214 6098907.82501 0
+-------------------------------------------------------------------------------
Test a corner case: A rather pointless one-step pipeline geo->utm
-------------------------------------------------------------------------------
operation proj=pipeline step proj=utm zone=32 ellps=GRS80
@@ -104,20 +131,50 @@ expect 12 55 0 0
-------------------------------------------------------------------------------
Finally test a pipeline with more than one init step
-------------------------------------------------------------------------------
-operation proj=pipeline step \
- init=epsg:25832 inv step \
- init=epsg:25833 step \
- init=epsg:25833 inv step \
- init=epsg:25832
+operation proj=pipeline
+ step init=epsg:25832 inv
+ step init=epsg:25833
+ step init=epsg:25833 inv
+ step init=epsg:25832
-------------------------------------------------------------------------------
accept 691875.63214 6098907.82501 0 0
expect 691875.63214 6098907.82501 0 0
direction inverse
accept 12 55 0 0
expect 12 55 0 0
+-------------------------------------------------------------------------------
+Test a few inversion scenarios (urm5 has no inverse operation)
+-------------------------------------------------------------------------------
+operation proj=pipeline step
+ proj=urm5 n=0.5 inv
+expect failure pjd_err_malformed_pipeline
+operation proj=pipeline inv step
+ proj=urm5 n=0.5
+expect failure pjd_err_malformed_pipeline
+operation proj=pipeline inv step
+ proj=urm5 n=0.5 inv
+accept 12 56
+expect 1215663.2814182492 5452209.5424045017
+operation proj=pipeline step
+ proj=urm5 n=0.5
+accept 12 56
+expect 1215663.2814182492 5452209.5424045017
+-------------------------------------------------------------------------------
+Test various failing scenarios.
+-------------------------------------------------------------------------------
+operation proj=pipeline step
+ proj=pipeline step
+ proj=merc
+expect failure pjd_err_malformed_pipeline
+
+operation step proj=pipeline step proj=merc
+expect failure pjd_err_malformed_pipeline
+
+operation proj=pipeline
+expect failure pjd_err_malformed_pipeline
-------------------------------------------------------------------------------
@@ -131,8 +188,9 @@ N(12.5, 55.5) = -36.021305084228515625 (download.osgeo.org)
N(12.5, 55.5) = -35.880001068115234000 (OSGeo4W)
This is annoying, but must be handled elsewhere. We jump through the hoop by
setting a very lax tolerance.
-
+-------------------------------------------------------------------------------
tolerance 15 cm
+ignore pjd_err_failed_to_load_grid
accept 12.5 55.5 0 0
expect 12.5 55.5 -36.021305084228516 0
@@ -145,7 +203,7 @@ expect failure errno no_args
Fail on purpose: open non-existing grid
operation proj=vgridshift grids=nonexistinggrid.gtx
expect failure errno failed_to_load_grid
-
+-------------------------------------------------------------------------------
@@ -155,22 +213,28 @@ Some tests from PJ_hgridshift.c
-------------------------------------------------------------------------------
operation proj=hgridshift +grids=nzgd2kgrid0005.gsb ellps=GRS80
-------------------------------------------------------------------------------
-tolerance 1 nm
-accept 173 -45 0 0
-roundtrip 100
+Note: These data are home grown and suitable for regression testing only
+We need a set of authoritative test cases to test the nzgd2000 grid.
-------------------------------------------------------------------------------
-expect 172.999892181021551 -45.001620431954613 0 0
+tolerance 1 mm
+ignore pjd_err_failed_to_load_grid
+accept 172.999892181021551 -45.001620431954613
+expect 173 -45
direction inverse
-accept 172.999892181021551 -45.001620431954613 0 0
-expect 173 -45 0 0
+accept 173 -45
+expect 172.999892181021551 -45.001620431954613
-------------------------------------------------------------------------------
-Fail on purpose: +grids parameter is mandatory:
-operation proj=hgridshift
-expect failure errno no_args
-Fail on purpose: open non-existing grid:
+
+
+-------------------------------------------------------------------------------
+# Fail on purpose: open non-existing grid:
operation proj=hgridshift grids=@nonexistinggrid.gsb,anothernonexistinggrid.gsb
expect failure errno failed_to_load_grid
+
+# Fail on purpose: +grids parameter is mandatory:
+operation proj=hgridshift
+expect failure errno no_args
-------------------------------------------------------------------------------
@@ -179,44 +243,57 @@ expect failure errno failed_to_load_grid
-------------------------------------------------------------------------------
A number of tests from PJ_helmert.c
-------------------------------------------------------------------------------
+
+
+-------------------------------------------------------------------------------
This example is from Lotti Jivall: "Simplified transformations from
ITRF2008/IGS08 to ETRS89 for maritime applications"
-------------------------------------------------------------------------------
-operation proj=helmert ellps=GRS80 \
- x=0.67678 y=0.65495 z=-0.52827 \
+operation proj=helmert ellps=GRS80
+ x=0.67678 y=0.65495 z=-0.52827
rx=-0.022742 ry=0.012667 rz=0.022704 s=-0.01070
-------------------------------------------------------------------------------
tolerance 1 um
accept 3565285.00000000 855949.00000000 5201383.00000000
expect 3565285.41342351 855948.67986759 5201382.72939791
-------------------------------------------------------------------------------
+
+
+-------------------------------------------------------------------------------
This example is a random point, transformed from ED50 to ETRS89 using KMStrans2
-------------------------------------------------------------------------------
-operation proj=helmert ellps=GRS80 \
- x=-81.0703 y=-89.3603 z=-115.7526 \
- rx=-0.48488 ry=-0.02436 rz=-0.41321 s=-0.540645
+operation proj=helmert ellps=GRS80 exact
+ x=-081.0703 rx=-0.48488
+ y=-089.3603 ry=-0.02436
+ z=-115.7526 rz=-0.41321 s=-0.540645
-------------------------------------------------------------------------------
tolerance 1 um
accept 3494994.30120000 1056601.97250000 5212382.16660000
expect 3494909.84026368 1056506.78938633 5212265.66699761
-------------------------------------------------------------------------------
+
+
+-------------------------------------------------------------------------------
This example is a coordinate from the geodetic observatory in Onsala,
Sweden transformed from ITRF2000 @ 2017.0 to ITRF93 @ 2017.0.
The test coordinate was transformed using GNSStrans, using transformation
parameters published by ITRF: ftp://itrf.ensg.ign.fr/pub/itrf/ITRF.TP
-------------------------------------------------------------------------------
-operation proj=helmert ellps=GRS80 \
- x=0.0127 y=0.0065 z=-0.0209 s=0.00195 \
- dx=-0.0029 dy=-0.0002 dz=-0.0006 ds=0.00001 \
- rx=-0.00039 ry=0.00080 rz=-0.00114 \
- drx=-0.00011 dry=-0.00019 drz=0.00007 \
- epoch=1988.0 tobs=2017.0 transpose
+operation proj=helmert ellps=GRS80 transpose
+ x = 0.0127 dx = -0.0029 rx = -0.00039 drx = -0.00011
+ y = 0.0065 dy = -0.0002 ry = 0.00080 dry = -0.00019
+ z = -0.0209 dz = -0.0006 rz = -0.00114 drz = 0.00007
+
+ s = 0.00195 ds = 0.00001 t_epoch = 1988.0
-------------------------------------------------------------------------------
tolerance 0.03 mm
accept 3370658.37800 711877.31400 5349787.08600 2017.0 # ITRF2000@2017.0
expect 3370658.18890 711877.42370 5349787.12430 2017.0 # ITRF93@2017.0
-------------------------------------------------------------------------------
+
+
+-------------------------------------------------------------------------------
This example is from "A mathematical relationship between NAD27 and NAD83 (91)
State Plane coordinates in Southeastern Wisconsin":
http://www.sewrpc.org/SEWRPCFiles/Publications/TechRep/tr-034-Mathematical-Relationship-Between-NAD27-and-NAD83-91-State-Plane-Coordinates-Southeastern-Wisconsin.pdf
@@ -225,25 +302,28 @@ The test data is taken from p. 29. Here we are using point 203 and converting it
from NAD27 (ft) -> NAD83 (m). The paper reports a difference of 0.0014 m from
measured to computed coordinates, hence the test tolerance is set accordingly.
-------------------------------------------------------------------------------
-operation proj=helmert ellps=GRS80 \
- x=-9597.3572 y=.6112 \
+operation proj=helmert ellps=GRS80
+ x=-9597.3572 y=.6112
s=0.304794780637 theta=-1.244048
-------------------------------------------------------------------------------
tolerance 1 mm
accept 2546506.957 542256.609 0
expect 766563.675 165282.277 0
-------------------------------------------------------------------------------
+
+
+-------------------------------------------------------------------------------
Finally test the 4D-capabilities of the proj.h API, especially that the
rotation matrix is updated when necessary.
Test coordinates from GNSStrans.
-------------------------------------------------------------------------------
-operation proj=helmert ellps=GRS80 \
- x=0.01270 y=0.00650 z=-0.0209 s=0.00195 \
- dx=-0.0029 dy=-0.0002 dz=-0.0006 ds=0.00001 \
- rx=-0.00039 ry=0.00080 rz=-0.00114 \
- drx=-0.00011 dry=-0.00019 drz=0.00007 \
- epoch=1988.0 transpose
+operation proj=helmert ellps=GRS80 transpose
+ x = 0.01270 dx =-0.0029 rx =-0.00039 drx =-0.00011
+ y = 0.00650 dy =-0.0002 ry = 0.00080 dry =-0.00019
+ z =-0.0209 dz =-0.0006 rz =-0.00114 drz = 0.00007
+ s = 0.00195 ds = 0.00001
+ t_epoch=1988.0
-------------------------------------------------------------------------------
tolerance 0.1 mm
accept 3370658.378 711877.314 5349787.086 2017.0
@@ -293,4 +373,4 @@ to express in the gie command set
builtins
-------------------------------------------------------------------------------
-END
+</gie>
diff --git a/test/gie/unitconvert.gie b/test/gie/unitconvert.gie
new file mode 100644
index 00000000..30d9dc0b
--- /dev/null
+++ b/test/gie/unitconvert.gie
@@ -0,0 +1,28 @@
+-------------------------------------------------------------------------------
+ Tests for the unitconvert operation
+-------------------------------------------------------------------------------
+
+<gie>
+
+operation proj=unitconvert xy_in=m xy_out=dm z_in=cm z_out=mm
+tolerance 0.1
+accept 55.25 23.23 45.5
+expect 552.5 232.3 455.0
+
+operation proj=unitconvert +xy_in=m +xy_out=m +z_in=m +z_out=m
+tolerance 0.1
+accept 12.3 45.6 7.89
+expect 12.3 45.6 7.89
+
+operation proj=unitconvert xy_in=dm xy_out=dm
+tolerance 0.1
+accept 1 1 1 1
+expect 1 1 1 1
+
+
+operation proj=unitconvert xy_in=2.0 xy_out=4.0
+tolerance 0.1
+accept 1 1 1 1
+expect 0.5 0.5 1 1
+
+</gie>
diff --git a/test/gigs/5101.1-jhs.gie b/test/gigs/5101.1-jhs.gie
new file mode 100644
index 00000000..2fd98883
--- /dev/null
+++ b/test/gigs/5101.1-jhs.gie
@@ -0,0 +1,732 @@
+--------------------------------------------------------------------------------
+
+Test 5101 (part 1), Transverse Mercator, v2-0_2011-06-28, recommended JHS formula
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4326 +inv
+ +step +proj=etmerc +lat_0=49 +lon_0=-2 +k_0=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=WGS84 +units=m +no_def
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 3 80
+expect 496813.178 3358297.326
+
+tolerance 0.03 m
+accept 2.9999999 60
+expect 678711.584 1134498.83
+
+tolerance 0.03 m
+accept 3 49
+expect 765648.501 -87944.74
+
+tolerance 0.03 m
+accept 3.0000001 40
+expect 826893.845 -1087710.121
+
+tolerance 0.03 m
+accept 3 20
+expect 923539.353 -3308151.625
+
+tolerance 0.03 m
+accept 3 0
+expect 957087.829 -5527462.686
+
+tolerance 0.03 m
+accept 3 -20
+expect 923539.353 -7746773.748
+
+tolerance 0.03 m
+accept 3 -40
+expect 826893.845 -9967215.251
+
+tolerance 0.03 m
+accept 3 -60
+expect 678711.584 -12189424.202
+
+tolerance 0.03 m
+accept 3 -80
+expect 496813.178 -14413222.698
+
+tolerance 0.03 m
+accept -2 80
+expect 400000 3354134.429
+
+tolerance 0.03 m
+accept -2 60
+expect 400000 1123956.966
+
+tolerance 0.03 m
+accept -2 49
+expect 400000 -100000
+
+tolerance 0.03 m
+accept -2 40
+expect 400000 -1099699.834
+
+tolerance 0.03 m
+accept -2 20
+expect 400000 -3315978.565
+
+tolerance 0.03 m
+accept -2 0
+expect 400000 -5527462.686
+
+tolerance 0.03 m
+accept -2 -20
+expect 400000 -7738946.807
+
+tolerance 0.03 m
+accept -2 -40
+expect 400000 -9955225.538
+
+tolerance 0.03 m
+accept -2 -60
+expect 400000 -12178882.338
+
+tolerance 0.03 m
+accept -2 -80
+expect 400000 -14409059.801
+
+tolerance 0.03 m
+accept -5 80
+expect 341867.711 3355633.571
+
+tolerance 0.03 m
+accept -5 60
+expect 232704.966 1127751.264
+
+tolerance 0.03 m
+accept -5 49
+expect 180586.02 -95662.911
+
+tolerance 0.03 m
+accept -5 40
+expect 143900.026 -1095387.991
+
+tolerance 0.03 m
+accept -5 20
+expect 86073.28 -3313165.843
+
+tolerance 0.03 m
+accept -5 0
+expect 66021.018 -5527462.686
+
+tolerance 0.03 m
+accept -5 -20
+expect 86073.28 -7741759.529
+
+tolerance 0.03 m
+accept -5 -40
+expect 143900.026 -9959537.381
+
+tolerance 0.03 m
+accept -5 -60
+expect 232704.966 -12182676.637
+
+tolerance 0.03 m
+accept -5 -80
+expect 341867.711 -14410558.943
+
+tolerance 0.03 m
+accept -7.5559037 49.7661327
+expect 0 0
+
+tolerance 0.03 m
+accept -5 0
+expect 66021.018 -5527462.686
+
+tolerance 0.03 m
+accept -4 0
+expect 177404.277 -5527462.686
+
+tolerance 0.03 m
+accept -3 0
+expect 288719.208 -5527462.686
+
+tolerance 0.03 m
+accept -2 0
+expect 400000.0 -5527462.686
+
+tolerance 0.03 m
+accept -1 0
+expect 511280.792 -5527462.686
+
+tolerance 0.03 m
+accept 0 0
+expect 622595.723 -5527462.686
+
+tolerance 0.03 m
+accept 1 0
+expect 733978.982 -5527462.686
+
+tolerance 0.03 m
+accept 2 0
+expect 845464.865 -5527462.686
+
+tolerance 0.03 m
+accept 3 0
+expect 957087.829 -5527462.686
+
+tolerance 0.03 m
+accept 4 0
+expect 1068882.539 -5527462.686
+
+tolerance 0.03 m
+accept 5 0
+expect 1180883.933 -5527462.686
+
+tolerance 0.03 m
+accept 6 0
+expect 1293127.266 -5527462.686
+
+tolerance 0.03 m
+accept 7 0
+expect 1405648.179 -5527462.686
+
+tolerance 0.03 m
+accept 8 0
+expect 1518482.747 -5527462.686
+
+tolerance 0.03 m
+accept -5 60
+expect 232704.966 1127751.264
+
+tolerance 0.03 m
+accept -4 60
+expect 288455.816 1125643.213
+
+tolerance 0.03 m
+accept -3 60
+expect 344223.662 1124378.512
+
+tolerance 0.03 m
+accept -2 60
+expect 400000 1123956.966
+
+tolerance 0.03 m
+accept -1 60
+expect 455776.338 1124378.512
+
+tolerance 0.03 m
+accept 0 60
+expect 511544.184 1125643.213
+
+tolerance 0.03 m
+accept 1 60
+expect 567295.034 1127751.264
+
+tolerance 0.03 m
+accept 2 60
+expect 623020.357 1130702.987
+
+tolerance 0.03 m
+accept 3 60
+expect 678711.584 1134498.83
+
+tolerance 0.03 m
+accept 4.0 60.0
+expect 734360.093 1139139.367
+
+tolerance 0.03 m
+accept 5.0 60.0
+expect 789957.197 1144625.296
+
+tolerance 0.03 m
+accept 6.0 60.0
+expect 845494.132 1150957.434
+
+tolerance 0.03 m
+accept 7.0 60.0
+expect 900962.042 1158136.713
+
+tolerance 0.03 m
+accept 8.0 60.0
+expect 956351.967 1166164.18
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +proj=etmerc +lat_0=49 +lon_0=-2 +k_0=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=WGS84 +units=m +no_def +inv
+ +step +init=epsg:4326
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 496813.178 3358297.326
+expect 3 80
+
+tolerance 0.03 m
+accept 678711.584 1134498.83
+expect 2.9999999 60
+
+tolerance 0.03 m
+accept 765648.501 -87944.74
+expect 3 49
+
+tolerance 0.03 m
+accept 826893.845 -1087710.121
+expect 3.0000001 40
+
+tolerance 0.03 m
+accept 923539.353 -3308151.625
+expect 3 20
+
+tolerance 0.03 m
+accept 957087.829 -5527462.686
+expect 3 0
+
+tolerance 0.03 m
+accept 923539.353 -7746773.748
+expect 3 -20
+
+tolerance 0.03 m
+accept 826893.845 -9967215.251
+expect 3 -40
+
+tolerance 0.03 m
+accept 678711.584 -12189424.202
+expect 3 -60
+
+tolerance 0.03 m
+accept 496813.178 -14413222.698
+expect 3 -80
+
+tolerance 0.03 m
+accept 400000 3354134.429
+expect -2 80
+
+tolerance 0.03 m
+accept 400000 1123956.966
+expect -2 60
+
+tolerance 0.03 m
+accept 400000 -100000
+expect -2 49
+
+tolerance 0.03 m
+accept 400000 -1099699.834
+expect -2 40
+
+tolerance 0.03 m
+accept 400000 -3315978.565
+expect -2 20
+
+tolerance 0.03 m
+accept 400000 -5527462.686
+expect -2 0
+
+tolerance 0.03 m
+accept 400000 -7738946.807
+expect -2 -20
+
+tolerance 0.03 m
+accept 400000 -9955225.538
+expect -2 -40
+
+tolerance 0.03 m
+accept 400000 -12178882.338
+expect -2 -60
+
+tolerance 0.03 m
+accept 400000 -14409059.801
+expect -2 -80
+
+tolerance 0.03 m
+accept 341867.711 3355633.571
+expect -5 80
+
+tolerance 0.03 m
+accept 232704.966 1127751.264
+expect -5 60
+
+tolerance 0.03 m
+accept 180586.02 -95662.911
+expect -5 49
+
+tolerance 0.03 m
+accept 143900.026 -1095387.991
+expect -5 40
+
+tolerance 0.03 m
+accept 86073.28 -3313165.843
+expect -5 20
+
+tolerance 0.03 m
+accept 66021.018 -5527462.686
+expect -5 0
+
+tolerance 0.03 m
+accept 86073.28 -7741759.529
+expect -5 -20
+
+tolerance 0.03 m
+accept 143900.026 -9959537.381
+expect -5 -40
+
+tolerance 0.03 m
+accept 232704.966 -12182676.637
+expect -5 -60
+
+tolerance 0.03 m
+accept 341867.711 -14410558.943
+expect -5 -80
+
+tolerance 0.03 m
+accept 0 0
+expect -7.5559037 49.7661327
+
+tolerance 0.03 m
+accept 66021.018 -5527462.686
+expect -5 0
+
+tolerance 0.03 m
+accept 177404.277 -5527462.686
+expect -4 0
+
+tolerance 0.03 m
+accept 288719.208 -5527462.686
+expect -3 0
+
+tolerance 0.03 m
+accept 400000.0 -5527462.686
+expect -2 0
+
+tolerance 0.03 m
+accept 511280.792 -5527462.686
+expect -1 0
+
+tolerance 0.03 m
+accept 622595.723 -5527462.686
+expect 0 0
+
+tolerance 0.03 m
+accept 733978.982 -5527462.686
+expect 1 0
+
+tolerance 0.03 m
+accept 845464.865 -5527462.686
+expect 2 0
+
+tolerance 0.03 m
+accept 957087.829 -5527462.686
+expect 3 0
+
+tolerance 0.03 m
+accept 1068882.539 -5527462.686
+expect 4 0
+
+tolerance 0.03 m
+accept 1180883.933 -5527462.686
+expect 5 0
+
+tolerance 0.03 m
+accept 1293127.266 -5527462.686
+expect 6 0
+
+tolerance 0.03 m
+accept 1405648.179 -5527462.686
+expect 7 0
+
+tolerance 0.03 m
+accept 1518482.747 -5527462.686
+expect 8 0
+
+tolerance 0.03 m
+accept 232704.966 1127751.264
+expect -5 60
+
+tolerance 0.03 m
+accept 288455.816 1125643.213
+expect -4 60
+
+tolerance 0.03 m
+accept 344223.662 1124378.512
+expect -3 60
+
+tolerance 0.03 m
+accept 400000 1123956.966
+expect -2 60
+
+tolerance 0.03 m
+accept 455776.338 1124378.512
+expect -1 60
+
+tolerance 0.03 m
+accept 511544.184 1125643.213
+expect 0 60
+
+tolerance 0.03 m
+accept 567295.034 1127751.264
+expect 1 60
+
+tolerance 0.03 m
+accept 623020.357 1130702.987
+expect 2 60
+
+tolerance 0.03 m
+accept 678711.584 1134498.83
+expect 3 60
+
+tolerance 0.03 m
+accept 734360.093 1139139.367
+expect 4.0 60.0
+
+tolerance 0.03 m
+accept 789957.197 1144625.296
+expect 5.0 60.0
+
+tolerance 0.03 m
+accept 845494.132 1150957.434
+expect 6.0 60.0
+
+tolerance 0.03 m
+accept 900962.042 1158136.713
+expect 7.0 60.0
+
+tolerance 0.03 m
+accept 956351.967 1166164.18
+expect 8.0 60.0
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4326 +inv
+ +step +proj=etmerc +lat_0=49 +lon_0=-2 +k_0=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=WGS84 +units=m +no_def
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 3 80
+roundtrip 1000
+
+tolerance 0.006 m
+accept 2.9999999 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3 49
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3.0000001 40
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3 20
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3 -20
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3 -40
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3 -80
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 80
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 49
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 40
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 20
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 -20
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 -40
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 -80
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 80
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 49
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 40
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 20
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 -20
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 -40
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 -80
+roundtrip 1000
+
+tolerance 0.006 m
+accept -7.5559037 49.7661327
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -4 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -3 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -1 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 0 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 1 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 2 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 6 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 7 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 8 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept -4 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept -3 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept -1 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 0 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 1 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 2 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 6.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 7.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 8.0 60.0
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5101.1-jhs.json b/test/gigs/5101.1-jhs.json
deleted file mode 100644
index 95624c62..00000000
--- a/test/gigs/5101.1-jhs.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
-"coordinates": [
- [[3, 80], [496813.178, 3358297.326]],
- [[2.9999999, 60], [678711.584, 1134498.83]],
- [[3, 49], [765648.501, -87944.74]],
- [[3.0000001, 40], [826893.845, -1087710.121]],
- [[3, 20], [923539.353, -3308151.625]],
- [[3, 0], [957087.829, -5527462.686]],
- [[3, -20], [923539.353, -7746773.748]],
- [[3, -40], [826893.845, -9967215.251]],
- [[3, -60], [678711.584, -12189424.202]],
- [[3, -80], [496813.178, -14413222.698]],
- [[-2, 80], [400000, 3354134.429]],
- [[-2, 60], [400000, 1123956.966]],
- [[-2, 49], [400000, -100000]],
- [[-2, 40], [400000, -1099699.834]],
- [[-2, 20], [400000, -3315978.565]],
- [[-2, 0], [400000, -5527462.686]],
- [[-2, -20], [400000, -7738946.807]],
- [[-2, -40], [400000, -9955225.538]],
- [[-2, -60], [400000, -12178882.338]],
- [[-2, -80], [400000, -14409059.801]],
- [[-5, 80], [341867.711, 3355633.571]],
- [[-5, 60], [232704.966, 1127751.264]],
- [[-5, 49], [180586.02, -95662.911]],
- [[-5, 40], [143900.026, -1095387.991]],
- [[-5, 20], [86073.28, -3313165.843]],
- [[-5, 0], [66021.018, -5527462.686]],
- [[-5, -20], [86073.28, -7741759.529]],
- [[-5, -40], [143900.026, -9959537.381]],
- [[-5, -60], [232704.966, -12182676.637]],
- [[-5, -80], [341867.711, -14410558.943]],
- [[-7.5559037, 49.7661327], [0, 0]],
- [[-5, 0], [66021.018, -5527462.686]],
- [[-4, 0], [177404.277, -5527462.686]],
- [[-3, 0], [288719.208, -5527462.686]],
- [[-2, 0], [400000.0, -5527462.686]],
- [[-1, 0], [511280.792, -5527462.686]],
- [[0, 0], [622595.723, -5527462.686]],
- [[1, 0], [733978.982, -5527462.686]],
- [[2, 0], [845464.865, -5527462.686]],
- [[3, 0], [957087.829, -5527462.686]],
- [[4, 0], [1068882.539, -5527462.686]],
- [[5, 0], [1180883.933, -5527462.686]],
- [[6, 0], [1293127.266, -5527462.686]],
- [[7, 0], [1405648.179, -5527462.686]],
- [[8, 0], [1518482.747, -5527462.686]],
- [[-5, 60], [232704.966, 1127751.264]],
- [[-4, 60], [288455.816, 1125643.213]],
- [[-3, 60], [344223.662, 1124378.512]],
- [[-2, 60], [400000, 1123956.966]],
- [[-1, 60], [455776.338, 1124378.512]],
- [[0, 60], [511544.184, 1125643.213]],
- [[1, 60], [567295.034, 1127751.264]],
- [[2, 60], [623020.357, 1130702.987]],
- [[3, 60], [678711.584, 1134498.83]], [[4.0, 60.0], [734360.093, 1139139.367]], [[5.0, 60.0], [789957.197, 1144625.296]], [[6.0, 60.0], [845494.132, 1150957.434]], [[7.0, 60.0], [900962.042, 1158136.713]], [[8.0, 60.0],
- [956351.967, 1166164.18]]
-],
-"description": "Test 5101 (part 1), Transverse Mercator, v2-0_2011-06-28, recommended JHS formula",
-"projections": ["+init=epsg:4326", "+proj=etmerc +lat_0=49 +lon_0=-2 +k_0=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=WGS84 +units=m +no_def"],
-"tests": [{"tolerances": [2.7777777777777776e-07, 0.03], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}]
-}
diff --git a/test/gigs/5101.2-jhs.gie b/test/gigs/5101.2-jhs.gie
new file mode 100644
index 00000000..7ea6275e
--- /dev/null
+++ b/test/gigs/5101.2-jhs.gie
@@ -0,0 +1,300 @@
+--------------------------------------------------------------------------------
+
+Test 5101 (part 2), Transverse Mercator, v2-0_2011-06-28, recommended JHS formula
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4326 +inv
+ +step +init=epsg:32631
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept -2.0 80.0
+expect 403186.945 8885748.708
+
+tolerance 0.03 m
+accept -2.0 60.0
+expect 221288.77 6661953.041
+
+tolerance 0.03 m
+accept -2.0 40.0
+expect 73106.698 4439746.917
+
+tolerance 0.03 m
+accept -2.0 20.0
+expect -23538.687 2219308.238
+
+tolerance 0.03 m
+accept -2.0 0.0
+expect -57087.12 0.0
+
+tolerance 0.03 m
+accept -2.0 -20.0
+expect -23538.687 -2219308.238
+
+tolerance 0.03 m
+accept -2.0 -40.0
+expect 73106.698 -4439746.917
+
+tolerance 0.03 m
+accept -2.0 -60.0
+expect 221288.77 -6661953.041
+
+tolerance 0.03 m
+accept -2.0 -80.0
+expect 403186.945 -8885748.708
+
+tolerance 0.03 m
+accept -5.0 60.0
+expect 54506.435 6678411.623
+
+tolerance 0.03 m
+accept -4.0 60.0
+expect 110043.299 6672079.494
+
+tolerance 0.03 m
+accept -3.0 60.0
+expect 165640.332 6666593.572
+
+tolerance 0.03 m
+accept -2.0 60.0
+expect 221288.77 6661953.041
+
+tolerance 0.03 m
+accept -1.0 60.0
+expect 276979.926 6658157.202
+
+tolerance 0.03 m
+accept 0.0 60.0
+expect 332705.179 6655205.484
+
+tolerance 0.03 m
+accept 1.0 60.0
+expect 388455.958 6653097.435
+
+tolerance 0.03 m
+accept 2.0 60.0
+expect 444223.733 6651832.735
+
+tolerance 0.03 m
+accept 3.0 60.0
+expect 500000.0 6651411.19
+
+tolerance 0.03 m
+accept 4.0 60.0
+expect 555776.267 6651832.735
+
+tolerance 0.03 m
+accept 5.0 60.0
+expect 611544.042 6653097.435
+
+tolerance 0.03 m
+accept 6.0 60.0
+expect 667294.821 6655205.484
+
+tolerance 0.03 m
+accept 7.0 60.0
+expect 723020.074 6658157.202
+
+tolerance 0.03 m
+accept 8.0 60.0
+expect 778711.23 6661953.041
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:32631 +inv
+ +step +init=epsg:4326
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 403186.945 8885748.708
+expect -2.0 80.0
+
+tolerance 0.03 m
+accept 221288.77 6661953.041
+expect -2.0 60.0
+
+tolerance 0.03 m
+accept 73106.698 4439746.917
+expect -2.0 40.0
+
+tolerance 0.03 m
+accept -23538.687 2219308.238
+expect -2.0 20.0
+
+tolerance 0.03 m
+accept -57087.12 0.0
+expect -2.0 0.0
+
+tolerance 0.03 m
+accept -23538.687 -2219308.238
+expect -2.0 -20.0
+
+tolerance 0.03 m
+accept 73106.698 -4439746.917
+expect -2.0 -40.0
+
+tolerance 0.03 m
+accept 221288.77 -6661953.041
+expect -2.0 -60.0
+
+tolerance 0.03 m
+accept 403186.945 -8885748.708
+expect -2.0 -80.0
+
+tolerance 0.03 m
+accept 54506.435 6678411.623
+expect -5.0 60.0
+
+tolerance 0.03 m
+accept 110043.299 6672079.494
+expect -4.0 60.0
+
+tolerance 0.03 m
+accept 165640.332 6666593.572
+expect -3.0 60.0
+
+tolerance 0.03 m
+accept 221288.77 6661953.041
+expect -2.0 60.0
+
+tolerance 0.03 m
+accept 276979.926 6658157.202
+expect -1.0 60.0
+
+tolerance 0.03 m
+accept 332705.179 6655205.484
+expect 0.0 60.0
+
+tolerance 0.03 m
+accept 388455.958 6653097.435
+expect 1.0 60.0
+
+tolerance 0.03 m
+accept 444223.733 6651832.735
+expect 2.0 60.0
+
+tolerance 0.03 m
+accept 500000.0 6651411.19
+expect 3.0 60.0
+
+tolerance 0.03 m
+accept 555776.267 6651832.735
+expect 4.0 60.0
+
+tolerance 0.03 m
+accept 611544.042 6653097.435
+expect 5.0 60.0
+
+tolerance 0.03 m
+accept 667294.821 6655205.484
+expect 6.0 60.0
+
+tolerance 0.03 m
+accept 723020.074 6658157.202
+expect 7.0 60.0
+
+tolerance 0.03 m
+accept 778711.23 6661953.041
+expect 8.0 60.0
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4326 +inv
+ +step +init=epsg:32631
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept -2.0 80.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2.0 40.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2.0 20.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2.0 0.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2.0 -20.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2.0 -40.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2.0 -60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2.0 -80.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -5.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -4.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -3.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -2.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -1.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 0.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 1.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 2.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 6.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 7.0 60.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 8.0 60.0
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5101.2-jhs.json b/test/gigs/5101.2-jhs.json
deleted file mode 100644
index c03929ab..00000000
--- a/test/gigs/5101.2-jhs.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-"coordinates": [
- [[-2.0, 80.0], [403186.945, 8885748.708]],
- [[-2.0, 60.0], [221288.77, 6661953.041]],
- [[-2.0, 40.0], [73106.698, 4439746.917]],
- [[-2.0, 20.0], [-23538.687, 2219308.238]],
- [[-2.0, 0.0], [-57087.12, 0.0]],
- [[-2.0, -20.0], [-23538.687, -2219308.238]],
- [[-2.0, -40.0], [73106.698, -4439746.917]],
- [[-2.0, -60.0], [221288.77, -6661953.041]],
- [[-2.0, -80.0], [403186.945, -8885748.708]],
- [[-5.0, 60.0], [54506.435, 6678411.623]],
- [[-4.0, 60.0], [110043.299, 6672079.494]],
- [[-3.0, 60.0], [165640.332, 6666593.572]],
- [[-2.0, 60.0], [221288.77, 6661953.041]],
- [[-1.0, 60.0], [276979.926, 6658157.202]],
- [[0.0, 60.0], [332705.179, 6655205.484]],
- [[1.0, 60.0], [388455.958, 6653097.435]],
- [[2.0, 60.0], [444223.733, 6651832.735]],
- [[3.0, 60.0], [500000.0, 6651411.19]],
- [[4.0, 60.0], [555776.267, 6651832.735]],
- [[5.0, 60.0], [611544.042, 6653097.435]],
- [[6.0, 60.0], [667294.821, 6655205.484]],
- [[7.0, 60.0], [723020.074, 6658157.202]],
- [[8.0, 60.0], [778711.23, 6661953.041]]
- ],
-"description": "Test 5101 (part 2), Transverse Mercator, v2-0_2011-06-28, recommended JHS formula",
-"projections": ["+init=epsg:4326", "+init=epsg:32631"],
-"tests": [
- {"tolerances": [2.7777777777777776e-07, 0.03], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}]
-}
diff --git a/test/gigs/5101.3-jhs.gie b/test/gigs/5101.3-jhs.gie
new file mode 100644
index 00000000..d588df4c
--- /dev/null
+++ b/test/gigs/5101.3-jhs.gie
@@ -0,0 +1,300 @@
+--------------------------------------------------------------------------------
+
+Test 5101 (part 3), Transverse Mercator, v2-0_2011-06-28, recommended JHS formula
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4283 +inv
+ +step +init=epsg:28354
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 146 80
+expect 596813.055 18885748.71
+
+tolerance 0.03 m
+accept 146 60
+expect 778711.23 16661953.04
+
+tolerance 0.03 m
+accept 146 40
+expect 926893.302 14439746.92
+
+tolerance 0.03 m
+accept 146 20
+expect 1023538.687 12219308.24
+
+tolerance 0.03 m
+accept 146 0
+expect 1057087.12 10000000.0
+
+tolerance 0.03 m
+accept 146 -20
+expect 1023538.687 7780691.762
+
+tolerance 0.03 m
+accept 146 -40
+expect 926893.302 5560253.083
+
+tolerance 0.03 m
+accept 146 -60
+expect 778711.23 3338046.96
+
+tolerance 0.03 m
+accept 146 -80
+expect 596813.055 1114251.292
+
+tolerance 0.03 m
+accept 136 -60
+expect 221288.77 3338046.96
+
+tolerance 0.03 m
+accept 137 -60
+expect 276979.926 3341842.798
+
+tolerance 0.03 m
+accept 138 -60
+expect 332705.179 3344794.516
+
+tolerance 0.03 m
+accept 139 -60
+expect 388455.958 3346902.565
+
+tolerance 0.03 m
+accept 140 -60
+expect 444223.733 3348167.265
+
+tolerance 0.03 m
+accept 141 -60
+expect 500000.0 3348588.81
+
+tolerance 0.03 m
+accept 142 -60
+expect 555776.267 3348167.265
+
+tolerance 0.03 m
+accept 143 -60
+expect 611544.042 3346902.565
+
+tolerance 0.03 m
+accept 144 -60
+expect 667294.821 3344794.516
+
+tolerance 0.03 m
+accept 145 -60
+expect 723020.074 3341842.798
+
+tolerance 0.03 m
+accept 146 -60
+expect 778711.23 3338046.96
+
+tolerance 0.03 m
+accept 147 -60
+expect 834359.668 3333406.428
+
+tolerance 0.03 m
+accept 148 -60
+expect 889956.701 3327920.506
+
+tolerance 0.03 m
+accept 149 -60
+expect 945493.565 3321588.377
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:28354 +inv
+ +step +init=epsg:4283
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 596813.055 18885748.71
+expect 146 80
+
+tolerance 0.03 m
+accept 778711.23 16661953.04
+expect 146 60
+
+tolerance 0.03 m
+accept 926893.302 14439746.92
+expect 146 40
+
+tolerance 0.03 m
+accept 1023538.687 12219308.24
+expect 146 20
+
+tolerance 0.03 m
+accept 1057087.12 10000000.0
+expect 146 0
+
+tolerance 0.03 m
+accept 1023538.687 7780691.762
+expect 146 -20
+
+tolerance 0.03 m
+accept 926893.302 5560253.083
+expect 146 -40
+
+tolerance 0.03 m
+accept 778711.23 3338046.96
+expect 146 -60
+
+tolerance 0.03 m
+accept 596813.055 1114251.292
+expect 146 -80
+
+tolerance 0.03 m
+accept 221288.77 3338046.96
+expect 136 -60
+
+tolerance 0.03 m
+accept 276979.926 3341842.798
+expect 137 -60
+
+tolerance 0.03 m
+accept 332705.179 3344794.516
+expect 138 -60
+
+tolerance 0.03 m
+accept 388455.958 3346902.565
+expect 139 -60
+
+tolerance 0.03 m
+accept 444223.733 3348167.265
+expect 140 -60
+
+tolerance 0.03 m
+accept 500000.0 3348588.81
+expect 141 -60
+
+tolerance 0.03 m
+accept 555776.267 3348167.265
+expect 142 -60
+
+tolerance 0.03 m
+accept 611544.042 3346902.565
+expect 143 -60
+
+tolerance 0.03 m
+accept 667294.821 3344794.516
+expect 144 -60
+
+tolerance 0.03 m
+accept 723020.074 3341842.798
+expect 145 -60
+
+tolerance 0.03 m
+accept 778711.23 3338046.96
+expect 146 -60
+
+tolerance 0.03 m
+accept 834359.668 3333406.428
+expect 147 -60
+
+tolerance 0.03 m
+accept 889956.701 3327920.506
+expect 148 -60
+
+tolerance 0.03 m
+accept 945493.565 3321588.377
+expect 149 -60
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4283 +inv
+ +step +init=epsg:28354
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 146 80
+roundtrip 1000
+
+tolerance 0.006 m
+accept 146 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 146 40
+roundtrip 1000
+
+tolerance 0.006 m
+accept 146 20
+roundtrip 1000
+
+tolerance 0.006 m
+accept 146 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 146 -20
+roundtrip 1000
+
+tolerance 0.006 m
+accept 146 -40
+roundtrip 1000
+
+tolerance 0.006 m
+accept 146 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 146 -80
+roundtrip 1000
+
+tolerance 0.006 m
+accept 136 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 137 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 138 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 139 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 140 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 141 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 142 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 143 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 144 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 145 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 146 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 147 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 148 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 149 -60
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5101.3-jhs.json b/test/gigs/5101.3-jhs.json
deleted file mode 100644
index e7cc2dc3..00000000
--- a/test/gigs/5101.3-jhs.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-"coordinates": [
- [[146, 80], [596813.055, 18885748.71]],
- [[146, 60], [778711.23, 16661953.04]],
- [[146, 40], [926893.302, 14439746.92]],
- [[146, 20], [1023538.687, 12219308.24]],
- [[146, 0], [1057087.12, 10000000.0]],
- [[146, -20], [1023538.687, 7780691.762]],
- [[146, -40], [926893.302, 5560253.083]],
- [[146, -60], [778711.23, 3338046.96]],
- [[146, -80], [596813.055, 1114251.292]],
- [[136, -60], [221288.77, 3338046.96]],
- [[137, -60], [276979.926, 3341842.798]],
- [[138, -60], [332705.179, 3344794.516]],
- [[139, -60], [388455.958, 3346902.565]],
- [[140, -60], [444223.733, 3348167.265]],
- [[141, -60], [500000.0, 3348588.81]],
- [[142, -60], [555776.267, 3348167.265]],
- [[143, -60], [611544.042, 3346902.565]],
- [[144, -60], [667294.821, 3344794.516]],
- [[145, -60], [723020.074, 3341842.798]],
- [[146, -60], [778711.23, 3338046.96]],
- [[147, -60], [834359.668, 3333406.428]],
- [[148, -60], [889956.701, 3327920.506]],
- [[149, -60], [945493.565, 3321588.377]]
- ],
-"description": "Test 5101 (part 3), Transverse Mercator, v2-0_2011-06-28, recommended JHS formula",
-"projections": ["+init=epsg:4283", "+init=epsg:28354"],
-"tests": [
- {"tolerances": [2.7777777777777776e-07, 0.03], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5101.4-jhs-etmerc.gie b/test/gigs/5101.4-jhs-etmerc.gie
new file mode 100644
index 00000000..b97b7769
--- /dev/null
+++ b/test/gigs/5101.4-jhs-etmerc.gie
@@ -0,0 +1,300 @@
+--------------------------------------------------------------------------------
+
+Test 5101 (part 4), Transverse Mercator, v2-0_2011-06-28, recommended JHS formula
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4190 +inv
+ +step +proj=etmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept -63.9993433 80.0002644
+expect 5422500.0 18889800.0
+
+tolerance 0.03 m
+accept -63.9998472 60.0001191
+expect 5276900.0 16662800.0
+
+tolerance 0.03 m
+accept -63.9997361 40.0003081
+expect 5158399.999 14439199.99
+
+tolerance 0.03 m
+accept -64.0004605 19.9996448
+expect 5081100.0 12219300.0
+
+tolerance 0.03 m
+accept -63.9996186 0.0003092
+expect 5054400.005 10002000.0
+
+tolerance 0.03 m
+accept -64.0004675 -19.9999283
+expect 5081100.017 7784599.993
+
+tolerance 0.03 m
+accept -63.9997001 -39.9996924
+expect 5158400.0 5564800.0
+
+tolerance 0.03 m
+accept -63.9998814 -60.0004008
+expect 5276899.994 3341099.995
+
+tolerance 0.03 m
+accept -63.9991006 -79.9996521
+expect 5422500.0 1114200.0
+
+tolerance 0.03 m
+accept -70.0002089 -40.000215
+expect 4645300.113 5524200.123
+
+tolerance 0.03 m
+accept -69.0001441 -40.0002935
+expect 4730900.0 5533400.0
+
+tolerance 0.03 m
+accept -67.9995333 -39.9996136
+expect 4816500.043 5541700.028
+
+tolerance 0.03 m
+accept -66.9998073 -39.9999313
+expect 4902000.0 5548900.0
+
+tolerance 0.03 m
+accept -65.9996522 -39.9995894
+expect 4987500.009 5555200.001
+
+tolerance 0.03 m
+accept -64.9992796 -40.000411
+expect 5073000.0 5560400.0
+
+tolerance 0.03 m
+accept -63.9997 -39.9996925
+expect 5158400.01 5564799.987
+
+tolerance 0.03 m
+accept -62.9999842 -40.0002087
+expect 5243800.0 5568100.0
+
+tolerance 0.03 m
+accept -62.0000778 -40.0001803
+expect 5329199.995 5570500.009
+
+tolerance 0.03 m
+accept -61.0000574 -39.9996182
+expect 5414600.0 5572000.0
+
+tolerance 0.03 m
+accept -60.0 -40.0003306
+expect 5500000.0 5572399.996
+
+tolerance 0.03 m
+accept -58.9999426 -39.9996182
+expect 5585400.0 5572000.0
+
+tolerance 0.03 m
+accept -57.9999222 -40.0001803
+expect 5670800.005 5570500.009
+
+tolerance 0.03 m
+accept -57.0000158 -40.0002087
+expect 5756200.0 5568100.0
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +proj=etmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs +inv
+ +step +init=epsg:4190
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 5422500.0 18889800.0
+expect -63.9993433 80.0002644
+
+tolerance 0.03 m
+accept 5276900.0 16662800.0
+expect -63.9998472 60.0001191
+
+tolerance 0.03 m
+accept 5158399.999 14439199.99
+expect -63.9997361 40.0003081
+
+tolerance 0.03 m
+accept 5081100.0 12219300.0
+expect -64.0004605 19.9996448
+
+tolerance 0.03 m
+accept 5054400.005 10002000.0
+expect -63.9996186 0.0003092
+
+tolerance 0.03 m
+accept 5081100.017 7784599.993
+expect -64.0004675 -19.9999283
+
+tolerance 0.03 m
+accept 5158400.0 5564800.0
+expect -63.9997001 -39.9996924
+
+tolerance 0.03 m
+accept 5276899.994 3341099.995
+expect -63.9998814 -60.0004008
+
+tolerance 0.03 m
+accept 5422500.0 1114200.0
+expect -63.9991006 -79.9996521
+
+tolerance 0.03 m
+accept 4645300.113 5524200.123
+expect -70.0002089 -40.000215
+
+tolerance 0.03 m
+accept 4730900.0 5533400.0
+expect -69.0001441 -40.0002935
+
+tolerance 0.03 m
+accept 4816500.043 5541700.028
+expect -67.9995333 -39.9996136
+
+tolerance 0.03 m
+accept 4902000.0 5548900.0
+expect -66.9998073 -39.9999313
+
+tolerance 0.03 m
+accept 4987500.009 5555200.001
+expect -65.9996522 -39.9995894
+
+tolerance 0.03 m
+accept 5073000.0 5560400.0
+expect -64.9992796 -40.000411
+
+tolerance 0.03 m
+accept 5158400.01 5564799.987
+expect -63.9997 -39.9996925
+
+tolerance 0.03 m
+accept 5243800.0 5568100.0
+expect -62.9999842 -40.0002087
+
+tolerance 0.03 m
+accept 5329199.995 5570500.009
+expect -62.0000778 -40.0001803
+
+tolerance 0.03 m
+accept 5414600.0 5572000.0
+expect -61.0000574 -39.9996182
+
+tolerance 0.03 m
+accept 5500000.0 5572399.996
+expect -60.0 -40.0003306
+
+tolerance 0.03 m
+accept 5585400.0 5572000.0
+expect -58.9999426 -39.9996182
+
+tolerance 0.03 m
+accept 5670800.005 5570500.009
+expect -57.9999222 -40.0001803
+
+tolerance 0.03 m
+accept 5756200.0 5568100.0
+expect -57.0000158 -40.0002087
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4190 +inv
+ +step +proj=etmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept -63.9993433 80.0002644
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9998472 60.0001191
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9997361 40.0003081
+roundtrip 1000
+
+tolerance 0.006 m
+accept -64.0004605 19.9996448
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9996186 0.0003092
+roundtrip 1000
+
+tolerance 0.006 m
+accept -64.0004675 -19.9999283
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9997001 -39.9996924
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9998814 -60.0004008
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9991006 -79.9996521
+roundtrip 1000
+
+tolerance 0.006 m
+accept -70.0002089 -40.000215
+roundtrip 1000
+
+tolerance 0.006 m
+accept -69.0001441 -40.0002935
+roundtrip 1000
+
+tolerance 0.006 m
+accept -67.9995333 -39.9996136
+roundtrip 1000
+
+tolerance 0.006 m
+accept -66.9998073 -39.9999313
+roundtrip 1000
+
+tolerance 0.006 m
+accept -65.9996522 -39.9995894
+roundtrip 1000
+
+tolerance 0.006 m
+accept -64.9992796 -40.000411
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9997 -39.9996925
+roundtrip 1000
+
+tolerance 0.006 m
+accept -62.9999842 -40.0002087
+roundtrip 1000
+
+tolerance 0.006 m
+accept -62.0000778 -40.0001803
+roundtrip 1000
+
+tolerance 0.006 m
+accept -61.0000574 -39.9996182
+roundtrip 1000
+
+tolerance 0.006 m
+accept -60.0 -40.0003306
+roundtrip 1000
+
+tolerance 0.006 m
+accept -58.9999426 -39.9996182
+roundtrip 1000
+
+tolerance 0.006 m
+accept -57.9999222 -40.0001803
+roundtrip 1000
+
+tolerance 0.006 m
+accept -57.0000158 -40.0002087
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5101.4-jhs-etmerc.json b/test/gigs/5101.4-jhs-etmerc.json
deleted file mode 100644
index 1775f750..00000000
--- a/test/gigs/5101.4-jhs-etmerc.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-"coordinates": [
- [[-63.9993433, 80.0002644], [5422500.0, 18889800.0]],
- [[-63.9998472, 60.0001191], [5276900.0, 16662800.0]],
- [[-63.9997361, 40.0003081], [5158399.999, 14439199.99]],
- [[-64.0004605, 19.9996448], [5081100.0, 12219300.0]],
- [[-63.9996186, 0.0003092], [5054400.005, 10002000.0]],
- [[-64.0004675, -19.9999283], [5081100.017, 7784599.993]],
- [[-63.9997001, -39.9996924], [5158400.0, 5564800.0]],
- [[-63.9998814, -60.0004008], [5276899.994, 3341099.995]],
- [[-63.9991006, -79.9996521], [5422500.0, 1114200.0]],
- [[-70.0002089, -40.000215], [4645300.113, 5524200.123]],
- [[-69.0001441, -40.0002935], [4730900.0, 5533400.0]],
- [[-67.9995333, -39.9996136], [4816500.043, 5541700.028]],
- [[-66.9998073, -39.9999313], [4902000.0, 5548900.0]],
- [[-65.9996522, -39.9995894], [4987500.009, 5555200.001]],
- [[-64.9992796, -40.000411], [5073000.0, 5560400.0]],
- [[-63.9997, -39.9996925], [5158400.01, 5564799.987]],
- [[-62.9999842, -40.0002087], [5243800.0, 5568100.0]],
- [[-62.0000778, -40.0001803], [5329199.995, 5570500.009]],
- [[-61.0000574, -39.9996182], [5414600.0, 5572000.0]],
- [[-60.0, -40.0003306], [5500000.0, 5572399.996]],
- [[-58.9999426, -39.9996182], [5585400.0, 5572000.0]],
- [[-57.9999222, -40.0001803], [5670800.005, 5570500.009]],
- [[-57.0000158, -40.0002087], [5756200.0, 5568100.0]]
- ],
-"description": "Test 5101 (part 4), Transverse Mercator, v2-0_2011-06-28, recommended JHS formula",
-"projections": ["+init=epsg:4190",
- "+proj=etmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"],
-"tests": [{"tolerances": [2.7777777777777776e-07, 0.03], "type": "conversion"}, {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}]
-}
diff --git a/test/gigs/5101.4-jhs.gie.failing b/test/gigs/5101.4-jhs.gie.failing
new file mode 100644
index 00000000..615bf60b
--- /dev/null
+++ b/test/gigs/5101.4-jhs.gie.failing
@@ -0,0 +1,300 @@
+--------------------------------------------------------------------------------
+
+Test 5101 (part 4), Transverse Mercator, v2-0_2011-06-28, recommended JHS formula
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4190 +inv
+ +step +init=epsg:22175
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept -63.9993433 80.0002644
+expect 5422500.0 18889800.0
+
+tolerance 0.03 m
+accept -63.9998472 60.0001191
+expect 5276900.0 16662800.0
+
+tolerance 0.03 m
+accept -63.9997361 40.0003081
+expect 5158399.999 14439199.99
+
+tolerance 0.03 m
+accept -64.0004605 19.9996448
+expect 5081100.0 12219300.0
+
+tolerance 0.03 m
+accept -63.9996186 0.0003092
+expect 5054400.005 10002000.0
+
+tolerance 0.03 m
+accept -64.0004675 -19.9999283
+expect 5081100.017 7784599.993
+
+tolerance 0.03 m
+accept -63.9997001 -39.9996924
+expect 5158400.0 5564800.0
+
+tolerance 0.03 m
+accept -63.9998814 -60.0004008
+expect 5276899.994 3341099.995
+
+tolerance 0.03 m
+accept -63.9991006 -79.9996521
+expect 5422500.0 1114200.0
+
+tolerance 0.03 m
+accept -70.0002089 -40.000215
+expect 4645300.113 5524200.123
+
+tolerance 0.03 m
+accept -69.0001441 -40.0002935
+expect 4730900.0 5533400.0
+
+tolerance 0.03 m
+accept -67.9995333 -39.9996136
+expect 4816500.043 5541700.028
+
+tolerance 0.03 m
+accept -66.9998073 -39.9999313
+expect 4902000.0 5548900.0
+
+tolerance 0.03 m
+accept -65.9996522 -39.9995894
+expect 4987500.009 5555200.001
+
+tolerance 0.03 m
+accept -64.9992796 -40.000411
+expect 5073000.0 5560400.0
+
+tolerance 0.03 m
+accept -63.9997 -39.9996925
+expect 5158400.01 5564799.987
+
+tolerance 0.03 m
+accept -62.9999842 -40.0002087
+expect 5243800.0 5568100.0
+
+tolerance 0.03 m
+accept -62.0000778 -40.0001803
+expect 5329199.995 5570500.009
+
+tolerance 0.03 m
+accept -61.0000574 -39.9996182
+expect 5414600.0 5572000.0
+
+tolerance 0.03 m
+accept -60 -40.0003306
+expect 5500000.0 5572399.996
+
+tolerance 0.03 m
+accept -58.9999426 -39.9996182
+expect 5585400.0 5572000.0
+
+tolerance 0.03 m
+accept -57.9999222 -40.0001803
+expect 5670800.005 5570500.009
+
+tolerance 0.03 m
+accept -57.0000158 -40.0002087
+expect 5756200.0 5568100.0
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:22175 +inv
+ +step +init=epsg:4190
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 5422500.0 18889800.0
+expect -63.9993433 80.0002644
+
+tolerance 0.03 m
+accept 5276900.0 16662800.0
+expect -63.9998472 60.0001191
+
+tolerance 0.03 m
+accept 5158399.999 14439199.99
+expect -63.9997361 40.0003081
+
+tolerance 0.03 m
+accept 5081100.0 12219300.0
+expect -64.0004605 19.9996448
+
+tolerance 0.03 m
+accept 5054400.005 10002000.0
+expect -63.9996186 0.0003092
+
+tolerance 0.03 m
+accept 5081100.017 7784599.993
+expect -64.0004675 -19.9999283
+
+tolerance 0.03 m
+accept 5158400.0 5564800.0
+expect -63.9997001 -39.9996924
+
+tolerance 0.03 m
+accept 5276899.994 3341099.995
+expect -63.9998814 -60.0004008
+
+tolerance 0.03 m
+accept 5422500.0 1114200.0
+expect -63.9991006 -79.9996521
+
+tolerance 0.03 m
+accept 4645300.113 5524200.123
+expect -70.0002089 -40.000215
+
+tolerance 0.03 m
+accept 4730900.0 5533400.0
+expect -69.0001441 -40.0002935
+
+tolerance 0.03 m
+accept 4816500.043 5541700.028
+expect -67.9995333 -39.9996136
+
+tolerance 0.03 m
+accept 4902000.0 5548900.0
+expect -66.9998073 -39.9999313
+
+tolerance 0.03 m
+accept 4987500.009 5555200.001
+expect -65.9996522 -39.9995894
+
+tolerance 0.03 m
+accept 5073000.0 5560400.0
+expect -64.9992796 -40.000411
+
+tolerance 0.03 m
+accept 5158400.01 5564799.987
+expect -63.9997 -39.9996925
+
+tolerance 0.03 m
+accept 5243800.0 5568100.0
+expect -62.9999842 -40.0002087
+
+tolerance 0.03 m
+accept 5329199.995 5570500.009
+expect -62.0000778 -40.0001803
+
+tolerance 0.03 m
+accept 5414600.0 5572000.0
+expect -61.0000574 -39.9996182
+
+tolerance 0.03 m
+accept 5500000.0 5572399.996
+expect -60 -40.0003306
+
+tolerance 0.03 m
+accept 5585400.0 5572000.0
+expect -58.9999426 -39.9996182
+
+tolerance 0.03 m
+accept 5670800.005 5570500.009
+expect -57.9999222 -40.0001803
+
+tolerance 0.03 m
+accept 5756200.0 5568100.0
+expect -57.0000158 -40.0002087
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4190 +inv
+ +step +init=epsg:22175
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept -63.9993433 80.0002644
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9998472 60.0001191
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9997361 40.0003081
+roundtrip 1000
+
+tolerance 0.006 m
+accept -64.0004605 19.9996448
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9996186 0.0003092
+roundtrip 1000
+
+tolerance 0.006 m
+accept -64.0004675 -19.9999283
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9997001 -39.9996924
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9998814 -60.0004008
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9991006 -79.9996521
+roundtrip 1000
+
+tolerance 0.006 m
+accept -70.0002089 -40.000215
+roundtrip 1000
+
+tolerance 0.006 m
+accept -69.0001441 -40.0002935
+roundtrip 1000
+
+tolerance 0.006 m
+accept -67.9995333 -39.9996136
+roundtrip 1000
+
+tolerance 0.006 m
+accept -66.9998073 -39.9999313
+roundtrip 1000
+
+tolerance 0.006 m
+accept -65.9996522 -39.9995894
+roundtrip 1000
+
+tolerance 0.006 m
+accept -64.9992796 -40.000411
+roundtrip 1000
+
+tolerance 0.006 m
+accept -63.9997 -39.9996925
+roundtrip 1000
+
+tolerance 0.006 m
+accept -62.9999842 -40.0002087
+roundtrip 1000
+
+tolerance 0.006 m
+accept -62.0000778 -40.0001803
+roundtrip 1000
+
+tolerance 0.006 m
+accept -61.0000574 -39.9996182
+roundtrip 1000
+
+tolerance 0.006 m
+accept -60 -40.0003306
+roundtrip 1000
+
+tolerance 0.006 m
+accept -58.9999426 -39.9996182
+roundtrip 1000
+
+tolerance 0.006 m
+accept -57.9999222 -40.0001803
+roundtrip 1000
+
+tolerance 0.006 m
+accept -57.0000158 -40.0002087
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5101.4-jhs.json b/test/gigs/5101.4-jhs.json
deleted file mode 100644
index 81648735..00000000
--- a/test/gigs/5101.4-jhs.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-"coordinates": [
- [[-63.9993433, 80.0002644], [5422500.0, 18889800.0]],
- [[-63.9998472, 60.0001191], [5276900.0, 16662800.0]],
- [[-63.9997361, 40.0003081], [5158399.999, 14439199.99]],
- [[-64.0004605, 19.9996448], [5081100.0, 12219300.0]],
- [[-63.9996186, 0.0003092], [5054400.005, 10002000.0]],
- [[-64.0004675, -19.9999283], [5081100.017, 7784599.993]],
- [[-63.9997001, -39.9996924], [5158400.0, 5564800.0]],
- [[-63.9998814, -60.0004008], [5276899.994, 3341099.995]],
- [[-63.9991006, -79.9996521], [5422500.0, 1114200.0]],
- [[-70.0002089, -40.000215], [4645300.113, 5524200.123]],
- [[-69.0001441, -40.0002935], [4730900.0, 5533400.0]],
- [[-67.9995333, -39.9996136], [4816500.043, 5541700.028]],
- [[-66.9998073, -39.9999313], [4902000.0, 5548900.0]],
- [[-65.9996522, -39.9995894], [4987500.009, 5555200.001]],
- [[-64.9992796, -40.000411], [5073000.0, 5560400.0]],
- [[-63.9997, -39.9996925], [5158400.01, 5564799.987]],
- [[-62.9999842, -40.0002087], [5243800.0, 5568100.0]],
- [[-62.0000778, -40.0001803], [5329199.995, 5570500.009]],
- [[-61.0000574, -39.9996182], [5414600.0, 5572000.0]],
- [[-60, -40.0003306], [5500000.0, 5572399.996]],
- [[-58.9999426, -39.9996182], [5585400.0, 5572000.0]],
- [[-57.9999222, -40.0001803], [5670800.005, 5570500.009]],
- [[-57.0000158, -40.0002087], [5756200.0, 5568100.0]]
- ],
-"description": "Test 5101 (part 4), Transverse Mercator, v2-0_2011-06-28, recommended JHS formula",
-"projections": ["+init=epsg:4190", "+init=epsg:22175"],
-"tests": [
- {"tolerances": [2.7777777777777776e-07, 0.03], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5102.1.gie b/test/gigs/5102.1.gie
new file mode 100644
index 00000000..d3eef080
--- /dev/null
+++ b/test/gigs/5102.1.gie
@@ -0,0 +1,252 @@
+--------------------------------------------------------------------------------
+
+Test 5102, Lambert Conic Conformal (1SP), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4230 +inv
+ +step +init=epsg:2192
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 5 58
+expect 760722.92 3457368.68
+
+tolerance 0.03 m
+accept 5 57
+expect 764566.844 3343948.93
+
+tolerance 0.03 m
+accept 5 56
+expect 768396.683 3230944.812
+
+tolerance 0.03 m
+accept 5 55
+expect 772213.973 3118310.947
+
+tolerance 0.03 m
+accept 5 54
+expect 776020.189 3006003.839
+
+tolerance 0.03 m
+accept 5 53
+expect 779816.748 2893981.68
+
+tolerance 0.03 m
+accept 4 51
+expect 717027.292 2668695.784
+
+tolerance 0.03 m
+accept 4 50
+expect 719385.249 2557252.841
+
+tolerance 0.03 m
+accept 4 49
+expect 721740.43 2445941.161
+
+tolerance 0.03 m
+accept 4 46.8
+expect 726915.752 2201342.519
+
+tolerance 0.03 m
+accept 3 53
+expect 644764.905 2891124.195
+
+tolerance 0.03 m
+accept 4 53
+expect 712299.916 2892123.369
+
+tolerance 0.03 m
+accept 5 53
+expect 779816.748 2893981.68
+
+tolerance 0.03 m
+accept 6 53
+expect 847304.473 2896698.827
+
+tolerance 0.03 m
+accept 7 53
+expect 914752.168 2900274.371
+
+tolerance 0.03 m
+accept 8 53
+expect 982148.913 2904707.734
+
+tolerance 0.03 m
+accept 9 53
+expect 1049483.8 2909998.196
+
+tolerance 0.03 m
+accept 10 53
+expect 1116745.929 2916144.902
+
+tolerance 0.03 m
+accept 11 53
+expect 1183924.412 2923146.858
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:2192 +inv
+ +step +init=epsg:4230
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 760722.92 3457368.68
+expect 5 58
+
+tolerance 0.03 m
+accept 764566.844 3343948.93
+expect 5 57
+
+tolerance 0.03 m
+accept 768396.683 3230944.812
+expect 5 56
+
+tolerance 0.03 m
+accept 772213.973 3118310.947
+expect 5 55
+
+tolerance 0.03 m
+accept 776020.189 3006003.839
+expect 5 54
+
+tolerance 0.03 m
+accept 779816.748 2893981.68
+expect 5 53
+
+tolerance 0.03 m
+accept 717027.292 2668695.784
+expect 4 51
+
+tolerance 0.03 m
+accept 719385.249 2557252.841
+expect 4 50
+
+tolerance 0.03 m
+accept 721740.43 2445941.161
+expect 4 49
+
+tolerance 0.03 m
+accept 726915.752 2201342.519
+expect 4 46.8
+
+tolerance 0.03 m
+accept 644764.905 2891124.195
+expect 3 53
+
+tolerance 0.03 m
+accept 712299.916 2892123.369
+expect 4 53
+
+tolerance 0.03 m
+accept 779816.748 2893981.68
+expect 5 53
+
+tolerance 0.03 m
+accept 847304.473 2896698.827
+expect 6 53
+
+tolerance 0.03 m
+accept 914752.168 2900274.371
+expect 7 53
+
+tolerance 0.03 m
+accept 982148.913 2904707.734
+expect 8 53
+
+tolerance 0.03 m
+accept 1049483.8 2909998.196
+expect 9 53
+
+tolerance 0.03 m
+accept 1116745.929 2916144.902
+expect 10 53
+
+tolerance 0.03 m
+accept 1183924.412 2923146.858
+expect 11 53
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4230 +inv
+ +step +init=epsg:2192
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 5 58
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 57
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 56
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 55
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 54
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4 51
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4 50
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4 49
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4 46.8
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 6 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 7 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 8 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 9 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 10 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 11 53
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5102.1.json b/test/gigs/5102.1.json
deleted file mode 100644
index 28f74538..00000000
--- a/test/gigs/5102.1.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-"coordinates": [
- [[5, 58], [760722.92, 3457368.68]],
- [[5, 57], [764566.844, 3343948.93]],
- [[5, 56], [768396.683, 3230944.812]],
- [[5, 55], [772213.973, 3118310.947]],
- [[5, 54], [776020.189, 3006003.839]],
- [[5, 53], [779816.748, 2893981.68]],
- [[4, 51], [717027.292, 2668695.784]],
- [[4, 50], [719385.249, 2557252.841]],
- [[4, 49], [721740.43, 2445941.161]],
- [[4, 46.8], [726915.752, 2201342.519]],
- [[3, 53], [644764.905, 2891124.195]],
- [[4, 53], [712299.916, 2892123.369]],
- [[5, 53], [779816.748, 2893981.68]],
- [[6, 53], [847304.473, 2896698.827]],
- [[7, 53], [914752.168, 2900274.371]],
- [[8, 53], [982148.913, 2904707.734]],
- [[9, 53], [1049483.8, 2909998.196]],
- [[10, 53], [1116745.929, 2916144.902]],
- [[11, 53], [1183924.412, 2923146.858]]
- ],
-"description": "Test 5102, Lambert Conic Conformal (1SP), v2-0_2011-06-28.",
-"projections": ["+init=epsg:4230", "+init=epsg:2192"],
-"tests": [
- {"tolerances": [2.7777777777777776e-07, 0.03], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5102.2.gie.failing b/test/gigs/5102.2.gie.failing
new file mode 100644
index 00000000..db812dbd
--- /dev/null
+++ b/test/gigs/5102.2.gie.failing
@@ -0,0 +1,252 @@
+--------------------------------------------------------------------------------
+
+Test 5102 (part 2), Lambert Conic Conformal (1SP), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4807 +inv
+ +step +init=epsg:27572
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 2.9586342556 64.4444444444
+expect 760724.023 3457334.864
+
+tolerance 0.03 m
+accept 2.9586342556 63.3333333333
+expect 764567.882 3343917.044
+
+tolerance 0.03 m
+accept 2.9586342556 62.2222222222
+expect 768397.648 3230915.06
+
+tolerance 0.03 m
+accept 2.9586342556 61.1111111111
+expect 772214.859 3118283.535
+
+tolerance 0.03 m
+accept 2.9586342556 60
+expect 776020.989 3005978.979
+
+tolerance 0.03 m
+accept 2.9586342556 58.8888888889
+expect 779817.454 2893959.584
+
+tolerance 0.03 m
+accept 1.8475231444 56.6666666667
+expect 717027.602 2668679.866
+
+tolerance 0.03 m
+accept 1.8475231444 55.5555555556
+expect 719385.487 2557240.347
+
+tolerance 0.03 m
+accept 1.8475231444 54.4444444444
+expect 721740.59 2445932.319
+
+tolerance 0.03 m
+accept 1.8475231444 52
+expect 726915.726 2201342.51839
+
+tolerance 0.03 m
+accept 0.7364120333 58.8888888889
+expect 644765.081 2891102.088
+
+tolerance 0.03 m
+accept 1.8475231444 58.8888888889
+expect 712300.356 2892101.266
+
+tolerance 0.03 m
+accept 2.9586342556 58.8888888889
+expect 779817.454 2893959.584
+
+tolerance 0.03 m
+accept 4.0697453667 58.8888888889
+expect 847305.444 2896676.742
+
+tolerance 0.03 m
+accept 5.1808564778 58.8888888889
+expect 914753.403 2900252.301
+
+tolerance 0.03 m
+accept 6.2919675889 58.8888888889
+expect 982150.413 2904685.68
+
+tolerance 0.03 m
+accept 7.4030787 58.8888888889
+expect 1049485.565 2909976.163
+
+tolerance 0.03 m
+accept 8.5141898111 58.8888888889
+expect 1116747.958 2916122.894
+
+tolerance 0.03 m
+accept 9.6253009222 58.8888888889
+expect 1183926.705 2923124.876
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:27572 +inv
+ +step +init=epsg:4807
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 760724.023 3457334.864
+expect 2.9586342556 64.4444444444
+
+tolerance 0.03 m
+accept 764567.882 3343917.044
+expect 2.9586342556 63.3333333333
+
+tolerance 0.03 m
+accept 768397.648 3230915.06
+expect 2.9586342556 62.2222222222
+
+tolerance 0.03 m
+accept 772214.859 3118283.535
+expect 2.9586342556 61.1111111111
+
+tolerance 0.03 m
+accept 776020.989 3005978.979
+expect 2.9586342556 60
+
+tolerance 0.03 m
+accept 779817.454 2893959.584
+expect 2.9586342556 58.8888888889
+
+tolerance 0.03 m
+accept 717027.602 2668679.866
+expect 1.8475231444 56.6666666667
+
+tolerance 0.03 m
+accept 719385.487 2557240.347
+expect 1.8475231444 55.5555555556
+
+tolerance 0.03 m
+accept 721740.59 2445932.319
+expect 1.8475231444 54.4444444444
+
+tolerance 0.03 m
+accept 726915.726 2201342.51839
+expect 1.8475231444 52
+
+tolerance 0.03 m
+accept 644765.081 2891102.088
+expect 0.7364120333 58.8888888889
+
+tolerance 0.03 m
+accept 712300.356 2892101.266
+expect 1.8475231444 58.8888888889
+
+tolerance 0.03 m
+accept 779817.454 2893959.584
+expect 2.9586342556 58.8888888889
+
+tolerance 0.03 m
+accept 847305.444 2896676.742
+expect 4.0697453667 58.8888888889
+
+tolerance 0.03 m
+accept 914753.403 2900252.301
+expect 5.1808564778 58.8888888889
+
+tolerance 0.03 m
+accept 982150.413 2904685.68
+expect 6.2919675889 58.8888888889
+
+tolerance 0.03 m
+accept 1049485.565 2909976.163
+expect 7.4030787 58.8888888889
+
+tolerance 0.03 m
+accept 1116747.958 2916122.894
+expect 8.5141898111 58.8888888889
+
+tolerance 0.03 m
+accept 1183926.705 2923124.876
+expect 9.6253009222 58.8888888889
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4807 +inv
+ +step +init=epsg:27572
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 2.9586342556 64.4444444444
+roundtrip 1000
+
+tolerance 0.006 m
+accept 2.9586342556 63.3333333333
+roundtrip 1000
+
+tolerance 0.006 m
+accept 2.9586342556 62.2222222222
+roundtrip 1000
+
+tolerance 0.006 m
+accept 2.9586342556 61.1111111111
+roundtrip 1000
+
+tolerance 0.006 m
+accept 2.9586342556 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 2.9586342556 58.8888888889
+roundtrip 1000
+
+tolerance 0.006 m
+accept 1.8475231444 56.6666666667
+roundtrip 1000
+
+tolerance 0.006 m
+accept 1.8475231444 55.5555555556
+roundtrip 1000
+
+tolerance 0.006 m
+accept 1.8475231444 54.4444444444
+roundtrip 1000
+
+tolerance 0.006 m
+accept 1.8475231444 52
+roundtrip 1000
+
+tolerance 0.006 m
+accept 0.7364120333 58.8888888889
+roundtrip 1000
+
+tolerance 0.006 m
+accept 1.8475231444 58.8888888889
+roundtrip 1000
+
+tolerance 0.006 m
+accept 2.9586342556 58.8888888889
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4.0697453667 58.8888888889
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5.1808564778 58.8888888889
+roundtrip 1000
+
+tolerance 0.006 m
+accept 6.2919675889 58.8888888889
+roundtrip 1000
+
+tolerance 0.006 m
+accept 7.4030787 58.8888888889
+roundtrip 1000
+
+tolerance 0.006 m
+accept 8.5141898111 58.8888888889
+roundtrip 1000
+
+tolerance 0.006 m
+accept 9.6253009222 58.8888888889
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5102.2.json b/test/gigs/5102.2.json
deleted file mode 100644
index 3916733a..00000000
--- a/test/gigs/5102.2.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-"coordinates": [
- [[2.9586342556, 64.4444444444], [760724.023, 3457334.864]],
- [[2.9586342556, 63.3333333333], [764567.882, 3343917.044]],
- [[2.9586342556, 62.2222222222], [768397.648, 3230915.06]],
- [[2.9586342556, 61.1111111111], [772214.859, 3118283.535]],
- [[2.9586342556, 60], [776020.989, 3005978.979]],
- [[2.9586342556, 58.8888888889], [779817.454, 2893959.584]],
- [[1.8475231444, 56.6666666667], [717027.602, 2668679.866]],
- [[1.8475231444, 55.5555555556], [719385.487, 2557240.347]],
- [[1.8475231444, 54.4444444444], [721740.59, 2445932.319]],
- [[1.8475231444, 52], [726915.726, 2201342.51838845]],
- [[0.7364120333, 58.8888888889], [644765.081, 2891102.088]],
- [[1.8475231444, 58.8888888889], [712300.356, 2892101.266]],
- [[2.9586342556, 58.8888888889], [779817.454, 2893959.584]],
- [[4.0697453667, 58.8888888889], [847305.444, 2896676.742]],
- [[5.1808564778, 58.8888888889], [914753.403, 2900252.301]],
- [[6.2919675889, 58.8888888889], [982150.413, 2904685.68]],
- [[7.4030787, 58.8888888889], [1049485.565, 2909976.163]],
- [[8.5141898111, 58.8888888889], [1116747.958, 2916122.894]],
- [[9.6253009222, 58.8888888889], [1183926.705, 2923124.876]]
- ],
-"description": "Test 5102 (part 2), Lambert Conic Conformal (1SP), v2-0_2011-06-28.",
-"projections": ["+init=epsg:4807", "+init=epsg:27572"],
-"tests": [
- {"tolerances": [2.7777777777777776e-07, 0.03], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5103.1.gie b/test/gigs/5103.1.gie
new file mode 100644
index 00000000..c972b738
--- /dev/null
+++ b/test/gigs/5103.1.gie
@@ -0,0 +1,211 @@
+--------------------------------------------------------------------------------
+
+Test 5103 (part 1), Lambert Conic Conformal (2SP), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4313 +inv
+ +step +init=epsg:31370
+
+tolerance 30 mm
+--------------------------------------------------------------------------------
+accept 5 58
+expect 187742.7 969521.653
+
+accept 5 57
+expect 188698.877 857277.135
+
+accept 5 56
+expect 189652.853 745291.184
+
+accept 5 55
+expect 190604.967 633523.672
+
+accept 5 54
+expect 191555.55 521935.9
+
+accept 5 53
+expect 192504.921 410490.433
+
+accept 5.3876389 52.1561606
+expect 219843.841 316827.604
+
+accept 4 51
+expect 124202.936 187756.876
+
+accept 4 50
+expect 123652.406 76521.628
+
+accept 4 49
+expect 123101.889 -34711.068
+
+accept 3.3137281 47.9752611
+expect 71254.553 -148236.592
+
+accept 3 53
+expect 58108.966 411155.591
+
+accept 4 53
+expect 125304.704 410370.504
+
+accept 5 53
+expect 192504.921 410490.433
+
+accept 6 53
+expect 259697.429 411515.356
+
+accept 7 53
+expect 326870.04 413445.087
+
+accept 8 53
+expect 394010.571 416279.276
+
+accept 9 53
+expect 461106.844 420017.408
+
+accept 10 53
+expect 528146.69 424658.807
+
+accept 11 53
+expect 595117.95 430202.63
+
+
+--------------------------------------------------------------------------------
+operation proj=pipeline
+ step init=epsg:31370 inv
+ step init=epsg:4313
+
+tolerance 30 mm
+--------------------------------------------------------------------------------
+accept 187742.7 969521.653
+expect 5 58
+
+accept 188698.877 857277.135
+expect 5 57
+
+accept 189652.853 745291.184
+expect 5 56
+
+accept 190604.967 633523.672
+expect 5 55
+
+accept 191555.55 521935.9
+expect 5 54
+
+accept 192504.921 410490.433
+expect 5 53
+
+accept 219843.841 316827.604
+expect 5.3876389 52.1561606
+
+accept 124202.936 187756.876
+expect 4 51
+
+accept 123652.406 76521.628
+expect 4 50
+
+accept 123101.889 -34711.068
+expect 4 49
+
+accept 71254.553 -148236.592
+expect 3.3137281 47.9752611
+
+accept 58108.966 411155.591
+expect 3 53
+
+accept 125304.704 410370.504
+expect 4 53
+
+accept 192504.921 410490.433
+expect 5 53
+
+accept 259697.429 411515.356
+expect 6 53
+
+accept 326870.04 413445.087
+expect 7 53
+
+accept 394010.571 416279.276
+expect 8 53
+
+accept 461106.844 420017.408
+expect 9 53
+
+accept 528146.69 424658.807
+expect 10 53
+
+accept 595117.95 430202.63
+expect 11 53
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline towgs84=0,0,0 # turn off dual datum shift
+ +step +init=epsg:4313 +inv
+ +step +init=epsg:31370
+
+tolerance 6 mm
+--------------------------------------------------------------------------------
+accept 5 58
+roundtrip 1000
+
+accept 5 57
+roundtrip 1000
+
+accept 5 56
+roundtrip 1000
+
+accept 5 55
+roundtrip 1000
+
+accept 5 54
+roundtrip 1000
+
+accept 5 53
+roundtrip 1000
+
+accept 5.3876389 52.1561606
+roundtrip 1000
+
+accept 4 51
+roundtrip 1000
+
+accept 4 50
+roundtrip 1000
+
+accept 4 49
+roundtrip 1000
+
+accept 3.3137281 47.9752611
+roundtrip 1000
+
+accept 3 53
+roundtrip 1000
+
+accept 4 53
+roundtrip 1000
+
+accept 5 53
+roundtrip 1000
+
+accept 6 53
+roundtrip 1000
+
+accept 7 53
+roundtrip 1000
+
+accept 8 53
+roundtrip 1000
+
+accept 9 53
+roundtrip 1000
+
+accept 10 53
+roundtrip 1000
+
+accept 11 53
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5103.1.json b/test/gigs/5103.1.json
deleted file mode 100644
index e2fdf9a1..00000000
--- a/test/gigs/5103.1.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-"coordinates": [
- [[5, 58], [187742.7, 969521.653]],
- [[5, 57], [188698.877, 857277.135]],
- [[5, 56], [189652.853, 745291.184]],
- [[5, 55], [190604.967, 633523.672]],
- [[5, 54], [191555.55, 521935.9]],
- [[5, 53], [192504.921, 410490.433]],
- [[5.3876389, 52.1561606], [219843.841, 316827.604]],
- [[4, 51], [124202.936, 187756.876]],
- [[4, 50], [123652.406, 76521.628]],
- [[4, 49], [123101.889, -34711.068]],
- [[3.3137281, 47.9752611], [71254.553, -148236.592]],
- [[3, 53], [58108.966, 411155.591]],
- [[4, 53], [125304.704, 410370.504]],
- [[5, 53], [192504.921, 410490.433]],
- [[6, 53], [259697.429, 411515.356]],
- [[7, 53], [326870.04, 413445.087]],
- [[8, 53], [394010.571, 416279.276]],
- [[9, 53], [461106.844, 420017.408]],
- [[10, 53], [528146.69, 424658.807]],
- [[11, 53], [595117.95, 430202.63]]
-],
-
-"description": "Test 5103 (part 1), Lambert Conic Conformal (2SP), v2-0_2011-06-28.",
-"projections": ["+init=epsg:4313", "+init=epsg:31370"],
-"tests": [ {"tolerances": [2.7777777777777776e-07, 0.03], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}]
-}
diff --git a/test/gigs/5103.2.gie b/test/gigs/5103.2.gie
new file mode 100644
index 00000000..3975e9d8
--- /dev/null
+++ b/test/gigs/5103.2.gie
@@ -0,0 +1,144 @@
+--------------------------------------------------------------------------------
+
+Test 5103 (part 2), Lambert Conic Conformal (2SP), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4152 +inv
+ +step +init=epsg:2921
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept -110 49
+expect 2003937.27 6452491.7
+
+tolerance 0.03 m
+accept -110 47
+expect 2016621.93 5717728.61
+
+tolerance 0.03 m
+accept -110 45
+expect 2029255.57 4985920.56
+
+tolerance 0.03 m
+accept -110 43
+expect 2041855.08 4256089.74
+
+tolerance 0.03 m
+accept -110 41
+expect 2054436.57 3527302.73
+
+tolerance 0.03 m
+accept -110 41
+expect 2054436.57 3527302.73
+
+tolerance 0.03 m
+accept -108 41
+expect 2606245.52 3543182.55
+
+tolerance 0.03 m
+accept -106 41
+expect 3157542.86 3571757.39
+
+tolerance 0.03 m
+accept -104 41
+expect 3708036.57 3613012.12
+
+tolerance 0.03 m
+accept -102 41
+expect 4257435.06 3666924.89
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:2921 +inv
+ +step +init=epsg:4152
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 2003937.27 6452491.7
+expect -110 49
+
+tolerance 0.03 m
+accept 2016621.93 5717728.61
+expect -110 47
+
+tolerance 0.03 m
+accept 2029255.57 4985920.56
+expect -110 45
+
+tolerance 0.03 m
+accept 2041855.08 4256089.74
+expect -110 43
+
+tolerance 0.03 m
+accept 2054436.57 3527302.73
+expect -110 41
+
+tolerance 0.03 m
+accept 2054436.57 3527302.73
+expect -110 41
+
+tolerance 0.03 m
+accept 2606245.52 3543182.55
+expect -108 41
+
+tolerance 0.03 m
+accept 3157542.86 3571757.39
+expect -106 41
+
+tolerance 0.03 m
+accept 3708036.57 3613012.12
+expect -104 41
+
+tolerance 0.03 m
+accept 4257435.06 3666924.89
+expect -102 41
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4152 +inv
+ +step +init=epsg:2921
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept -110 49
+roundtrip 1000
+
+tolerance 0.006 m
+accept -110 47
+roundtrip 1000
+
+tolerance 0.006 m
+accept -110 45
+roundtrip 1000
+
+tolerance 0.006 m
+accept -110 43
+roundtrip 1000
+
+tolerance 0.006 m
+accept -110 41
+roundtrip 1000
+
+tolerance 0.006 m
+accept -110 41
+roundtrip 1000
+
+tolerance 0.006 m
+accept -108 41
+roundtrip 1000
+
+tolerance 0.006 m
+accept -106 41
+roundtrip 1000
+
+tolerance 0.006 m
+accept -104 41
+roundtrip 1000
+
+tolerance 0.006 m
+accept -102 41
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5103.2.json b/test/gigs/5103.2.json
deleted file mode 100644
index c882393c..00000000
--- a/test/gigs/5103.2.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-"coordinates": [
- [[-110, 49], [2003937.27, 6452491.7]],
- [[-110, 47], [2016621.93, 5717728.61]],
- [[-110, 45], [2029255.57, 4985920.56]],
- [[-110, 43], [2041855.08, 4256089.74]],
- [[-110, 41], [2054436.57, 3527302.73]],
- [[-110, 41], [2054436.57, 3527302.73]],
- [[-108, 41], [2606245.52, 3543182.55]],
- [[-106, 41], [3157542.86, 3571757.39]],
- [[-104, 41], [3708036.57, 3613012.12]],
- [[-102, 41], [4257435.06, 3666924.89]]
- ],
-"description": "Test 5103 (part 2), Lambert Conic Conformal (2SP), v2-0_2011-06-28.",
-"projections": ["+init=epsg:4152", "+init=epsg:2921"],
-
-"tests": [
- {"tolerances": [2.7777777777777776e-07, 0.03], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5103.3.gie b/test/gigs/5103.3.gie
new file mode 100644
index 00000000..b8965132
--- /dev/null
+++ b/test/gigs/5103.3.gie
@@ -0,0 +1,144 @@
+--------------------------------------------------------------------------------
+
+Test 5103 (part 3), Lambert Conic Conformal (2SP), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4152 +inv
+ +step +init=epsg:3568
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept -110 49
+expect 2003933.27 6452478.8
+
+tolerance 0.03 m
+accept -110 47
+expect 2016617.9 5717717.18
+
+tolerance 0.03 m
+accept -110 45
+expect 2029251.51 4985910.59
+
+tolerance 0.03 m
+accept -110 43
+expect 2041851.0 4256081.23
+
+tolerance 0.03 m
+accept -110 41
+expect 2054432.46 3527295.67
+
+tolerance 0.03 m
+accept -110 41
+expect 2054432.46 3527295.67
+
+tolerance 0.03 m
+accept -108 41
+expect 2606240.3 3543175.46
+
+tolerance 0.03 m
+accept -106 41
+expect 3157536.54 3571750.25
+
+tolerance 0.03 m
+accept -104 41
+expect 3708029.16 3613004.9
+
+tolerance 0.03 m
+accept -102 41
+expect 4257426.54 3666917.56
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:3568 +inv
+ +step +init=epsg:4152
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 2003933.27 6452478.8
+expect -110 49
+
+tolerance 0.03 m
+accept 2016617.9 5717717.18
+expect -110 47
+
+tolerance 0.03 m
+accept 2029251.51 4985910.59
+expect -110 45
+
+tolerance 0.03 m
+accept 2041851.0 4256081.23
+expect -110 43
+
+tolerance 0.03 m
+accept 2054432.46 3527295.67
+expect -110 41
+
+tolerance 0.03 m
+accept 2054432.46 3527295.67
+expect -110 41
+
+tolerance 0.03 m
+accept 2606240.3 3543175.46
+expect -108 41
+
+tolerance 0.03 m
+accept 3157536.54 3571750.25
+expect -106 41
+
+tolerance 0.03 m
+accept 3708029.16 3613004.9
+expect -104 41
+
+tolerance 0.03 m
+accept 4257426.54 3666917.56
+expect -102 41
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4152 +inv
+ +step +init=epsg:3568
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept -110 49
+roundtrip 1000
+
+tolerance 0.006 m
+accept -110 47
+roundtrip 1000
+
+tolerance 0.006 m
+accept -110 45
+roundtrip 1000
+
+tolerance 0.006 m
+accept -110 43
+roundtrip 1000
+
+tolerance 0.006 m
+accept -110 41
+roundtrip 1000
+
+tolerance 0.006 m
+accept -110 41
+roundtrip 1000
+
+tolerance 0.006 m
+accept -108 41
+roundtrip 1000
+
+tolerance 0.006 m
+accept -106 41
+roundtrip 1000
+
+tolerance 0.006 m
+accept -104 41
+roundtrip 1000
+
+tolerance 0.006 m
+accept -102 41
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5103.3.json b/test/gigs/5103.3.json
deleted file mode 100644
index 9a388af2..00000000
--- a/test/gigs/5103.3.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-"coordinates": [
- [[-110, 49], [2003933.27, 6452478.8]],
- [[-110, 47], [2016617.9, 5717717.18]],
- [[-110, 45], [2029251.51, 4985910.59]],
- [[-110, 43], [2041851.0, 4256081.23]],
- [[-110, 41], [2054432.46, 3527295.67]],
- [[-110, 41], [2054432.46, 3527295.67]],
- [[-108, 41], [2606240.3, 3543175.46]],
- [[-106, 41], [3157536.54, 3571750.25]],
- [[-104, 41], [3708029.16, 3613004.9]],
- [[-102, 41], [4257426.54, 3666917.56]]
- ],
-"description": "Test 5103 (part 3), Lambert Conic Conformal (2SP), v2-0_2011-06-28.",
-"projections": ["+init=epsg:4152", "+init=epsg:3568"],
-"tests": [
- {"tolerances": [2.7777777777777776e-07, 0.03], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5104.gie.failing b/test/gigs/5104.gie.failing
new file mode 100644
index 00000000..10c42935
--- /dev/null
+++ b/test/gigs/5104.gie.failing
@@ -0,0 +1,264 @@
+--------------------------------------------------------------------------------
+
+Test 5104, Oblique stereographic, v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4289 +inv
+ +step +init=epsg:28992
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 5 58
+expect 132023.27 1114054.87
+
+tolerance 0.05 m
+accept 5 57
+expect 131405.466 1002468.081
+
+tolerance 0.05 m
+accept 5 56
+expect 130792.264 890981.281
+
+tolerance 0.05 m
+accept 5 55
+expect 130183.56 779577.7
+
+tolerance 0.05 m
+accept 5 54
+expect 129579.26 668240.58
+
+tolerance 0.05 m
+accept 5 53
+expect 128979.26 556953.19
+
+tolerance 0.05 m
+accept 5.38763888889 52.1561605556
+expect 155000 463000
+
+tolerance 0.05 m
+accept 4 51
+expect 57605.946 335312.662
+
+tolerance 0.05 m
+accept 4 50
+expect 55502.306 224086.514
+
+tolerance 0.05 m
+accept 4.0 49.0
+expect 53412.76 112842.73
+
+tolerance 0.05 m
+accept 3.31372805556 47.9752611111
+expect 0 0
+
+tolerance 0.05 m
+accept 3 53
+expect -5253.06 559535.55
+
+tolerance 0.05 m
+accept 4 53
+expect 61856.78 557779.12
+
+tolerance 0.05 m
+accept 5 53
+expect 128979.26 556953.19
+
+tolerance 0.05 m
+accept 6 53
+expect 196105.28 557057.74
+
+tolerance 0.05 m
+accept 7 53
+expect 263225.72 558092.77
+
+tolerance 0.05 m
+accept 8 53
+expect 330331.46 560058.31
+
+tolerance 0.05 m
+accept 9 53
+expect 397413.385 562954.436
+
+tolerance 0.05 m
+accept 10 53
+expect 464462.35 566781.24
+
+tolerance 0.05 m
+accept 11 53
+expect 531469.2 571538.84
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:28992 +inv
+ +step +init=epsg:4289
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 132023.27 1114054.87
+expect 5 58
+
+tolerance 0.05 m
+accept 131405.466 1002468.081
+expect 5 57
+
+tolerance 0.05 m
+accept 130792.264 890981.281
+expect 5 56
+
+tolerance 0.05 m
+accept 130183.56 779577.7
+expect 5 55
+
+tolerance 0.05 m
+accept 129579.26 668240.58
+expect 5 54
+
+tolerance 0.05 m
+accept 128979.26 556953.19
+expect 5 53
+
+tolerance 0.05 m
+accept 155000 463000
+expect 5.38763888889 52.1561605556
+
+tolerance 0.05 m
+accept 57605.946 335312.662
+expect 4 51
+
+tolerance 0.05 m
+accept 55502.306 224086.514
+expect 4 50
+
+tolerance 0.05 m
+accept 53412.76 112842.73
+expect 4.0 49.0
+
+tolerance 0.05 m
+accept 0 0
+expect 3.31372805556 47.9752611111
+
+tolerance 0.05 m
+accept -5253.06 559535.55
+expect 3 53
+
+tolerance 0.05 m
+accept 61856.78 557779.12
+expect 4 53
+
+tolerance 0.05 m
+accept 128979.26 556953.19
+expect 5 53
+
+tolerance 0.05 m
+accept 196105.28 557057.74
+expect 6 53
+
+tolerance 0.05 m
+accept 263225.72 558092.77
+expect 7 53
+
+tolerance 0.05 m
+accept 330331.46 560058.31
+expect 8 53
+
+tolerance 0.05 m
+accept 397413.385 562954.436
+expect 9 53
+
+tolerance 0.05 m
+accept 464462.35 566781.24
+expect 10 53
+
+tolerance 0.05 m
+accept 531469.2 571538.84
+expect 11 53
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4289 +inv
+ +step +init=epsg:28992
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 5 58
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 57
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 56
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 55
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 54
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5.38763888889 52.1561605556
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4 51
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4 50
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4.0 49.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3.31372805556 47.9752611111
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 4 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 6 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 7 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 8 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 9 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 10 53
+roundtrip 1000
+
+tolerance 0.006 m
+accept 11 53
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5104.json b/test/gigs/5104.json
deleted file mode 100644
index 973f832f..00000000
--- a/test/gigs/5104.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-"coordinates": [
- [[5, 58], [132023.27, 1114054.87]],
- [[5, 57], [131405.466, 1002468.081]],
- [[5, 56], [130792.264, 890981.281]],
- [[5, 55], [130183.56, 779577.7]],
- [[5, 54], [129579.26, 668240.58]],
- [[5, 53], [128979.26, 556953.19]],
- [[5.38763888888889, 52.1561605555556], [155000, 463000]],
- [[4, 51], [57605.946, 335312.662]],
- [[4, 50], [55502.306, 224086.514]],
- [[4.0, 49.0], [53412.76, 112842.73]],
- [[3.31372805555556, 47.9752611111111], [0, 0]],
- [[3, 53], [-5253.06, 559535.55]],
- [[4, 53], [61856.78, 557779.12]],
- [[5, 53], [128979.26, 556953.19]],
- [[6, 53], [196105.28, 557057.74]],
- [[7, 53], [263225.72, 558092.77]],
- [[8, 53], [330331.46, 560058.31]],
- [[9, 53], [397413.385, 562954.436]],
- [[10, 53], [464462.35, 566781.24]],
- [[11, 53], [531469.2, 571538.84]]
-],
-"description": "Test 5104, Oblique stereographic, v2-0_2011-06-28.",
-"projections": ["+init=epsg:4289", "+init=epsg:28992"],
-"tests": [
- {"tolerances": [5.555555555555555e-07, 0.05], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5105.1.gie.failing b/test/gigs/5105.1.gie.failing
new file mode 100644
index 00000000..a0803d2b
--- /dev/null
+++ b/test/gigs/5105.1.gie.failing
@@ -0,0 +1,300 @@
+--------------------------------------------------------------------------------
+
+Test 5105 (part 1), Oblique Mercator (variant B), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4742 +inv
+ +step +proj=somerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.99984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +ellps=GRS80 +units=m +no_defs
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 117 12
+expect 807919.14 1329535.33
+
+tolerance 0.05 m
+accept 117 10
+expect 808784.98 1107678.47
+
+tolerance 0.05 m
+accept 117 9
+expect 809334.18 996918.21
+
+tolerance 0.05 m
+accept 117 8
+expect 809939.3 886240.18
+
+tolerance 0.05 m
+accept 116.8465522 6.8784583
+expect 793704.63 762081.05
+
+tolerance 0.05 m
+accept 117 6
+expect 811253.3 665041.27
+
+tolerance 0.05 m
+accept 117 5
+expect 811930.35 554475.63
+
+tolerance 0.05 m
+accept 117 4
+expect 812599.58 443902.71
+
+tolerance 0.05 m
+accept 115 4
+expect 590521.15 442890.86
+
+tolerance 0.05 m
+accept 117 3
+expect 813245.13 333300.13
+
+tolerance 0.05 m
+accept 117 2
+expect 813851.07 222645.51
+
+tolerance 0.05 m
+accept 117.0 1.0
+expect 814401.38 111916.45
+
+tolerance 0.05 m
+accept 109.6858208 -0.0001733
+expect 0 0
+
+tolerance 0.05 m
+accept 123 6
+expect 1475669.28 673118.57
+
+tolerance 0.05 m
+accept 122 6
+expect 1364854.86 671146.25
+
+tolerance 0.05 m
+accept 121 6
+expect 1254086.17 669446.25
+
+tolerance 0.05 m
+accept 120.0 6.0
+expect 1143352.6 668002.07
+
+tolerance 0.05 m
+accept 119.0 6.0
+expect 1032643.31 666797.35
+
+tolerance 0.05 m
+accept 118.0 6.0
+expect 921947.29 665815.82
+
+tolerance 0.05 m
+accept 117.0 6.0
+expect 811253.3 665041.27
+
+tolerance 0.05 m
+accept 116.0 6.0
+expect 700549.97 664457.59
+
+tolerance 0.05 m
+accept 115.0 6.0
+expect 589825.71 664048.72
+
+tolerance 0.05 m
+accept 114 6
+expect 479068.802 663798.63
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +proj=somerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.99984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +ellps=GRS80 +units=m +no_defs +inv
+ +step +init=epsg:4742
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 807919.14 1329535.33
+expect 117 12
+
+tolerance 0.05 m
+accept 808784.98 1107678.47
+expect 117 10
+
+tolerance 0.05 m
+accept 809334.18 996918.21
+expect 117 9
+
+tolerance 0.05 m
+accept 809939.3 886240.18
+expect 117 8
+
+tolerance 0.05 m
+accept 793704.63 762081.05
+expect 116.8465522 6.8784583
+
+tolerance 0.05 m
+accept 811253.3 665041.27
+expect 117 6
+
+tolerance 0.05 m
+accept 811930.35 554475.63
+expect 117 5
+
+tolerance 0.05 m
+accept 812599.58 443902.71
+expect 117 4
+
+tolerance 0.05 m
+accept 590521.15 442890.86
+expect 115 4
+
+tolerance 0.05 m
+accept 813245.13 333300.13
+expect 117 3
+
+tolerance 0.05 m
+accept 813851.07 222645.51
+expect 117 2
+
+tolerance 0.05 m
+accept 814401.38 111916.45
+expect 117.0 1.0
+
+tolerance 0.05 m
+accept 0 0
+expect 109.6858208 -0.0001733
+
+tolerance 0.05 m
+accept 1475669.28 673118.57
+expect 123 6
+
+tolerance 0.05 m
+accept 1364854.86 671146.25
+expect 122 6
+
+tolerance 0.05 m
+accept 1254086.17 669446.25
+expect 121 6
+
+tolerance 0.05 m
+accept 1143352.6 668002.07
+expect 120.0 6.0
+
+tolerance 0.05 m
+accept 1032643.31 666797.35
+expect 119.0 6.0
+
+tolerance 0.05 m
+accept 921947.29 665815.82
+expect 118.0 6.0
+
+tolerance 0.05 m
+accept 811253.3 665041.27
+expect 117.0 6.0
+
+tolerance 0.05 m
+accept 700549.97 664457.59
+expect 116.0 6.0
+
+tolerance 0.05 m
+accept 589825.71 664048.72
+expect 115.0 6.0
+
+tolerance 0.05 m
+accept 479068.802 663798.63
+expect 114 6
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4742 +inv
+ +step +proj=somerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.99984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +ellps=GRS80 +units=m +no_defs
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 117 12
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 10
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 9
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 8
+roundtrip 1000
+
+tolerance 0.006 m
+accept 116.8465522 6.8784583
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 5
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 4
+roundtrip 1000
+
+tolerance 0.006 m
+accept 115 4
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 3
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 2
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117.0 1.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 109.6858208 -0.0001733
+roundtrip 1000
+
+tolerance 0.006 m
+accept 123 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 122 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 121 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 120.0 6.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 119.0 6.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 118.0 6.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117.0 6.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 116.0 6.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 115.0 6.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 114 6
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5105.1.json b/test/gigs/5105.1.json
deleted file mode 100644
index 48b5a2fe..00000000
--- a/test/gigs/5105.1.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-"coordinates": [
- [[117, 12], [807919.14, 1329535.33]],
- [[117, 10], [808784.98, 1107678.47]],
- [[117, 9], [809334.18, 996918.21]],
- [[117, 8], [809939.3, 886240.18]],
- [[116.8465522, 6.8784583], [793704.63, 762081.05]],
- [[117, 6], [811253.3, 665041.27]],
- [[117, 5], [811930.35, 554475.63]],
- [[117, 4], [812599.58, 443902.71]],
- [[115, 4], [590521.15, 442890.86]],
- [[117, 3], [813245.13, 333300.13]],
- [[117, 2], [813851.07, 222645.51]],
- [[117.0, 1.0], [814401.38, 111916.45]],
- [[109.6858208, -0.0001733], [0, 0]],
- [[123, 6], [1475669.28, 673118.57]],
- [[122, 6], [1364854.86, 671146.25]],
- [[121, 6], [1254086.17, 669446.25]], [[120.0, 6.0], [1143352.6, 668002.07]], [[119.0, 6.0], [1032643.31, 666797.35]], [[118.0, 6.0], [921947.29, 665815.82]], [[117.0, 6.0], [811253.3, 665041.27]], [[116.0, 6.0], [700549.97, 664457.59]], [[115.0, 6.0], [589825.71, 664048.72]],
- [[114, 6], [479068.802, 663798.63]]
-],
-"description": "Test 5105 (part 1), Oblique Mercator (variant B), v2-0_2011-06-28.",
-"projections": ["+init=epsg:4742",
- "+proj=somerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.99984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +ellps=GRS80 +units=m +no_defs"],
-"tests": [{"tolerances": [5.555555555555555e-07, 0.05], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}]
-}
diff --git a/test/gigs/5105.2.gie b/test/gigs/5105.2.gie
new file mode 100644
index 00000000..190c9176
--- /dev/null
+++ b/test/gigs/5105.2.gie
@@ -0,0 +1,168 @@
+--------------------------------------------------------------------------------
+
+Test 5105 (part 2), Oblique Mercator (variant B), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4237 +inv
+ +step +init=epsg:23700
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 16 48.5
+expect 424714.235 355124.6
+
+tolerance 0.05 m
+accept 17.2 48.0
+expect 512056.188 296756.716
+
+tolerance 0.05 m
+accept 17.5826505556 47.6361347222
+expect 539847.765 255701.086
+
+tolerance 0.05 m
+accept 19.0485716667 47.1443936111
+expect 650000 200000
+
+tolerance 0.05 m
+accept 19.2234294444 46.8756683333
+expect 663329.053 170142.318
+
+tolerance 0.05 m
+accept 20.1357405556 46.3703011111
+expect 733651.455 114532.099
+
+tolerance 0.05 m
+accept 21.4 45.7
+expect 833148.855 42191.482
+
+tolerance 0.05 m
+accept 22.3 49.3
+expect 886565.935 444656.613
+
+tolerance 0.05 m
+accept 21.2941986111 48.4899747222
+expect 815999.993 351999.998
+
+tolerance 0.05 m
+accept 19.2234294444 46.8756683333
+expect 663329.053 170142.318
+
+tolerance 0.05 m
+accept 17.6191536111 46.0687463889
+expect 539403.958 81440.103
+
+tolerance 0.05 m
+accept 16.36 45.5
+expect 439836.709 20816.456
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:23700 +inv
+ +step +init=epsg:4237
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 424714.235 355124.6
+expect 16 48.5
+
+tolerance 0.05 m
+accept 512056.188 296756.716
+expect 17.2 48.0
+
+tolerance 0.05 m
+accept 539847.765 255701.086
+expect 17.5826505556 47.6361347222
+
+tolerance 0.05 m
+accept 650000 200000
+expect 19.0485716667 47.1443936111
+
+tolerance 0.05 m
+accept 663329.053 170142.318
+expect 19.2234294444 46.8756683333
+
+tolerance 0.05 m
+accept 733651.455 114532.099
+expect 20.1357405556 46.3703011111
+
+tolerance 0.05 m
+accept 833148.855 42191.482
+expect 21.4 45.7
+
+tolerance 0.05 m
+accept 886565.935 444656.613
+expect 22.3 49.3
+
+tolerance 0.05 m
+accept 815999.993 351999.998
+expect 21.2941986111 48.4899747222
+
+tolerance 0.05 m
+accept 663329.053 170142.318
+expect 19.2234294444 46.8756683333
+
+tolerance 0.05 m
+accept 539403.958 81440.103
+expect 17.6191536111 46.0687463889
+
+tolerance 0.05 m
+accept 439836.709 20816.456
+expect 16.36 45.5
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4237 +inv
+ +step +init=epsg:23700
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 16 48.5
+roundtrip 1000
+
+tolerance 0.006 m
+accept 17.2 48.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 17.5826505556 47.6361347222
+roundtrip 1000
+
+tolerance 0.006 m
+accept 19.0485716667 47.1443936111
+roundtrip 1000
+
+tolerance 0.006 m
+accept 19.2234294444 46.8756683333
+roundtrip 1000
+
+tolerance 0.006 m
+accept 20.1357405556 46.3703011111
+roundtrip 1000
+
+tolerance 0.006 m
+accept 21.4 45.7
+roundtrip 1000
+
+tolerance 0.006 m
+accept 22.3 49.3
+roundtrip 1000
+
+tolerance 0.006 m
+accept 21.2941986111 48.4899747222
+roundtrip 1000
+
+tolerance 0.006 m
+accept 19.2234294444 46.8756683333
+roundtrip 1000
+
+tolerance 0.006 m
+accept 17.6191536111 46.0687463889
+roundtrip 1000
+
+tolerance 0.006 m
+accept 16.36 45.5
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5105.2.json b/test/gigs/5105.2.json
deleted file mode 100644
index d811108d..00000000
--- a/test/gigs/5105.2.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-"coordinates": [
- [[16, 48.5], [424714.235, 355124.6]],
- [[17.2, 48.0], [512056.188, 296756.716]],
- [[17.582650555556, 47.636134722222], [539847.765, 255701.086]],
- [[19.048571666667, 47.144393611111], [650000, 200000]],
- [[19.223429444445, 46.875668333333], [663329.053, 170142.318]],
- [[20.135740555556, 46.370301111111], [733651.455, 114532.099]],
- [[21.4, 45.7], [833148.855, 42191.482]],
- [[22.3, 49.3], [886565.935, 444656.613]],
- [[21.294198611111, 48.489974722222], [815999.993, 351999.998]],
- [[19.223429444445, 46.875668333333], [663329.053, 170142.318]],
- [[17.619153611111, 46.068746388889], [539403.958, 81440.103]],
- [[16.36, 45.5], [439836.709, 20816.456]]
-],
-
-"description": "Test 5105 (part 2), Oblique Mercator (variant B), v2-0_2011-06-28.",
-"projections": ["+init=epsg:4237", "+init=epsg:23700"],
-"tests": [
- {"tolerances": [5.555555555555555e-07, 0.05], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5106.gie b/test/gigs/5106.gie
new file mode 100644
index 00000000..6c5940ef
--- /dev/null
+++ b/test/gigs/5106.gie
@@ -0,0 +1,300 @@
+--------------------------------------------------------------------------------
+
+Test 5106, Hotine Oblique Mercator (variant A), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4742 +inv
+ +step +init=epsg:3376
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 117 12
+expect 807919.144 1329535.334
+
+tolerance 0.05 m
+accept 117 10
+expect 808784.981 1107678.473
+
+tolerance 0.05 m
+accept 117 9
+expect 809334.177 996918.212
+
+tolerance 0.05 m
+accept 117 8
+expect 809939.302 886240.183
+
+tolerance 0.05 m
+accept 116.846552222 6.87845833333
+expect 793704.631 762081.047
+
+tolerance 0.05 m
+accept 117 6
+expect 811253.303 665041.265
+
+tolerance 0.05 m
+accept 117 5
+expect 811930.345 554475.627
+
+tolerance 0.05 m
+accept 117 4
+expect 812599.582 443902.706
+
+tolerance 0.05 m
+accept 115 4
+expect 590521.147 442890.861
+
+tolerance 0.05 m
+accept 117 3
+expect 813245.133 333300.13
+
+tolerance 0.05 m
+accept 117 2
+expect 813851.067 222645.511
+
+tolerance 0.05 m
+accept 117 1
+expect 814401.375 111916.452
+
+tolerance 0.05 m
+accept 109.685820833 -0.000173333333333
+expect 0 0
+
+tolerance 0.05 m
+accept 123 6
+expect 1475669.281 673118.573
+
+tolerance 0.05 m
+accept 122 6
+expect 1364854.862 671146.254
+
+tolerance 0.05 m
+accept 121 6
+expect 1254086.173 669446.249
+
+tolerance 0.05 m
+accept 120 6
+expect 1143352.598 668002.074
+
+tolerance 0.05 m
+accept 119 6
+expect 1032643.312 666797.354
+
+tolerance 0.05 m
+accept 118 6
+expect 921947.286 665815.815
+
+tolerance 0.05 m
+accept 117 6
+expect 811253.303 665041.265
+
+tolerance 0.05 m
+accept 116 6
+expect 700549.965 664457.586
+
+tolerance 0.05 m
+accept 115 6
+expect 589825.706 664048.715
+
+tolerance 0.05 m
+accept 114 6
+expect 479068.802 663798.63
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:3376 +inv
+ +step +init=epsg:4742
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 807919.144 1329535.334
+expect 117 12
+
+tolerance 0.05 m
+accept 808784.981 1107678.473
+expect 117 10
+
+tolerance 0.05 m
+accept 809334.177 996918.212
+expect 117 9
+
+tolerance 0.05 m
+accept 809939.302 886240.183
+expect 117 8
+
+tolerance 0.05 m
+accept 793704.631 762081.047
+expect 116.846552222 6.87845833333
+
+tolerance 0.05 m
+accept 811253.303 665041.265
+expect 117 6
+
+tolerance 0.05 m
+accept 811930.345 554475.627
+expect 117 5
+
+tolerance 0.05 m
+accept 812599.582 443902.706
+expect 117 4
+
+tolerance 0.05 m
+accept 590521.147 442890.861
+expect 115 4
+
+tolerance 0.05 m
+accept 813245.133 333300.13
+expect 117 3
+
+tolerance 0.05 m
+accept 813851.067 222645.511
+expect 117 2
+
+tolerance 0.05 m
+accept 814401.375 111916.452
+expect 117 1
+
+tolerance 0.05 m
+accept 0 0
+expect 109.685820833 -0.000173333333333
+
+tolerance 0.05 m
+accept 1475669.281 673118.573
+expect 123 6
+
+tolerance 0.05 m
+accept 1364854.862 671146.254
+expect 122 6
+
+tolerance 0.05 m
+accept 1254086.173 669446.249
+expect 121 6
+
+tolerance 0.05 m
+accept 1143352.598 668002.074
+expect 120 6
+
+tolerance 0.05 m
+accept 1032643.312 666797.354
+expect 119 6
+
+tolerance 0.05 m
+accept 921947.286 665815.815
+expect 118 6
+
+tolerance 0.05 m
+accept 811253.303 665041.265
+expect 117 6
+
+tolerance 0.05 m
+accept 700549.965 664457.586
+expect 116 6
+
+tolerance 0.05 m
+accept 589825.706 664048.715
+expect 115 6
+
+tolerance 0.05 m
+accept 479068.802 663798.63
+expect 114 6
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4742 +inv
+ +step +init=epsg:3376
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 117 12
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 10
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 9
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 8
+roundtrip 1000
+
+tolerance 0.006 m
+accept 116.846552222 6.87845833333
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 5
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 4
+roundtrip 1000
+
+tolerance 0.006 m
+accept 115 4
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 3
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 2
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 1
+roundtrip 1000
+
+tolerance 0.006 m
+accept 109.685820833 -0.000173333333333
+roundtrip 1000
+
+tolerance 0.006 m
+accept 123 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 122 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 121 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 120 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 119 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 118 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 117 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 116 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 115 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 114 6
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5106.json b/test/gigs/5106.json
deleted file mode 100644
index cc741478..00000000
--- a/test/gigs/5106.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-"coordinates": [
- [[117, 12], [807919.144, 1329535.334]],
- [[117, 10], [808784.981, 1107678.473]],
- [[117, 9], [809334.177, 996918.212]],
- [[117, 8], [809939.302, 886240.183]],
- [[116.8465522222222222224906494, 6.878458333333333334122825262], [793704.631, 762081.047]],
- [[117, 6], [811253.303, 665041.265]],
- [[117, 5], [811930.345, 554475.627]],
- [[117, 4], [812599.582, 443902.706]],
- [[115, 4], [590521.147, 442890.861]],
- [[117, 3], [813245.133, 333300.13]],
- [[117, 2], [813851.067, 222645.511]],
- [[117, 1], [814401.375, 111916.452]],
- [[109.6858208333333333333530706, -0.0001733333333333333330866171056], [0, 0]],
- [[123, 6], [1475669.281, 673118.573]],
- [[122, 6], [1364854.862, 671146.254]],
- [[121, 6], [1254086.173, 669446.249]],
- [[120, 6], [1143352.598, 668002.074]],
- [[119, 6], [1032643.312, 666797.354]],
- [[118, 6], [921947.286, 665815.815]],
- [[117, 6], [811253.303, 665041.265]],
- [[116, 6], [700549.965, 664457.586]],
- [[115, 6], [589825.706, 664048.715]],
- [[114, 6], [479068.802, 663798.63]]
-],
-
-"description": "Test 5106, Hotine Oblique Mercator (variant A), v2-0_2011-06-28.",
-
-"projections": ["+init=epsg:4742", "+init=epsg:3376"],
-"tests": [
- {"tolerances": [5.555555555555555e-07, 0.05], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5107.gie b/test/gigs/5107.gie
new file mode 100644
index 00000000..f78e9c22
--- /dev/null
+++ b/test/gigs/5107.gie
@@ -0,0 +1,180 @@
+--------------------------------------------------------------------------------
+
+Test 5107, American Polyconic, v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4674 +inv
+ +step +proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept -54 0
+expect 5000000.0 10000000.0
+
+tolerance 0.05 m
+accept -45 6
+expect 5996378.70982 10671650.0559
+
+tolerance 0.05 m
+accept -45 0
+expect 6001875.41714 10000000.0
+
+tolerance 0.05 m
+accept -45 -6
+expect 5996378.70982 9328349.94408
+
+tolerance 0.05 m
+accept -41 -13
+expect 6409689.58688 8526306.26193
+
+tolerance 0.05 m
+accept -38 -20
+expect 6671808.91963 7707735.72988
+
+tolerance 0.05 m
+accept -37 -24
+expect 6725584.49173 7240461.99578
+
+tolerance 0.05 m
+accept -36 -30
+expect 6729619.73995 6543762.57644
+
+tolerance 0.05 m
+accept -57 -30
+expect 4710574.22344 6676097.81117
+
+tolerance 0.05 m
+accept -54 -29.3674766667
+expect 5000000.0 6750000.0
+
+tolerance 0.05 m
+accept -47 -27.5
+expect 5691318.14689 6937461.05067
+
+tolerance 0.05 m
+accept -37 -24
+expect 6725584.49173 7240461.99578
+
+tolerance 0.05 m
+accept -30 -22.5
+expect 7458947.70133 7313327.31691
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs +inv
+ +step +init=epsg:4674
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 5000000.0 10000000.0
+expect -54 0
+
+tolerance 0.05 m
+accept 5996378.70982 10671650.0559
+expect -45 6
+
+tolerance 0.05 m
+accept 6001875.41714 10000000.0
+expect -45 0
+
+tolerance 0.05 m
+accept 5996378.70982 9328349.94408
+expect -45 -6
+
+tolerance 0.05 m
+accept 6409689.58688 8526306.26193
+expect -41 -13
+
+tolerance 0.05 m
+accept 6671808.91963 7707735.72988
+expect -38 -20
+
+tolerance 0.05 m
+accept 6725584.49173 7240461.99578
+expect -37 -24
+
+tolerance 0.05 m
+accept 6729619.73995 6543762.57644
+expect -36 -30
+
+tolerance 0.05 m
+accept 4710574.22344 6676097.81117
+expect -57 -30
+
+tolerance 0.05 m
+accept 5000000.0 6750000.0
+expect -54 -29.3674766667
+
+tolerance 0.05 m
+accept 5691318.14689 6937461.05067
+expect -47 -27.5
+
+tolerance 0.05 m
+accept 6725584.49173 7240461.99578
+expect -37 -24
+
+tolerance 0.05 m
+accept 7458947.70133 7313327.31691
+expect -30 -22.5
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4674 +inv
+ +step +proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept -54 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -45 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept -45 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -45 -6
+roundtrip 1000
+
+tolerance 0.006 m
+accept -41 -13
+roundtrip 1000
+
+tolerance 0.006 m
+accept -38 -20
+roundtrip 1000
+
+tolerance 0.006 m
+accept -37 -24
+roundtrip 1000
+
+tolerance 0.006 m
+accept -36 -30
+roundtrip 1000
+
+tolerance 0.006 m
+accept -57 -30
+roundtrip 1000
+
+tolerance 0.006 m
+accept -54 -29.3674766667
+roundtrip 1000
+
+tolerance 0.006 m
+accept -47 -27.5
+roundtrip 1000
+
+tolerance 0.006 m
+accept -37 -24
+roundtrip 1000
+
+tolerance 0.006 m
+accept -30 -22.5
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5107.json b/test/gigs/5107.json
deleted file mode 100644
index 58440028..00000000
--- a/test/gigs/5107.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-"projections": [
- "+init=epsg:4674",
- "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs "
-],
-"tests": [
- {"type": "conversion", "tolerances": [5.555555555555555e-07, 0.05]},
- {"type": "roundtrip", "times": 1000, "tolerances": [5.555555555555556e-08, 0.006]}
- ],
-"coordinates": [
- [[-54, 0], [5000000.0, 10000000.0]],
- [[-45, 6], [5996378.70981775, 10671650.0559245]],
- [[-45, 0], [6001875.41713946, 10000000.0]],
- [[-45, -6], [5996378.70981775, 9328349.94407546]],
- [[-41, -13], [6409689.58687533, 8526306.26193173]],
- [[-38, -20], [6671808.91962898, 7707735.72987798]],
- [[-37, -24], [6725584.49172815, 7240461.99578364]],
- [[-36, -30], [6729619.73995286, 6543762.57643596]],
- [[-57, -30], [4710574.22343996, 6676097.81116979]],
- [[-54, -29.3674766667], [5000000.0, 6750000.0]],
- [[-47, -27.5], [5691318.14688622, 6937461.05067494]],
- [[-37, -24], [6725584.49172815, 7240461.99578364]],
- [[-30, 22.5], [7458947.7013321, 7313327.31691123]]
-],
-"description": "Test 5107, American Polyconic, v2-0_2011-06-28."
-}
diff --git a/test/gigs/5108.gie.failing b/test/gigs/5108.gie.failing
new file mode 100644
index 00000000..6a979118
--- /dev/null
+++ b/test/gigs/5108.gie.failing
@@ -0,0 +1,235 @@
+--------------------------------------------------------------------------------
+
+Test 5108, Cassini-Soldner, v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+# GDM2000
+<4742> +proj=longlat +ellps=GRS80 +no_defs <>
+
+# GDM2000 / Johor Grid
+<3377> +proj=cass +lat_0=2.121679744444445 +lon_0=103.4279362361111 +x_0=-14810.562 +y_0=8758.32 +ellps=GRS80 +units=m +no_defs <>
+
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4742 +inv
+ +step +init=epsg:3377
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 106 10
+expect 267186.017 881108.902
+
+tolerance 0.05 m
+accept 106 9
+expect 268006.024 770398.186
+
+tolerance 0.05 m
+accept 106 8
+expect 268740.351 659692.254
+
+tolerance 0.05 m
+accept 106 7
+expect 269388.786 548990.588
+
+tolerance 0.05 m
+accept 106 6
+expect 269951.141 438292.666
+
+tolerance 0.05 m
+accept 106 5
+expect 270427.255 327597.962
+
+tolerance 0.05 m
+accept 106 4
+expect 270816.99 216905.945
+
+tolerance 0.05 m
+accept 106 3
+expect 271120.234 106216.081
+
+tolerance 0.05 m
+accept 103.561065778 2.0424676812
+expect 0 0
+
+tolerance 0.05 m
+accept 103.64025984 1.82776484381
+expect 8813.252 -23740.095
+
+tolerance 0.05 m
+accept 106 1
+expect 271466.923 -115159.332
+
+tolerance 0.05 m
+accept 109 5
+expect 603116.703 329668.599
+
+tolerance 0.05 m
+accept 108 5
+expect 492221.308 328807.336
+
+tolerance 0.05 m
+accept 107 5
+expect 381324.74 328117.472
+
+tolerance 0.05 m
+accept 106 5
+expect 270427.255 327597.962
+
+tolerance 0.05 m
+accept 105 5
+expect 159529.111 327248.012
+
+tolerance 0.05 m
+accept 104 5
+expect 48630.563 327067.097
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:3377 +inv
+ +step +init=epsg:4742
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 267186.017 881108.902
+expect 106 10
+
+tolerance 0.05 m
+accept 268006.024 770398.186
+expect 106 9
+
+tolerance 0.05 m
+accept 268740.351 659692.254
+expect 106 8
+
+tolerance 0.05 m
+accept 269388.786 548990.588
+expect 106 7
+
+tolerance 0.05 m
+accept 269951.141 438292.666
+expect 106 6
+
+tolerance 0.05 m
+accept 270427.255 327597.962
+expect 106 5
+
+tolerance 0.05 m
+accept 270816.99 216905.945
+expect 106 4
+
+tolerance 0.05 m
+accept 271120.234 106216.081
+expect 106 3
+
+tolerance 0.05 m
+accept 0 0
+expect 103.561065778 2.0424676812
+
+tolerance 0.05 m
+accept 8813.252 -23740.095
+expect 103.64025984 1.82776484381
+
+tolerance 0.05 m
+accept 271466.923 -115159.332
+expect 106 1
+
+tolerance 0.05 m
+accept 603116.703 329668.599
+expect 109 5
+
+tolerance 0.05 m
+accept 492221.308 328807.336
+expect 108 5
+
+tolerance 0.05 m
+accept 381324.74 328117.472
+expect 107 5
+
+tolerance 0.05 m
+accept 270427.255 327597.962
+expect 106 5
+
+tolerance 0.05 m
+accept 159529.111 327248.012
+expect 105 5
+
+tolerance 0.05 m
+accept 48630.563 327067.097
+expect 104 5
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4742 +inv
+ +step +init=epsg:3377
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 106 10
+roundtrip 1000
+
+tolerance 0.006 m
+accept 106 9
+roundtrip 1000
+
+tolerance 0.006 m
+accept 106 8
+roundtrip 1000
+
+tolerance 0.006 m
+accept 106 7
+roundtrip 1000
+
+tolerance 0.006 m
+accept 106 6
+roundtrip 1000
+
+tolerance 0.006 m
+accept 106 5
+roundtrip 1000
+
+tolerance 0.006 m
+accept 106 4
+roundtrip 1000
+
+tolerance 0.006 m
+accept 106 3
+roundtrip 1000
+
+tolerance 0.006 m
+accept 103.561065778 2.0424676812
+roundtrip 1000
+
+tolerance 0.006 m
+accept 103.64025984 1.82776484381
+roundtrip 1000
+
+tolerance 0.006 m
+accept 106 1
+roundtrip 1000
+
+tolerance 0.006 m
+accept 109 5
+roundtrip 1000
+
+tolerance 0.006 m
+accept 108 5
+roundtrip 1000
+
+tolerance 0.006 m
+accept 107 5
+roundtrip 1000
+
+tolerance 0.006 m
+accept 106 5
+roundtrip 1000
+
+tolerance 0.006 m
+accept 105 5
+roundtrip 1000
+
+tolerance 0.006 m
+accept 104 5
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5108.json b/test/gigs/5108.json
deleted file mode 100644
index 2ff48e23..00000000
--- a/test/gigs/5108.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-"coordinates": [
- [[106, 10], [267186.017, 881108.902]],
- [[106, 9], [268006.024, 770398.186]],
- [[106, 8], [268740.351, 659692.254]],
- [[106, 7], [269388.786, 548990.588]],
- [[106, 6], [269951.141, 438292.666]],
- [[106, 5], [270427.255, 327597.962]],
- [[106, 4], [270816.99, 216905.945]],
- [[106, 3], [271120.234, 106216.081]],
- [[103.561065778024, 2.04246768119792], [0, 0]],
- [[103.640259839629, 1.8277648438075], [8813.252, -23740.095]],
- [[106, 1], [271466.923, -115159.332]],
- [[109, 5], [603116.703, 329668.599]],
- [[108, 5], [492221.308, 328807.336]],
- [[107, 5], [381324.74, 328117.472]],
- [[106, 5], [270427.255, 327597.962]],
- [[105, 5], [159529.111, 327248.012]],
- [[104, 5], [48630.563, 327067.097]]
-],
-
-"description": "Test 5108, Cassini-Soldner, v2-0_2011-06-28.",
-"projections": ["+init=epsg:4742", "+init=epsg:3377"],
-"tests": [{"tolerances": [5.555555555555555e-07, 0.05], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}]
-}
diff --git a/test/gigs/5109.gie b/test/gigs/5109.gie
new file mode 100644
index 00000000..a104e66f
--- /dev/null
+++ b/test/gigs/5109.gie
@@ -0,0 +1,180 @@
+--------------------------------------------------------------------------------
+
+Test 5109, Albers Equal Area, v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4283 +inv
+ +step +init=epsg:3577
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 132 0
+expect 0 0
+
+tolerance 0.05 m
+accept 132 -27
+expect 0 -2926820.89
+
+tolerance 0.05 m
+accept 140 0
+expect 966973.98 -30285.6
+
+tolerance 0.05 m
+accept 140 -20
+expect 832799.36 -2170181.93
+
+tolerance 0.05 m
+accept 140 -40
+expect 693250.21 -4395794.49
+
+tolerance 0.05 m
+accept 140 -60
+expect 567313.29 -6404311.16
+
+tolerance 0.05 m
+accept 140 -80
+expect 486878.674 -7687130.029
+
+tolerance 0.05 m
+accept 120 -60
+expect -850274.75 -6426505.13
+
+tolerance 0.05 m
+accept 130 -60
+expect -141915.26 -6387653.78
+
+tolerance 0.05 m
+accept 140 -60
+expect 567313.29 -6404311.16
+
+tolerance 0.05 m
+accept 150 -60
+expect 1273067.747 -6476375.276
+
+tolerance 0.05 m
+accept 160 -60
+expect 1971026.26 -6603404.82
+
+tolerance 0.05 m
+accept 170 -60
+expect 2656914.716 -6784621.89
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:3577 +inv
+ +step +init=epsg:4283
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 0 0
+expect 132 0
+
+tolerance 0.05 m
+accept 0 -2926820.89
+expect 132 -27
+
+tolerance 0.05 m
+accept 966973.98 -30285.6
+expect 140 0
+
+tolerance 0.05 m
+accept 832799.36 -2170181.93
+expect 140 -20
+
+tolerance 0.05 m
+accept 693250.21 -4395794.49
+expect 140 -40
+
+tolerance 0.05 m
+accept 567313.29 -6404311.16
+expect 140 -60
+
+tolerance 0.05 m
+accept 486878.674 -7687130.029
+expect 140 -80
+
+tolerance 0.05 m
+accept -850274.75 -6426505.13
+expect 120 -60
+
+tolerance 0.05 m
+accept -141915.26 -6387653.78
+expect 130 -60
+
+tolerance 0.05 m
+accept 567313.29 -6404311.16
+expect 140 -60
+
+tolerance 0.05 m
+accept 1273067.747 -6476375.276
+expect 150 -60
+
+tolerance 0.05 m
+accept 1971026.26 -6603404.82
+expect 160 -60
+
+tolerance 0.05 m
+accept 2656914.716 -6784621.89
+expect 170 -60
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4283 +inv
+ +step +init=epsg:3577
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 132 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 132 -27
+roundtrip 1000
+
+tolerance 0.006 m
+accept 140 0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 140 -20
+roundtrip 1000
+
+tolerance 0.006 m
+accept 140 -40
+roundtrip 1000
+
+tolerance 0.006 m
+accept 140 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 140 -80
+roundtrip 1000
+
+tolerance 0.006 m
+accept 120 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 130 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 140 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 150 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 160 -60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 170 -60
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5109.json b/test/gigs/5109.json
deleted file mode 100644
index 62614164..00000000
--- a/test/gigs/5109.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-"coordinates": [
- [[132, 0], [0, 0]],
- [[132, -27], [0, -2926820.89]],
- [[140, 0], [966973.98, -30285.6]],
- [[140, -20], [832799.36, -2170181.93]],
- [[140, -40], [693250.21, -4395794.49]],
- [[140, -60], [567313.29, -6404311.16]],
- [[140, -80], [486878.674, -7687130.029]],
- [[120, -60], [-850274.75, -6426505.13]],
- [[130, -60], [-141915.26, -6387653.78]],
- [[140, -60], [567313.29, -6404311.16]],
- [[150, -60], [1273067.747, -6476375.276]],
- [[160, -60], [1971026.26, -6603404.82]],
- [[170, -60], [2656914.716, -6784621.89]]
-],
-"description": "Test 5109, Albers Equal Area, v2-0_2011-06-28.",
-"projections": ["+init=epsg:4283", "+init=epsg:3577"],
-"tests": [
- {"tolerances": [5.555555555555555e-07, 0.05], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5110.gie.failing b/test/gigs/5110.gie.failing
new file mode 100644
index 00000000..2d26d1ab
--- /dev/null
+++ b/test/gigs/5110.gie.failing
@@ -0,0 +1,164 @@
+--------------------------------------------------------------------------------
+
+Test 5110, Lambert Azimuthal Equal Area, v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+# ETRS89
+<4258> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
+
+# ETRS89 / LAEA Europe
+<3035> +proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000
+ +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <>
+
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4258 +inv
+ +step +init=epsg:3035
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 5 70
+expect 4127824.65822 5214090.649
+
+tolerance 0.05 m
+accept 5 60
+expect 4041548.13 4109791.66
+
+tolerance 0.05 m
+accept 5 50
+expect 3962799.45 2999718.853
+
+tolerance 0.05 m
+accept 5 40
+expect 3892127.02 1892578.962
+
+tolerance 0.05 m
+accept 5 30
+expect 3830117.9 796781.677
+
+tolerance 0.05 m
+accept 10 52
+expect 4321000.0 3210000.0
+
+tolerance 0.05 m
+accept 0.0 50.0
+expect 3606514.43 3036305.967
+
+tolerance 0.05 m
+accept 3.0 50.0
+expect 3819948.288 3011432.894
+
+tolerance 0.05 m
+accept 5.0 50.0
+expect 3962799.451 2999718.853
+
+tolerance 0.05 m
+accept 8.0 50.0
+expect 4177612.521 2989464.315
+
+tolerance 0.05 m
+accept 10.0 50.0
+expect 4321000.0 2987510.567
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:3035 +inv
+ +step +init=epsg:4258
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 4127824.65822 5214090.649
+expect 5 70
+
+tolerance 0.05 m
+accept 4041548.13 4109791.66
+expect 5 60
+
+tolerance 0.05 m
+accept 3962799.45 2999718.853
+expect 5 50
+
+tolerance 0.05 m
+accept 3892127.02 1892578.962
+expect 5 40
+
+tolerance 0.05 m
+accept 3830117.9 796781.677
+expect 5 30
+
+tolerance 0.05 m
+accept 4321000.0 3210000.0
+expect 10 52
+
+tolerance 0.05 m
+accept 3606514.43 3036305.967
+expect 0.0 50.0
+
+tolerance 0.05 m
+accept 3819948.288 3011432.894
+expect 3.0 50.0
+
+tolerance 0.05 m
+accept 3962799.451 2999718.853
+expect 5.0 50.0
+
+tolerance 0.05 m
+accept 4177612.521 2989464.315
+expect 8.0 50.0
+
+tolerance 0.05 m
+accept 4321000.0 2987510.567
+expect 10.0 50.0
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4258 +inv
+ +step +init=epsg:3035
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 5 70
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 60
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 50
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 40
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5 30
+roundtrip 1000
+
+tolerance 0.006 m
+accept 10 52
+roundtrip 1000
+
+tolerance 0.006 m
+accept 0.0 50.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3.0 50.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 5.0 50.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 8.0 50.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 10.0 50.0
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5110.json b/test/gigs/5110.json
deleted file mode 100644
index e9812ecf..00000000
--- a/test/gigs/5110.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-"coordinates": [
- [[5, 70], [4127824.65822105, 5214090.649]],
- [[5, 60], [4041548.13, 4109791.66]],
- [[5, 50], [3962799.45, 2999718.853]],
- [[5, 40], [3892127.02, 1892578.962]],
- [[5, 30], [3830117.9, 796781.677]],
- [[10, 52], [4321000.0, 3210000.0]], [[0.0, 50.0], [3606514.43, 3036305.967]], [[3.0, 50.0], [3819948.288, 3011432.894]], [[5.0, 50.0], [3962799.451, 2999718.853]], [[8.0, 50.0], [4177612.521, 2989464.315]], [[10.0, 50.0], [4321000.0, 2987510.567]]], "description": "Test 5110, Lambert Azimuthal Equal Area, v2-0_2011-06-28.",
-"projections": ["+init=epsg:4258", "+init=epsg:3035"],
-"tests": [{"tolerances": [5.555555555555555e-07, 0.05], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}]
-}
diff --git a/test/gigs/5111.1.gie b/test/gigs/5111.1.gie
new file mode 100644
index 00000000..335e1d68
--- /dev/null
+++ b/test/gigs/5111.1.gie
@@ -0,0 +1,450 @@
+--------------------------------------------------------------------------------
+
+Test 5111 (part 1), Mercator (variant A), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+# Batavia
+<4211> +proj=longlat +ellps=bessel +towgs84=-377,681,-50,0,0,0,0 +no_defs <>
+# Batavia / NEIEZ
+<3001> +proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-377,681,-50,0,0,0,0 +units=m +no_defs <>
+
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline towgs84=0,0,0
+ +step +init=epsg:4211 +inv
+ +step +init=epsg:3001
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 100.0876483 77.6534822
+expect 2800000.0 15000000.0
+
+tolerance 0.05 m
+accept 100.0876483 73.1442856
+expect 2800000.0 13000000.0
+
+tolerance 0.05 m
+accept 100.0876483 67.0518325
+expect 2800000.0 11000000.0
+
+tolerance 0.05 m
+accept 100.0876483 58.9140458
+expect 2800000.0 9000000.0
+
+tolerance 0.05 m
+accept 100.0876483 48.2638981
+expect 2800000.0 7000000.0
+
+tolerance 0.05 m
+accept 100.0876483 34.8029044
+expect 2800000.0 5000000.0
+
+tolerance 0.05 m
+accept 100.0876483 18.7048581
+expect 2800000.0 3000000.0
+
+tolerance 0.05 m
+accept 100.0876483 0.9071392
+expect 2800000.0 1000000.0
+
+tolerance 0.05 m
+accept 110.0 0.0
+expect 3900000.0 900000.0
+
+tolerance 0.05 m
+accept 100.0876483 -0.9071392
+expect 2800000.0 800000.0
+
+tolerance 0.05 m
+accept 100.0876483 -1.8140483
+expect 2800000.0 700000.0
+
+tolerance 0.05 m
+accept 100.0876483 -2.0
+expect 2800000.0 679490.65
+
+tolerance 0.05 m
+accept 100.0876483 -3.6262553
+expect 2800000.0 500000.0
+
+tolerance 0.05 m
+accept 100.0876483 -4.531095
+expect 2800000.0 400000.0
+
+tolerance 0.05 m
+accept 100.0876483 -5.4347892
+expect 2800000.0 300000.0
+
+tolerance 0.05 m
+accept 100.0876483 -6.3371111
+expect 2800000.0 200000.0
+
+tolerance 0.05 m
+accept 100.0876483 -7.2378372
+expect 2800000.0 100000.0
+
+tolerance 0.05 m
+accept 74.8562083 -8.136745
+expect 0.0 0.0
+
+tolerance 0.05 m
+accept -71.0 -2.0
+expect 23764105.84 679490.65
+
+tolerance 0.05 m
+accept -90.0 -2.0
+expect 21655625.33 679490.65
+
+tolerance 0.05 m
+accept -120.0 -2.0
+expect 18326445.58 679490.65
+
+tolerance 0.05 m
+accept -150.0 -2.0
+expect 14997265.83 679490.65
+
+tolerance 0.05 m
+accept 180.0 -2.0
+expect 11668086.08 679490.65
+
+tolerance 0.05 m
+accept 150.0 -2.0
+expect 8338906.33 679490.65
+
+tolerance 0.05 m
+accept 120.0 -2.0
+expect 5009726.58 679490.65
+
+tolerance 0.05 m
+accept 110.0 -2.0
+expect 3900000.0 679490.65
+
+tolerance 0.05 m
+accept 106.8077194 -2.0
+expect 3545744.14 679490.65
+
+tolerance 0.05 m
+accept 100.0876483 -2.0
+expect 2800000.0 679490.65
+
+tolerance 0.05 m
+accept 90.0 -2.0
+expect 1680546.83 679490.65
+
+tolerance 0.05 m
+accept 60.0 -2.0
+expect -1648632.92 679490.65
+
+tolerance 0.05 m
+accept 30.0 -2.0
+expect -4977812.67 679490.65
+
+tolerance 0.05 m
+accept 0.0 -2.0
+expect -8306992.42 679490.65
+
+tolerance 0.05 m
+accept -30.0 -2.0
+expect -11636172.17 679490.65
+
+tolerance 0.05 m
+accept -60.0 -2.0
+expect -14965351.92 679490.65
+
+tolerance 0.05 m
+accept -69.0 -2.0
+expect -15964105.84 679490.65
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline towgs84=0,0,0
+ +step +init=epsg:3001 +inv
+ +step +init=epsg:4211
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 2800000.0 15000000.0
+expect 100.0876483 77.6534822
+
+tolerance 0.05 m
+accept 2800000.0 13000000.0
+expect 100.0876483 73.1442856
+
+tolerance 0.05 m
+accept 2800000.0 11000000.0
+expect 100.0876483 67.0518325
+
+tolerance 0.05 m
+accept 2800000.0 9000000.0
+expect 100.0876483 58.9140458
+
+tolerance 0.05 m
+accept 2800000.0 7000000.0
+expect 100.0876483 48.2638981
+
+tolerance 0.05 m
+accept 2800000.0 5000000.0
+expect 100.0876483 34.8029044
+
+tolerance 0.05 m
+accept 2800000.0 3000000.0
+expect 100.0876483 18.7048581
+
+tolerance 0.05 m
+accept 2800000.0 1000000.0
+expect 100.0876483 0.9071392
+
+tolerance 0.05 m
+accept 3900000.0 900000.0
+expect 110.0 0.0
+
+tolerance 0.05 m
+accept 2800000.0 800000.0
+expect 100.0876483 -0.9071392
+
+tolerance 0.05 m
+accept 2800000.0 700000.0
+expect 100.0876483 -1.8140483
+
+tolerance 0.05 m
+accept 2800000.0 679490.65
+expect 100.0876483 -2.0
+
+tolerance 0.05 m
+accept 2800000.0 500000.0
+expect 100.0876483 -3.6262553
+
+tolerance 0.05 m
+accept 2800000.0 400000.0
+expect 100.0876483 -4.531095
+
+tolerance 0.05 m
+accept 2800000.0 300000.0
+expect 100.0876483 -5.4347892
+
+tolerance 0.05 m
+accept 2800000.0 200000.0
+expect 100.0876483 -6.3371111
+
+tolerance 0.05 m
+accept 2800000.0 100000.0
+expect 100.0876483 -7.2378372
+
+tolerance 0.05 m
+accept 0.0 0.0
+expect 74.8562083 -8.136745
+
+tolerance 0.05 m
+accept 23764105.84 679490.65
+expect -71.0 -2.0
+
+tolerance 0.05 m
+accept 21655625.33 679490.65
+expect -90.0 -2.0
+
+tolerance 0.05 m
+accept 18326445.58 679490.65
+expect -120.0 -2.0
+
+tolerance 0.05 m
+accept 14997265.83 679490.65
+expect -150.0 -2.0
+
+tolerance 0.05 m
+accept 11668086.08 679490.65
+expect 180.0 -2.0
+
+tolerance 0.05 m
+accept 8338906.33 679490.65
+expect 150.0 -2.0
+
+tolerance 0.05 m
+accept 5009726.58 679490.65
+expect 120.0 -2.0
+
+tolerance 0.05 m
+accept 3900000.0 679490.65
+expect 110.0 -2.0
+
+tolerance 0.05 m
+accept 3545744.14 679490.65
+expect 106.8077194 -2.0
+
+tolerance 0.05 m
+accept 2800000.0 679490.65
+expect 100.0876483 -2.0
+
+tolerance 0.05 m
+accept 1680546.83 679490.65
+expect 90.0 -2.0
+
+tolerance 0.05 m
+accept -1648632.92 679490.65
+expect 60.0 -2.0
+
+tolerance 0.05 m
+accept -4977812.67 679490.65
+expect 30.0 -2.0
+
+tolerance 0.05 m
+accept -8306992.42 679490.65
+expect 0.0 -2.0
+
+tolerance 0.05 m
+accept -11636172.17 679490.65
+expect -30.0 -2.0
+
+tolerance 0.05 m
+accept -14965351.92 679490.65
+expect -60.0 -2.0
+
+tolerance 0.05 m
+accept -15964105.84 679490.65
+expect -69.0 -2.0
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline towgs84=0,0,0
+ +step +init=epsg:4211 +inv
+ +step +init=epsg:3001
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 100.0876483 77.6534822
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 73.1442856
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 67.0518325
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 58.9140458
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 48.2638981
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 34.8029044
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 18.7048581
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 0.9071392
+roundtrip 1000
+
+tolerance 0.006 m
+accept 110.0 0.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 -0.9071392
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 -1.8140483
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 -3.6262553
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 -4.531095
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 -5.4347892
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 -6.3371111
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 -7.2378372
+roundtrip 1000
+
+tolerance 0.006 m
+accept 74.8562083 -8.136745
+roundtrip 1000
+
+tolerance 0.006 m
+accept -71.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -90.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -120.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -150.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 180.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 150.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 120.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 110.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 106.8077194 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 100.0876483 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 90.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 60.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 30.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 0.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -30.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -60.0 -2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -69.0 -2.0
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5111.1.json b/test/gigs/5111.1.json
deleted file mode 100644
index 25ca8572..00000000
--- a/test/gigs/5111.1.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
-"coordinates": [
- [[100.0876483, 77.6534822], [2800000.0, 15000000.0]],
- [[100.0876483, 73.1442856], [2800000.0, 13000000.0]],
- [[100.0876483, 67.0518325], [2800000.0, 11000000.0]],
- [[100.0876483, 58.9140458], [2800000.0, 9000000.0]],
- [[100.0876483, 48.2638981], [2800000.0, 7000000.0]],
- [[100.0876483, 34.8029044], [2800000.0, 5000000.0]],
- [[100.0876483, 18.7048581], [2800000.0, 3000000.0]],
- [[100.0876483, 0.9071392], [2800000.0, 1000000.0]],
- [[110.0, 0.0], [3900000.0, 900000.0]],
- [[100.0876483, -0.9071392], [2800000.0, 800000.0]],
- [[100.0876483, -1.8140483], [2800000.0, 700000.0]],
- [[100.0876483, -2.0], [2800000.0, 679490.65]],
- [[100.0876483, -3.6262553], [2800000.0, 500000.0]],
- [[100.0876483, -4.531095], [2800000.0, 400000.0]],
- [[100.0876483, -5.4347892], [2800000.0, 300000.0]],
- [[100.0876483, -6.3371111], [2800000.0, 200000.0]],
- [[100.0876483, -7.2378372], [2800000.0, 100000.0]],
- [[74.8562083, -8.136745], [0.0, 0.0]],
- [[-71.0, -2.0], [23764105.84, 679490.65]],
- [[-90.0, -2.0], [21655625.33, 679490.65]],
- [[-120.0, -2.0], [18326445.58, 679490.65]],
- [[-150.0, -2.0], [14997265.83, 679490.65]],
- [[180.0, -2.0], [11668086.08, 679490.65]],
- [[150.0, -2.0], [8338906.33, 679490.65]],
- [[120.0, -2.0], [5009726.58, 679490.65]],
- [[110.0, -2.0], [3900000.0, 679490.65]],
- [[106.8077194, -2.0], [3545744.14, 679490.65]],
- [[100.0876483, -2.0], [2800000.0, 679490.65]],
- [[90.0, -2.0], [1680546.83, 679490.65]],
- [[60.0, -2.0], [-1648632.92, 679490.65]],
- [[30.0, -2.0], [-4977812.67, 679490.65]],
- [[0.0, -2.0], [-8306992.42, 679490.65]],
- [[-30.0, -2.0], [-11636172.17, 679490.65]],
- [[-60.0, -2.0], [-14965351.92, 679490.65]],
- [[-69.0, -2.0], [-15964105.84, 679490.65]]
-],
-"description": "Test 5111 (part 1), Mercator (variant A), v2-0_2011-06-28.",
-"projections": ["+init=epsg:4211", "+init=epsg:3001"],
-"tests": [
- {"tolerances": [5.555555555555555e-07, 0.05], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5111.2.gie.failing b/test/gigs/5111.2.gie.failing
new file mode 100644
index 00000000..dfa6bca2
--- /dev/null
+++ b/test/gigs/5111.2.gie.failing
@@ -0,0 +1,444 @@
+--------------------------------------------------------------------------------
+
+Test 5111 (part 2), Mercator (variant A), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4813 +inv
+ +step +proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept -6.7200711 77.6534822
+expect 2800000.0 15000000.0
+
+tolerance 0.05 m
+accept -6.7200711 73.1442856
+expect 2800000.0 13000000.0
+
+tolerance 0.05 m
+accept -6.7200711 67.0518325
+expect 2800000.0 11000000.0
+
+tolerance 0.05 m
+accept -6.7200711 58.9140458
+expect 2800000.0 9000000.0
+
+tolerance 0.05 m
+accept -6.7200711 48.2638981
+expect 2800000.0 7000000.0
+
+tolerance 0.05 m
+accept -6.7200711 34.8029044
+expect 2800000.0 5000000.0
+
+tolerance 0.05 m
+accept -6.7200711 18.7048581
+expect 2800000.0 3000000.0
+
+tolerance 0.05 m
+accept -6.7200711 0.9071392
+expect 2800000.0 1000000.0
+
+tolerance 0.05 m
+accept 3.1922806 0.0
+expect 3900000.0 900000.0
+
+tolerance 0.05 m
+accept -6.7200711 0.9071392
+expect 2800000.0 800000.0
+
+tolerance 0.05 m
+accept -6.7200711 1.8140483
+expect 2800000.0 700000.0
+
+tolerance 0.05 m
+accept -6.7200711 2.0
+expect 2800000.0 679490.65
+
+tolerance 0.05 m
+accept -6.7200711 3.6262553
+expect 2800000.0 500000.0
+
+tolerance 0.05 m
+accept -6.7200711 4.531095
+expect 2800000.0 400000.0
+
+tolerance 0.05 m
+accept -6.7200711 5.4347892
+expect 2800000.0 300000.0
+
+tolerance 0.05 m
+accept -6.7200711 6.3371111
+expect 2800000.0 200000.0
+
+tolerance 0.05 m
+accept -6.7200711 7.2378372
+expect 2800000.0 100000.0
+
+tolerance 0.05 m
+accept -31.9515111 8.136745
+expect 0.0 0.0
+
+tolerance 0.05 m
+accept -177.8077194 2.0
+expect 23764105.84 679490.65
+
+tolerance 0.05 m
+accept 163.1922806 2.0
+expect 21655625.33 679490.65
+
+tolerance 0.05 m
+accept 133.1922806 2.0
+expect 18326445.58 679490.65
+
+tolerance 0.05 m
+accept 103.1922806 2.0
+expect 14997265.83 679490.65
+
+tolerance 0.05 m
+accept 73.1922806 2.0
+expect 11668086.08 679490.65
+
+tolerance 0.05 m
+accept 43.1922806 2.0
+expect 8338906.33 679490.65
+
+tolerance 0.05 m
+accept 13.1922806 2.0
+expect 5009726.58 679490.65
+
+tolerance 0.05 m
+accept 3.1922806 2.0
+expect 3900000.0 679490.65
+
+tolerance 0.05 m
+accept 0.0 2.0
+expect 3545744.14 679490.65
+
+tolerance 0.05 m
+accept -6.7200711 2.0
+expect 2800000.0 679490.65
+
+tolerance 0.05 m
+accept -16.8077194 2.0
+expect 1680546.83 679490.65
+
+tolerance 0.05 m
+accept -46.8077194 2.0
+expect -1648632.92 679490.65
+
+tolerance 0.05 m
+accept -76.8077194 2.0
+expect -4977812.67 679490.65
+
+tolerance 0.05 m
+accept -106.8077194 2.0
+expect -8306992.42 679490.65
+
+tolerance 0.05 m
+accept -136.8077194 2.0
+expect -11636172.17 679490.65
+
+tolerance 0.05 m
+accept -166.8077194 2.0
+expect -14965351.92 679490.65
+
+tolerance 0.05 m
+accept -175.8077194 2.0
+expect -15964105.84 679490.65
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs +inv
+ +step +init=epsg:4813
+--------------------------------------------------------------------------------
+tolerance 0.05 m
+accept 2800000.0 15000000.0
+expect -6.7200711 77.6534822
+
+tolerance 0.05 m
+accept 2800000.0 13000000.0
+expect -6.7200711 73.1442856
+
+tolerance 0.05 m
+accept 2800000.0 11000000.0
+expect -6.7200711 67.0518325
+
+tolerance 0.05 m
+accept 2800000.0 9000000.0
+expect -6.7200711 58.9140458
+
+tolerance 0.05 m
+accept 2800000.0 7000000.0
+expect -6.7200711 48.2638981
+
+tolerance 0.05 m
+accept 2800000.0 5000000.0
+expect -6.7200711 34.8029044
+
+tolerance 0.05 m
+accept 2800000.0 3000000.0
+expect -6.7200711 18.7048581
+
+tolerance 0.05 m
+accept 2800000.0 1000000.0
+expect -6.7200711 0.9071392
+
+tolerance 0.05 m
+accept 3900000.0 900000.0
+expect 3.1922806 0.0
+
+tolerance 0.05 m
+accept 2800000.0 800000.0
+expect -6.7200711 0.9071392
+
+tolerance 0.05 m
+accept 2800000.0 700000.0
+expect -6.7200711 1.8140483
+
+tolerance 0.05 m
+accept 2800000.0 679490.65
+expect -6.7200711 2.0
+
+tolerance 0.05 m
+accept 2800000.0 500000.0
+expect -6.7200711 3.6262553
+
+tolerance 0.05 m
+accept 2800000.0 400000.0
+expect -6.7200711 4.531095
+
+tolerance 0.05 m
+accept 2800000.0 300000.0
+expect -6.7200711 5.4347892
+
+tolerance 0.05 m
+accept 2800000.0 200000.0
+expect -6.7200711 6.3371111
+
+tolerance 0.05 m
+accept 2800000.0 100000.0
+expect -6.7200711 7.2378372
+
+tolerance 0.05 m
+accept 0.0 0.0
+expect -31.9515111 8.136745
+
+tolerance 0.05 m
+accept 23764105.84 679490.65
+expect -177.8077194 2.0
+
+tolerance 0.05 m
+accept 21655625.33 679490.65
+expect 163.1922806 2.0
+
+tolerance 0.05 m
+accept 18326445.58 679490.65
+expect 133.1922806 2.0
+
+tolerance 0.05 m
+accept 14997265.83 679490.65
+expect 103.1922806 2.0
+
+tolerance 0.05 m
+accept 11668086.08 679490.65
+expect 73.1922806 2.0
+
+tolerance 0.05 m
+accept 8338906.33 679490.65
+expect 43.1922806 2.0
+
+tolerance 0.05 m
+accept 5009726.58 679490.65
+expect 13.1922806 2.0
+
+tolerance 0.05 m
+accept 3900000.0 679490.65
+expect 3.1922806 2.0
+
+tolerance 0.05 m
+accept 3545744.14 679490.65
+expect 0.0 2.0
+
+tolerance 0.05 m
+accept 2800000.0 679490.65
+expect -6.7200711 2.0
+
+tolerance 0.05 m
+accept 1680546.83 679490.65
+expect -16.8077194 2.0
+
+tolerance 0.05 m
+accept -1648632.92 679490.65
+expect -46.8077194 2.0
+
+tolerance 0.05 m
+accept -4977812.67 679490.65
+expect -76.8077194 2.0
+
+tolerance 0.05 m
+accept -8306992.42 679490.65
+expect -106.8077194 2.0
+
+tolerance 0.05 m
+accept -11636172.17 679490.65
+expect -136.8077194 2.0
+
+tolerance 0.05 m
+accept -14965351.92 679490.65
+expect -166.8077194 2.0
+
+tolerance 0.05 m
+accept -15964105.84 679490.65
+expect -175.8077194 2.0
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4813 +inv
+ +step +proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept -6.7200711 77.6534822
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 73.1442856
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 67.0518325
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 58.9140458
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 48.2638981
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 34.8029044
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 18.7048581
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 0.9071392
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3.1922806 0.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 0.9071392
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 1.8140483
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 3.6262553
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 4.531095
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 5.4347892
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 6.3371111
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 7.2378372
+roundtrip 1000
+
+tolerance 0.006 m
+accept -31.9515111 8.136745
+roundtrip 1000
+
+tolerance 0.006 m
+accept -177.8077194 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 163.1922806 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 133.1922806 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 103.1922806 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 73.1922806 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 43.1922806 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 13.1922806 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 3.1922806 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 0.0 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -6.7200711 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -16.8077194 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -46.8077194 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -76.8077194 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -106.8077194 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -136.8077194 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -166.8077194 2.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept -175.8077194 2.0
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5111.2.json b/test/gigs/5111.2.json
deleted file mode 100644
index 03d43f41..00000000
--- a/test/gigs/5111.2.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-"coordinates": [
- [[-6.7200711, 77.6534822], [2800000.0, 15000000.0]],
- [[-6.7200711, 73.1442856], [2800000.0, 13000000.0]],
- [[-6.7200711, 67.0518325], [2800000.0, 11000000.0]],
- [[-6.7200711, 58.9140458], [2800000.0, 9000000.0]],
- [[-6.7200711, 48.2638981], [2800000.0, 7000000.0]],
- [[-6.7200711, 34.8029044], [2800000.0, 5000000.0]],
- [[-6.7200711, 18.7048581], [2800000.0, 3000000.0]],
- [[-6.7200711, 0.9071392], [2800000.0, 1000000.0]],
- [[3.1922806, 0.0], [3900000.0, 900000.0]],
- [[-6.7200711, 0.9071392], [2800000.0, 800000.0]],
- [[-6.7200711, 1.8140483], [2800000.0, 700000.0]],
- [[-6.7200711, 2.0], [2800000.0, 679490.65]],
- [[-6.7200711, 3.6262553], [2800000.0, 500000.0]],
- [[-6.7200711, 4.531095], [2800000.0, 400000.0]],
- [[-6.7200711, 5.4347892], [2800000.0, 300000.0]],
- [[-6.7200711, 6.3371111], [2800000.0, 200000.0]],
- [[-6.7200711, 7.2378372], [2800000.0, 100000.0]],
- [[-31.9515111, 8.136745], [0.0, 0.0]],
- [[-177.8077194, 2.0], [23764105.84, 679490.65]],
- [[163.1922806, 2.0], [21655625.33, 679490.65]],
- [[133.1922806, 2.0], [18326445.58, 679490.65]],
- [[103.1922806, 2.0], [14997265.83, 679490.65]],
- [[73.1922806, 2.0], [11668086.08, 679490.65]],
- [[43.1922806, 2.0], [8338906.33, 679490.65]],
- [[13.1922806, 2.0], [5009726.58, 679490.65]],
- [[3.1922806, 2.0], [3900000.0, 679490.65]],
- [[0.0, 2.0], [3545744.14, 679490.65]],
- [[-6.7200711, 2.0], [2800000.0, 679490.65]],
- [[-16.8077194, 2.0], [1680546.83, 679490.65]],
- [[-46.8077194, 2.0], [-1648632.92, 679490.65]],
- [[-76.8077194, 2.0], [-4977812.67, 679490.65]],
- [[-106.8077194, 2.0], [-8306992.42, 679490.65]],
- [[-136.8077194, 2.0], [-11636172.17, 679490.65]],
- [[-166.8077194, 2.0], [-14965351.92, 679490.65]],
- [[-175.8077194, 2.0], [-15964105.84, 679490.65]]
-],
-"description": "Test 5111 (part 2), Mercator (variant A), v2-0_2011-06-28.",
-"projections": ["+init=epsg:4813",
- "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs"],
-"tests": [ {"tolerances": [5.555555555555555e-07, 0.05], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"} ]
-}
diff --git a/test/gigs/5112.gie b/test/gigs/5112.gie
new file mode 100644
index 00000000..207632d2
--- /dev/null
+++ b/test/gigs/5112.gie
@@ -0,0 +1,75 @@
+--------------------------------------------------------------------------------
+
+Test 5112, Mercator (variant B), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation proj=pipeline
+ step init=epsg:4284 inv
+ step init=epsg:3388
+
+tolerance 50 mm
+--------------------------------------------------------------------------------
+accept 51.0 42.0
+expect 0.0 3819897.85
+
+accept 51.0 0.0
+expect 0.0 0.0
+
+accept 57.0 0.0
+expect 497112.88 0.0
+
+accept 54.0 20.5
+expect 248556.44 1724781.5
+
+accept 67.0 -41.0
+expect 1325634.35 -3709687.25
+
+--------------------------------------------------------------------------------
+operation proj=pipeline
+ step init=epsg:3388 inv
+ step init=epsg:4284
+
+tolerance 50 mm
+--------------------------------------------------------------------------------
+accept 0.0 3819897.85
+expect 51.0 42.0
+
+accept 0.0 0.0
+expect 51.0 0.0
+
+accept 497112.88 0.0
+expect 57.0 0.0
+
+accept 248556.44 1724781.5
+expect 54.0 20.5
+
+accept 1325634.35 -3709687.25
+expect 67.0 -41.0
+
+--------------------------------------------------------------------------------
+operation proj=pipeline towgs84=0,0,0
+ step init=epsg:4284 inv
+ step init=epsg:3388
+
+tolerance 6 mm
+--------------------------------------------------------------------------------
+accept 51.0 42.0
+roundtrip 1000
+
+accept 51.0 0.0
+roundtrip 1000
+
+accept 57.0 0.0
+roundtrip 1000
+
+accept 54.0 20.5
+roundtrip 1000
+
+accept 67.0 -41.0
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5112.json b/test/gigs/5112.json
deleted file mode 100644
index 2b652933..00000000
--- a/test/gigs/5112.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-"coordinates": [
- [[51.0, 42.0], [0.0, 3819897.85]],
- [[51.0, 0.0], [0.0, 0.0]],
- [[57.0, 0.0], [497112.88, 0.0]],
- [[54.0, 20.5], [248556.44, 1724781.5]],
- [[67.0, -41.0], [1325634.35, -3709687.25]]
- ],
-"description": "Test 5112, Mercator (variant B), v2-0_2011-06-28.",
-"projections": ["+init=epsg:4284", "+init=epsg:3388"],
-"tests": [
- {"tolerances": [5.555555555555555e-07, 0.05], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}
- ]
-}
diff --git a/test/gigs/5113.gie b/test/gigs/5113.gie
new file mode 100644
index 00000000..5c3904e7
--- /dev/null
+++ b/test/gigs/5113.gie
@@ -0,0 +1,84 @@
+--------------------------------------------------------------------------------
+
+Test 5113, Transverse Mercator (South Oriented), v2-0_2011-06-28.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4148 +inv
+ +step +init=epsg:2049
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept 22.5 0.0
+expect -166998.44 0.0
+
+tolerance 0.03 m
+accept 21.5 -25.0
+expect -50475.46 2766147.25
+
+tolerance 0.03 m
+accept 20.5 -30.0
+expect 48243.45 3320218.65
+
+tolerance 0.03 m
+accept 19.5 -35.0
+expect 136937.65 3875621.18
+
+tolerance 0.03 m
+accept 19.5 -35.0
+expect 136937.65 3875621.18
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:2049 +inv
+ +step +init=epsg:4148
+--------------------------------------------------------------------------------
+tolerance 0.03 m
+accept -166998.44 0.0
+expect 22.5 0.0
+
+tolerance 0.03 m
+accept -50475.46 2766147.25
+expect 21.5 -25.0
+
+tolerance 0.03 m
+accept 48243.45 3320218.65
+expect 20.5 -30.0
+
+tolerance 0.03 m
+accept 136937.65 3875621.18
+expect 19.5 -35.0
+
+tolerance 0.03 m
+accept 136937.65 3875621.18
+expect 19.5 -35.0
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4148 +inv
+ +step +init=epsg:2049
+--------------------------------------------------------------------------------
+tolerance 0.006 m
+accept 22.5 0.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 21.5 -25.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 20.5 -30.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 19.5 -35.0
+roundtrip 1000
+
+tolerance 0.006 m
+accept 19.5 -35.0
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5113.json b/test/gigs/5113.json
deleted file mode 100644
index 945e4c44..00000000
--- a/test/gigs/5113.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-"description": "Test 5113, Transverse Mercator (South Oriented), v2-0_2011-06-28.",
-"coordinates": [ [[22.5, 0.0], [-166998.44, 0.0]],
- [[21.5, -25.0], [-50475.46, 2766147.25]],
- [[20.5, -30.0], [48243.45, 3320218.65]],
- [[19.5, -35.0], [136937.65, 3875621.18]],
- [[19.5, -35.0], [136937.65, 3875621.18]]
- ],
-"projections": ["+init=epsg:4148", "+init=epsg:2049"],
-"tests": [{"tolerances": [2.7777777777777776e-07, 0.03], "type": "conversion"},
- {"times": 1000, "tolerances": [5.555555555555556e-08, 0.006], "type": "roundtrip"}]
-}
diff --git a/test/gigs/5201.gie b/test/gigs/5201.gie
new file mode 100644
index 00000000..532443a9
--- /dev/null
+++ b/test/gigs/5201.gie
@@ -0,0 +1,354 @@
+--------------------------------------------------------------------------------
+
+Test 5201, Geographic Geocentric conversions, v2.0_2011-09-28. (EPSG 4979 - WGS84 3d has been replaced with EPSG code 4326 WGS84 2d).
+
+--------------------------------------------------------------------------------
+
+# WGS 84
+<4978> +proj=geocent +datum=WGS84 +units=m +no_defs <>
+# WGS 84
+<4326> +proj=longlat +datum=WGS84 +no_defs <>
+
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4978 +inv
+ +step +init=epsg:4326
+--------------------------------------------------------------------------------
+tolerance 0.01 m
+accept -962479.5924 555687.8517 6260738.6526
+expect 150 80 1214.137
+
+tolerance 0.01 m
+accept -962297.0059 555582.4354 6259542.961
+expect 150 80 0
+
+tolerance 0.01 m
+accept -1598248.169 2768777.623 5501278.468
+expect 119.99524538 60.00475191 619.6317
+
+tolerance 0.01 m
+accept -1598023.169 2768387.912 5500499.045
+expect 119.9952447 60.00475258 -280.3683
+
+tolerance 0.01 m
+accept 2764210.4054 4787752.865 3170468.5199
+expect 60 30 189.569
+
+tolerance 0.01 m
+accept 2764128.3196 4787610.6883 3170373.7354
+expect 60 30 0
+
+tolerance 0.01 m
+accept 6377934.396 -112 434
+expect -0.00100615 0.00392509 -202.5882
+
+tolerance 0.01 m
+accept 6374934.396 -112 434
+expect -0.00100662 0.00392695 -3202.5881
+
+tolerance 0.01 m
+accept 6367934.396 -112 434
+expect -0.00100773 0.00393129 -10202.5881
+
+tolerance 0.01 m
+accept 2764128.3196 -4787610.6883 -3170373.7354
+expect -60 -30 0
+
+tolerance 0.01 m
+accept 2763900.3489 -4787215.8313 -3170110.4974
+expect -60 -30 -526.476
+
+tolerance 0.01 m
+accept 2763880.8633 -4787182.0813 -3170087.9974
+expect -60 -30 -571.476
+
+tolerance 0.01 m
+accept -1598023.169 -2768611.912 -5499631.045
+expect -119.99323757 -59.99934884 -935.0995
+
+tolerance 0.01 m
+accept -1597798.169 -2768222.201 -5498851.622
+expect -119.99323663 -59.99934874 -1835.0995
+
+tolerance 0.01 m
+accept -962297.0059 -555582.4354 -6259542.961
+expect -150 -80 0
+
+tolerance 0.01 m
+accept -962150.945 -555498.1071 -6258586.4616
+expect -150 -80 -971.255
+
+tolerance 0.01 m
+accept -961798.2951 -555294.5046 -6256277.0874
+expect -150 -80 -3316.255
+
+tolerance 0.01 m
+accept -2187336.719 -112 5971017.093
+expect -179.99706624 70.00490733 -223.6178
+
+tolerance 0.01 m
+accept -2904698.5551 -2904698.5551 4862789.0377
+expect -135 50 0
+
+tolerance 0.01 m
+accept 371 -5783593.614 2679326.11
+expect -89.99632465 25.00366329 -274.7286
+
+tolerance 0.01 m
+accept 6378137 0 0
+expect 0 0 0
+
+tolerance 0.01 m
+accept -4087095.478 2977467.559 -3875457.429
+expect 143.92649252 -37.65282217 737.7182
+
+tolerance 0.01 m
+accept -4085919.959 2976611.233 -3874335.274
+expect 143.92649211 -37.65282206 -1099.2288
+
+tolerance 0.01 m
+accept -4084000.165 2975212.729 -3872502.631
+expect 143.92649143 -37.65282187 -4099.2288
+
+tolerance 0.01 m
+accept -4079520.647 2971949.553 -3868226.465
+expect 143.92648984 -37.65282143 -11099.2288
+
+tolerance 0.01 m
+accept -2904698.5551 2904698.5551 -4862789.0377
+expect 135 -50 0
+
+tolerance 0.01 m
+accept -2187336.719 -112 -5970149.093
+expect -179.99706624 -70.00224647 -1039.2896
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4326 +inv
+ +step +init=epsg:4978
+--------------------------------------------------------------------------------
+tolerance 0.01 m
+accept 150 80 1214.137
+expect -962479.5924 555687.8517 6260738.6526
+
+tolerance 0.01 m
+accept 150 80 0
+expect -962297.0059 555582.4354 6259542.961
+
+tolerance 0.01 m
+accept 119.99524538 60.00475191 619.6317
+expect -1598248.169 2768777.623 5501278.468
+
+tolerance 0.01 m
+accept 119.9952447 60.00475258 -280.3683
+expect -1598023.169 2768387.912 5500499.045
+
+tolerance 0.01 m
+accept 60 30 189.569
+expect 2764210.4054 4787752.865 3170468.5199
+
+tolerance 0.01 m
+accept 60 30 0
+expect 2764128.3196 4787610.6883 3170373.7354
+
+tolerance 0.01 m
+accept -0.00100615 0.00392509 -202.5882
+expect 6377934.396 -112 434
+
+tolerance 0.01 m
+accept -0.00100662 0.00392695 -3202.5881
+expect 6374934.396 -112 434
+
+tolerance 0.01 m
+accept -0.00100773 0.00393129 -10202.5881
+expect 6367934.396 -112 434
+
+tolerance 0.01 m
+accept -60 -30 0
+expect 2764128.3196 -4787610.6883 -3170373.7354
+
+tolerance 0.01 m
+accept -60 -30 -526.476
+expect 2763900.3489 -4787215.8313 -3170110.4974
+
+tolerance 0.01 m
+accept -60 -30 -571.476
+expect 2763880.8633 -4787182.0813 -3170087.9974
+
+tolerance 0.01 m
+accept -119.99323757 -59.99934884 -935.0995
+expect -1598023.169 -2768611.912 -5499631.045
+
+tolerance 0.01 m
+accept -119.99323663 -59.99934874 -1835.0995
+expect -1597798.169 -2768222.201 -5498851.622
+
+tolerance 0.01 m
+accept -150 -80 0
+expect -962297.0059 -555582.4354 -6259542.961
+
+tolerance 0.01 m
+accept -150 -80 -971.255
+expect -962150.945 -555498.1071 -6258586.4616
+
+tolerance 0.01 m
+accept -150 -80 -3316.255
+expect -961798.2951 -555294.5046 -6256277.0874
+
+tolerance 0.01 m
+accept -179.99706624 70.00490733 -223.6178
+expect -2187336.719 -112 5971017.093
+
+tolerance 0.01 m
+accept -135 50 0
+expect -2904698.5551 -2904698.5551 4862789.0377
+
+tolerance 0.01 m
+accept -89.99632465 25.00366329 -274.7286
+expect 371 -5783593.614 2679326.11
+
+tolerance 0.01 m
+accept 0 0 0
+expect 6378137 0 0
+
+tolerance 0.01 m
+accept 143.92649252 -37.65282217 737.7182
+expect -4087095.478 2977467.559 -3875457.429
+
+tolerance 0.01 m
+accept 143.92649211 -37.65282206 -1099.2288
+expect -4085919.959 2976611.233 -3874335.274
+
+tolerance 0.01 m
+accept 143.92649143 -37.65282187 -4099.2288
+expect -4084000.165 2975212.729 -3872502.631
+
+tolerance 0.01 m
+accept 143.92648984 -37.65282143 -11099.2288
+expect -4079520.647 2971949.553 -3868226.465
+
+tolerance 0.01 m
+accept 135 -50 0
+expect -2904698.5551 2904698.5551 -4862789.0377
+
+tolerance 0.01 m
+accept -179.99706624 -70.00224647 -1039.2896
+expect -2187336.719 -112 -5970149.093
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4978 +inv
+ +step +init=epsg:4326
+--------------------------------------------------------------------------------
+tolerance 0.01 m
+accept -962479.5924 555687.8517 6260738.6526
+roundtrip 1000
+
+tolerance 0.01 m
+accept -962297.0059 555582.4354 6259542.961
+roundtrip 1000
+
+tolerance 0.01 m
+accept -1598248.169 2768777.623 5501278.468
+roundtrip 1000
+
+tolerance 0.01 m
+accept -1598023.169 2768387.912 5500499.045
+roundtrip 1000
+
+tolerance 0.01 m
+accept 2764210.4054 4787752.865 3170468.5199
+roundtrip 1000
+
+tolerance 0.01 m
+accept 2764128.3196 4787610.6883 3170373.7354
+roundtrip 1000
+
+tolerance 0.01 m
+accept 6377934.396 -112 434
+roundtrip 1000
+
+tolerance 0.01 m
+accept 6374934.396 -112 434
+roundtrip 1000
+
+tolerance 0.01 m
+accept 6367934.396 -112 434
+roundtrip 1000
+
+tolerance 0.01 m
+accept 2764128.3196 -4787610.6883 -3170373.7354
+roundtrip 1000
+
+tolerance 0.01 m
+accept 2763900.3489 -4787215.8313 -3170110.4974
+roundtrip 1000
+
+tolerance 0.01 m
+accept 2763880.8633 -4787182.0813 -3170087.9974
+roundtrip 1000
+
+tolerance 0.01 m
+accept -1598023.169 -2768611.912 -5499631.045
+roundtrip 1000
+
+tolerance 0.01 m
+accept -1597798.169 -2768222.201 -5498851.622
+roundtrip 1000
+
+tolerance 0.01 m
+accept -962297.0059 -555582.4354 -6259542.961
+roundtrip 1000
+
+tolerance 0.01 m
+accept -962150.945 -555498.1071 -6258586.4616
+roundtrip 1000
+
+tolerance 0.01 m
+accept -961798.2951 -555294.5046 -6256277.0874
+roundtrip 1000
+
+tolerance 0.01 m
+accept -2187336.719 -112 5971017.093
+roundtrip 1000
+
+tolerance 0.01 m
+accept -2904698.5551 -2904698.5551 4862789.0377
+roundtrip 1000
+
+tolerance 0.01 m
+accept 371 -5783593.614 2679326.11
+roundtrip 1000
+
+tolerance 0.01 m
+accept 6378137 0 0
+roundtrip 1000
+
+tolerance 0.01 m
+accept -4087095.478 2977467.559 -3875457.429
+roundtrip 1000
+
+tolerance 0.01 m
+accept -4085919.959 2976611.233 -3874335.274
+roundtrip 1000
+
+tolerance 0.01 m
+accept -4084000.165 2975212.729 -3872502.631
+roundtrip 1000
+
+tolerance 0.01 m
+accept -4079520.647 2971949.553 -3868226.465
+roundtrip 1000
+
+tolerance 0.01 m
+accept -2904698.5551 2904698.5551 -4862789.0377
+roundtrip 1000
+
+tolerance 0.01 m
+accept -2187336.719 -112 -5970149.093
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5201.json b/test/gigs/5201.json
deleted file mode 100644
index e1ffdd77..00000000
--- a/test/gigs/5201.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-"description" : "Test 5201, Geographic Geocentric conversions, v2.0_2011-09-28. (EPSG 4979 - WGS84 3d has been replaced with EPSG code 4326 WGS84 2d).",
-"projections" : [ "+init=epsg:4978", "+init=epsg:4326" ],
-
-"coordinates": [
- [ [-962479.5924, 555687.8517, 6260738.6526], [150, 80, 1214.137] ],
- [ [-962297.0059, 555582.4354, 6259542.961], [150, 80, 0] ],
- [ [-1598248.169, 2768777.623, 5501278.468], [119.99524538, 60.00475191, 619.6317] ],
- [ [-1598023.169, 2768387.912, 5500499.045], [119.99524470, 60.00475258, -280.3683] ],
- [ [2764210.4054, 4787752.865, 3170468.5199], [60, 30, 189.569] ],
- [ [2764128.3196, 4787610.6883, 3170373.7354], [60, 30, 0] ],
- [ [6377934.396, -112, 434], [-0.00100615, 0.00392509, -202.5882] ],
- [ [6374934.396, -112, 434], [-0.00100662, 0.00392695, -3202.5881] ],
- [ [6367934.396, -112, 434], [-0.00100773, 0.00393129, -10202.5881] ],
- [ [2764128.3196, -4787610.6883, -3170373.7354], [-60, -30, 0] ],
- [ [2763900.3489, -4787215.8313, -3170110.4974], [-60, -30, -526.476] ],
- [ [2763880.8633, -4787182.0813, -3170087.9974], [-60, -30, -571.476] ],
- [ [-1598023.169, -2768611.912, -5499631.045], [-119.99323757, -59.99934884, -935.0995] ],
- [ [-1597798.169, -2768222.201, -5498851.622], [-119.99323663, -59.99934874, -1835.0995] ],
- [ [-962297.0059, -555582.4354, -6259542.961], [-150, -80, 0] ],
- [ [-962150.945, -555498.1071, -6258586.4616], [-150, -80, -971.255] ],
- [ [-961798.2951, -555294.5046, -6256277.0874], [-150, -80, -3316.255] ],
- [ [-2187336.719, -112, 5971017.093], [-179.99706624, 70.00490733, -223.6178] ],
- [ [-2904698.5551, -2904698.5551, 4862789.0377], [-135, 50, 0] ],
- [ [371, -5783593.614, 2679326.11], [-89.99632465, 25.00366329, -274.7286] ],
- [ [6378137, 0, 0], [0, 0, 0] ],
- [ [-4087095.478, 2977467.559, -3875457.429], [143.92649252, -37.65282217, 737.7182] ],
- [ [-4085919.959, 2976611.233, -3874335.274], [143.92649211, -37.65282206, -1099.2288] ],
- [ [-4084000.165, 2975212.729, -3872502.631], [143.92649143, -37.65282187, -4099.2288] ],
- [ [-4079520.647, 2971949.553, -3868226.465], [143.92648984, -37.65282143, -11099.2288] ],
- [ [-2904698.5551, 2904698.5551, -4862789.0377], [135, -50, 0] ],
- [ [-2187336.719, -112, -5970149.093], [-179.99706624, -70.00224647, -1039.2896] ]
-],
-
-"tests" : [
- {"type": "conversion", "tolerances": [0.01, [8.333333333333333e-08, 8.333333333333333e-08, 0.01]]},
- {"type": "roundtrip", "times":1000, "tolerances": [0.006, [5.555555555555556e-08, 5.555555555555556e-08, 0.006]] }
-]
-}
diff --git a/test/gigs/5203.1.gie.failing b/test/gigs/5203.1.gie.failing
new file mode 100644
index 00000000..960b9171
--- /dev/null
+++ b/test/gigs/5203.1.gie.failing
@@ -0,0 +1,192 @@
+--------------------------------------------------------------------------------
+
+GIGS Test 5203 (part 1), Position Vector 7-parameter transformation, v2.0_2011-06-28. Geographic 2D domain (EPSG method code 9606).
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4277 +inv
+ +step +init=epsg:4326
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept 150.00567472 79.99487333
+expect 150.0 80.0
+
+tolerance 2.77777777778e-07 m
+accept 120.0 60.0
+expect 119.99435889 60.00569306
+
+tolerance 2.77777777778e-07 m
+accept 60.00446778 29.99566778
+expect 60.0 30.0
+
+tolerance 2.77777777778e-07 m
+accept 0.0 0.0
+expect -0.00089056 0.00483333
+
+tolerance 2.77777777778e-07 m
+accept -60.00357056 -30.00504639
+expect -60.0 -30.0
+
+tolerance 2.77777777778e-07 m
+accept -120.0 -60.0
+expect -119.9918525 -59.99907361
+
+tolerance 2.77777777778e-07 m
+accept -150.01693111 -79.99778139
+expect -150.0 -80.0
+
+tolerance 2.77777777778e-07 m
+accept -180.0 70.0
+expect -179.99637361 70.005945
+
+tolerance 2.77777777778e-07 m
+accept -135.00596333 49.99458694
+expect -135.0 50.0
+
+tolerance 2.77777777778e-07 m
+accept -90.0 25.0
+expect -89.99531139 25.00445833
+
+tolerance 2.77777777778e-07 m
+accept 0.00089056 -0.00483333
+expect 0.0 0.0
+
+tolerance 2.77777777778e-07 m
+accept 143.9279419 -37.6532236
+expect 143.92634806 -37.65235306
+
+tolerance 2.77777777778e-07 m
+accept 135.00291194 -49.99973028
+expect 135.0 -50.0
+
+tolerance 2.77777777778e-07 m
+accept 180.0 -70.0
+expect -179.99660139 -70.002485
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4326 +inv
+ +step +init=epsg:4277
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept 150.0 80.0
+expect 150.00567472 79.99487333
+
+tolerance 2.77777777778e-07 m
+accept 119.99435889 60.00569306
+expect 120.0 60.0
+
+tolerance 2.77777777778e-07 m
+accept 60.0 30.0
+expect 60.00446778 29.99566778
+
+tolerance 2.77777777778e-07 m
+accept -0.00089056 0.00483333
+expect 0.0 0.0
+
+tolerance 2.77777777778e-07 m
+accept -60.0 -30.0
+expect -60.00357056 -30.00504639
+
+tolerance 2.77777777778e-07 m
+accept -119.9918525 -59.99907361
+expect -120.0 -60.0
+
+tolerance 2.77777777778e-07 m
+accept -150.0 -80.0
+expect -150.01693111 -79.99778139
+
+tolerance 2.77777777778e-07 m
+accept -179.99637361 70.005945
+expect -180.0 70.0
+
+tolerance 2.77777777778e-07 m
+accept -135.0 50.0
+expect -135.00596333 49.99458694
+
+tolerance 2.77777777778e-07 m
+accept -89.99531139 25.00445833
+expect -90.0 25.0
+
+tolerance 2.77777777778e-07 m
+accept 0.0 0.0
+expect 0.00089056 -0.00483333
+
+tolerance 2.77777777778e-07 m
+accept 143.92634806 -37.65235306
+expect 143.9279419 -37.6532236
+
+tolerance 2.77777777778e-07 m
+accept 135.0 -50.0
+expect 135.00291194 -49.99973028
+
+tolerance 2.77777777778e-07 m
+accept -179.99660139 -70.002485
+expect 180.0 -70.0
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4277 +inv
+ +step +init=epsg:4326
+--------------------------------------------------------------------------------
+tolerance 5.55555555556e-08 m
+accept 150.00567472 79.99487333
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 120.0 60.0
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 60.00446778 29.99566778
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 0.0 0.0
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -60.00357056 -30.00504639
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -120.0 -60.0
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -150.01693111 -79.99778139
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -180.0 70.0
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -135.00596333 49.99458694
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -90.0 25.0
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 0.00089056 -0.00483333
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 143.9279419 -37.6532236
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 135.00291194 -49.99973028
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 180.0 -70.0
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5203.1.json b/test/gigs/5203.1.json
deleted file mode 100644
index 658e7857..00000000
--- a/test/gigs/5203.1.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-"description": "GIGS Test 5203 (part 1), Position Vector 7-parameter transformation, v2.0_2011-06-28. Geographic 2D domain (EPSG method code 9606).",
-"projections" : [ "+init=epsg:4277", "+init=epsg:4326" ],
-
-"coordinates" : [
- [ [150.00567472, 79.99487333], [150.0, 80.0] ],
- [ [120.0, 60.0], [119.99435889, 60.00569306] ],
- [ [60.00446778, 29.99566778], [60.0, 30.0] ],
- [ [0.0, 0.0], [-0.00089056, 0.00483333] ],
- [ [-60.00357056, -30.00504639], [-60.0, -30.0] ],
- [ [-120.0, -60.0], [-119.9918525, -59.99907361] ],
- [ [-150.01693111, -79.99778139], [-150.0, -80.0] ],
- [ [-180.0, 70.0], [-179.99637361, 70.005945] ],
- [ [-135.00596333, 49.99458694], [-135.0, 50.0] ],
- [ [-90.0, 25.0], [-89.99531139, 25.00445833] ],
- [ [0.00089056, -0.00483333], [0.0, 0.0] ],
- [ [143.9279419, -37.6532236], [143.92634806, -37.65235306] ],
- [ [135.00291194, -49.99973028], [135.0, -50.0] ],
- [ [180.0, -70.0], [-179.99660139, -70.002485] ]
-],
-
-"tests" : [ {"type": "conversion", "tolerances": [2.7777777777777776e-07, 2.7777777777777776e-07]},
- {"type": "roundtrip", "times":1000, "tolerances": [5.555555555555556e-08, 5.555555555555556e-08] }
- ]
-}
diff --git a/test/gigs/5204.1.gie.failing b/test/gigs/5204.1.gie.failing
new file mode 100644
index 00000000..3c7e3fff
--- /dev/null
+++ b/test/gigs/5204.1.gie.failing
@@ -0,0 +1,192 @@
+--------------------------------------------------------------------------------
+
+GIGS Test 5204, Coordinate Frame 7-parameter transformation, v2.0_2011-06-28. Geographic 2D domain (EPSG method code 9607)
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4313 +inv
+ +step +init=epsg:4326
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept 149.99825389 80.00155167
+expect 150 80
+
+tolerance 2.77777777778e-07 m
+accept 120 60
+expect 120.00197111 59.99807333
+
+tolerance 2.77777777778e-07 m
+accept 59.99822194 30.00134083
+expect 60 30
+
+tolerance 2.77777777778e-07 m
+accept 0 0
+expect 0.00098139 -0.00081028
+
+tolerance 2.77777777778e-07 m
+accept -59.99991333 -29.99943917
+expect -60 -30
+
+tolerance 2.77777777778e-07 m
+accept -120 -60
+expect -120.00150694 -59.999835
+
+tolerance 2.77777777778e-07 m
+accept -149.99532167 -80.00054917
+expect -150 -80
+
+tolerance 2.77777777778e-07 m
+accept -180 70
+expect 179.99939778 69.99812806
+
+tolerance 2.77777777778e-07 m
+accept -134.99891389 50.00183
+expect -135 50
+
+tolerance 2.77777777778e-07 m
+accept -90 25
+expect -90.00060583 24.99862667
+
+tolerance 2.77777777778e-07 m
+accept -0.00098139 0.00081028
+expect 0 0
+
+tolerance 2.77777777778e-07 m
+accept 143.9279419 -37.6532236
+expect 143.92857222 -37.65257083
+
+tolerance 2.77777777778e-07 m
+accept 134.99913472 -50.00096139
+expect 135 -50
+
+tolerance 2.77777777778e-07 m
+accept 180 -70
+expect 179.99888667 -69.99901667
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4326 +inv
+ +step +init=epsg:4313
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept 150 80
+expect 149.99825389 80.00155167
+
+tolerance 2.77777777778e-07 m
+accept 120.00197111 59.99807333
+expect 120 60
+
+tolerance 2.77777777778e-07 m
+accept 60 30
+expect 59.99822194 30.00134083
+
+tolerance 2.77777777778e-07 m
+accept 0.00098139 -0.00081028
+expect 0 0
+
+tolerance 2.77777777778e-07 m
+accept -60 -30
+expect -59.99991333 -29.99943917
+
+tolerance 2.77777777778e-07 m
+accept -120.00150694 -59.999835
+expect -120 -60
+
+tolerance 2.77777777778e-07 m
+accept -150 -80
+expect -149.99532167 -80.00054917
+
+tolerance 2.77777777778e-07 m
+accept 179.99939778 69.99812806
+expect -180 70
+
+tolerance 2.77777777778e-07 m
+accept -135 50
+expect -134.99891389 50.00183
+
+tolerance 2.77777777778e-07 m
+accept -90.00060583 24.99862667
+expect -90 25
+
+tolerance 2.77777777778e-07 m
+accept 0 0
+expect -0.00098139 0.00081028
+
+tolerance 2.77777777778e-07 m
+accept 143.92857222 -37.65257083
+expect 143.9279419 -37.6532236
+
+tolerance 2.77777777778e-07 m
+accept 135 -50
+expect 134.99913472 -50.00096139
+
+tolerance 2.77777777778e-07 m
+accept 179.99888667 -69.99901667
+expect 180 -70
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4313 +inv
+ +step +init=epsg:4326
+--------------------------------------------------------------------------------
+tolerance 5.55555555556e-08 m
+accept 149.99825389 80.00155167
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 120 60
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 59.99822194 30.00134083
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 0 0
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -59.99991333 -29.99943917
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -120 -60
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -149.99532167 -80.00054917
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -180 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -134.99891389 50.00183
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -90 25
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -0.00098139 0.00081028
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 143.9279419 -37.6532236
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 134.99913472 -50.00096139
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 180 -70
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5204.1.json b/test/gigs/5204.1.json
deleted file mode 100644
index 06347e64..00000000
--- a/test/gigs/5204.1.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-"description" : "GIGS Test 5204, Coordinate Frame 7-parameter transformation, v2.0_2011-06-28. Geographic 2D domain (EPSG method code 9607)",
-"projections" : [ "+init=epsg:4313", "+init=epsg:4326" ],
-
-"coordinates" : [
- [ [149.99825389, 80.00155167], [150, 80] ],
- [ [120, 60], [120.00197111, 59.99807333] ],
- [ [59.99822194, 30.00134083], [60, 30] ],
- [ [0, 0], [0.00098139, -0.00081028] ],
- [ [-59.99991333, -29.99943917], [-60, -30] ],
- [ [-120, -60], [-120.00150694, -59.999835] ],
- [ [-149.99532167, -80.00054917], [-150, -80] ],
- [ [-180, 70], [179.99939778, 69.99812806] ],
- [ [-134.99891389, 50.00183], [-135, 50] ],
- [ [-90, 25], [-90.00060583, 24.99862667] ],
- [ [-0.00098139, 0.00081028], [0, 0] ],
- [ [143.9279419, -37.6532236], [143.92857222, -37.65257083] ],
- [ [134.99913472, -50.00096139], [135, -50] ],
- [ [180, -70], [179.99888667, -69.99901667] ]
-],
-
-"tests" : [ {"type": "conversion", "tolerances": [2.7777777777777776e-07, 2.7777777777777776e-07]},
- {"type": "roundtrip", "times":1000, "tolerances": [5.555555555555556e-08, 5.555555555555556e-08] }
- ]
-}
diff --git a/test/gigs/5205.1.gie.failing b/test/gigs/5205.1.gie.failing
new file mode 100644
index 00000000..df4cb674
--- /dev/null
+++ b/test/gigs/5205.1.gie.failing
@@ -0,0 +1,192 @@
+--------------------------------------------------------------------------------
+
+GIGS Test 5205 (Part 1), Molodensky-Badekas 10-parameter transformation, v2.0_2011-06-28. Geographic 2D domain (EPSG method code 9636)
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4289 +inv
+ +step +init=epsg:4326
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept 150.01814371 79.99494639
+expect 150 80
+
+tolerance 2.77777777778e-07 m
+accept 120 60
+expect 119.99001559 60.00441792
+
+tolerance 2.77777777778e-07 m
+accept 60.00535007 29.99746103
+expect 60 30
+
+tolerance 2.77777777778e-07 m
+accept 0 0
+expect -7.025e-05 0.0041133
+
+tolerance 2.77777777778e-07 m
+accept -60.00473241 -30.0042486
+expect -60 -30
+
+tolerance 2.77777777778e-07 m
+accept -120 -60
+expect -119.9922412 -60.00081456
+
+tolerance 2.77777777778e-07 m
+accept -150.01209192 -79.99612229
+expect -150 -80
+
+tolerance 2.77777777778e-07 m
+accept -180 70
+expect 179.99786174 70.00666951
+
+tolerance 2.77777777778e-07 m
+accept -135.00454845 49.99357566
+expect -135 50
+
+tolerance 2.77777777778e-07 m
+accept -90 25
+expect -89.99487454 25.00457271
+
+tolerance 2.77777777778e-07 m
+accept 7.032e-05 -0.00411349
+expect 0 0
+
+tolerance 2.77777777778e-07 m
+accept 143.9279419 -37.6532236
+expect 143.92330599 -37.65282034
+
+tolerance 2.77777777778e-07 m
+accept 135.00641074 -49.99958243
+expect 135 -50
+
+tolerance 2.77777777778e-07 m
+accept 180 -70
+expect 179.99847886 -70.00362084
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4326 +inv
+ +step +init=epsg:4289
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept 150 80
+expect 150.01814371 79.99494639
+
+tolerance 2.77777777778e-07 m
+accept 119.99001559 60.00441792
+expect 120 60
+
+tolerance 2.77777777778e-07 m
+accept 60 30
+expect 60.00535007 29.99746103
+
+tolerance 2.77777777778e-07 m
+accept -7.025e-05 0.0041133
+expect 0 0
+
+tolerance 2.77777777778e-07 m
+accept -60 -30
+expect -60.00473241 -30.0042486
+
+tolerance 2.77777777778e-07 m
+accept -119.9922412 -60.00081456
+expect -120 -60
+
+tolerance 2.77777777778e-07 m
+accept -150 -80
+expect -150.01209192 -79.99612229
+
+tolerance 2.77777777778e-07 m
+accept 179.99786174 70.00666951
+expect -180 70
+
+tolerance 2.77777777778e-07 m
+accept -135 50
+expect -135.00454845 49.99357566
+
+tolerance 2.77777777778e-07 m
+accept -89.99487454 25.00457271
+expect -90 25
+
+tolerance 2.77777777778e-07 m
+accept 0 0
+expect 7.032e-05 -0.00411349
+
+tolerance 2.77777777778e-07 m
+accept 143.92330599 -37.65282034
+expect 143.9279419 -37.6532236
+
+tolerance 2.77777777778e-07 m
+accept 135 -50
+expect 135.00641074 -49.99958243
+
+tolerance 2.77777777778e-07 m
+accept 179.99847886 -70.00362084
+expect 180 -70
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4289 +inv
+ +step +init=epsg:4326
+--------------------------------------------------------------------------------
+tolerance 5.55555555556e-08 m
+accept 150.01814371 79.99494639
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 120 60
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 60.00535007 29.99746103
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 0 0
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -60.00473241 -30.0042486
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -120 -60
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -150.01209192 -79.99612229
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -180 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -135.00454845 49.99357566
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -90 25
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 7.032e-05 -0.00411349
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 143.9279419 -37.6532236
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 135.00641074 -49.99958243
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 180 -70
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5205.1.json b/test/gigs/5205.1.json
deleted file mode 100644
index e0c41ff3..00000000
--- a/test/gigs/5205.1.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-"description" : "GIGS Test 5205 (Part 1), Molodensky-Badekas 10-parameter transformation, v2.0_2011-06-28. Geographic 2D domain (EPSG method code 9636)",
-"projections" : [ "+init=epsg:4289", "+init=epsg:4326" ],
-
-"coordinates": [
- [ [150.01814371, 79.99494639], [150, 80] ],
- [ [120, 60], [119.99001559, 60.00441792] ],
- [ [60.00535007, 29.99746103], [60, 30] ],
- [ [0, 0], [-0.00007025, 0.0041133] ],
- [ [-60.00473241, -30.0042486], [-60, -30] ],
- [ [-120, -60], [-119.9922412, -60.00081456] ],
- [ [-150.01209192, -79.99612229], [-150, -80] ],
- [ [-180, 70], [179.99786174, 70.00666951] ],
- [ [-135.00454845, 49.99357566], [-135, 50] ],
- [ [-90, 25], [-89.99487454, 25.00457271] ],
- [ [0.00007032, -0.00411349], [0, 0] ],
- [ [143.9279419, -37.6532236], [143.92330599, -37.65282034] ],
- [ [135.00641074, -49.99958243], [135, -50] ],
- [ [180, -70], [179.99847886, -70.00362084] ]
-],
-
-"tests" : [ {"type": "conversion", "tolerances": [2.7777777777777776e-07, 2.7777777777777776e-07]},
- {"type": "roundtrip", "times":1000, "tolerances": [5.555555555555556e-08, 5.555555555555556e-08] }
- ]
-}
diff --git a/test/gigs/5206.gie.failing b/test/gigs/5206.gie.failing
new file mode 100644
index 00000000..5f3d6eb6
--- /dev/null
+++ b/test/gigs/5206.gie.failing
@@ -0,0 +1,540 @@
+--------------------------------------------------------------------------------
+
+Test 5206, NADCON transformation, v2.0_2011-06-28. Out of transform grid area error tests have been removed.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4267 +inv
+ +step +init=epsg:4269
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept -89.5177272 29.9997978
+expect -89.5177778 30.0
+
+tolerance 2.77777777778e-07 m
+accept -90.5177778 29.2833333
+expect -90.5178639 29.2835592
+
+tolerance 2.77777777778e-07 m
+accept -91.5176758 28.2830864
+expect -91.5177778 28.2833333
+
+tolerance 2.77777777778e-07 m
+accept -92.5177778 27.2833333
+expect -92.5178811 27.2836106
+
+tolerance 2.77777777778e-07 m
+accept -93.5176731 26.2830225
+expect -93.5177778 26.2833333
+
+tolerance 2.77777777778e-07 m
+accept -94.5177778 25
+expect -94.5178744 25.0003486
+
+tolerance 2.77777777778e-07 m
+accept -142.9972522 70.0001631
+expect -143 70
+
+tolerance 2.77777777778e-07 m
+accept -142 70.0
+expect -142.0026922 69.9998422
+
+tolerance 2.77777777778e-07 m
+accept -141.9973078 70.0001578
+expect -142 70
+
+tolerance 2.77777777778e-07 m
+accept -140.9971981 70.0001481
+expect -141 70
+
+tolerance 2.77777777778e-07 m
+accept -140 70
+expect -140.0027922 69.9998617
+
+tolerance 2.77777777778e-07 m
+accept -138.9973075 70.0001297
+expect -139 70
+
+tolerance 2.77777777778e-07 m
+accept -138 70
+expect -138.0026767 69.9998867
+
+tolerance 2.77777777778e-07 m
+accept -134.9973733 70.000055
+expect -135 70
+
+tolerance 2.77777777778e-07 m
+accept -130 70
+expect -130.0025347 70.0000511
+
+tolerance 2.77777777778e-07 m
+accept -128.0009742 69.9999053
+expect -128.0034722 70
+
+tolerance 2.77777777778e-07 m
+accept -179 70
+expect -179.0035064 69.9990142
+
+tolerance 2.77777777778e-07 m
+accept -179.9964664 70.0010089
+expect 180 70
+
+tolerance 2.77777777778e-07 m
+accept 180 70
+expect 179.9964664 69.9989911
+
+tolerance 2.77777777778e-07 m
+accept 179 70
+expect 178.9964394 69.9989678
+
+tolerance 2.77777777778e-07 m
+accept -111.9991714 49.9999556
+expect -112 49.9999997
+
+tolerance 2.77777777778e-07 m
+accept -112 49.9999997
+expect -112.0008286 50.0000439
+
+tolerance 2.77777777778e-07 m
+accept -111.9991214 49.0000033
+expect -112 49
+
+tolerance 2.77777777778e-07 m
+accept -112 48
+expect -112.0008492 47.9999606
+
+tolerance 2.77777777778e-07 m
+accept -111.9991678 47.0000569
+expect -112 47
+
+tolerance 2.77777777778e-07 m
+accept -112 47
+expect -112.0008325 46.9999431
+
+tolerance 2.77777777778e-07 m
+accept -111.9991756 46.0000733
+expect -112 46
+
+tolerance 2.77777777778e-07 m
+accept -112 45
+expect -112.0008022 44.9999197
+
+tolerance 2.77777777778e-07 m
+accept -130.5177467 51
+expect -130.5193953 50.9997114
+
+tolerance 2.77777777778e-07 m
+accept -130.5160981 51.0002886
+expect -130.5177467 51
+
+tolerance 2.77777777778e-07 m
+accept -130.5161206 50.0002897
+expect -130.5177467 49.9999997
+
+tolerance 2.77777777778e-07 m
+accept -130.5177467 49.9999997
+expect -130.5193731 49.9997097
+
+tolerance 2.77777777778e-07 m
+accept -130.5161458 49.0002717
+expect -130.5177467 49
+
+tolerance 2.77777777778e-07 m
+accept -130.5177467 48.1166667
+expect -130.5193258 48.1164106
+
+tolerance 2.77777777778e-07 m
+accept -130.5161942 47.0002378
+expect -130.5177467 47
+
+tolerance 2.77777777778e-07 m
+accept -130.5177467 47
+expect -130.5192992 46.9997622
+
+tolerance 2.77777777778e-07 m
+accept -130.5162172 46.0002222
+expect -130.5177467 46
+
+tolerance 2.77777777778e-07 m
+accept -130.5177467 45
+expect -130.5192539 44.9997925
+
+tolerance 2.77777777778e-07 m
+accept -132.9984775 48.1169867
+expect -133 48.1166667
+
+tolerance 2.77777777778e-07 m
+accept -131.4555556 48.1166667
+expect -131.4571578 48.1163964
+
+tolerance 2.77777777778e-07 m
+accept -130.5161675 48.1169228
+expect -130.5177467 48.1166667
+
+tolerance 2.77777777778e-07 m
+accept -128.4555556 48.1166667
+expect -128.4570433 48.1164319
+
+tolerance 2.77777777778e-07 m
+accept -128.5444444 48.1166667
+expect -128.5459361 48.1164311
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4269 +inv
+ +step +init=epsg:4267
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept -89.5177778 30.0
+expect -89.5177272 29.9997978
+
+tolerance 2.77777777778e-07 m
+accept -90.5178639 29.2835592
+expect -90.5177778 29.2833333
+
+tolerance 2.77777777778e-07 m
+accept -91.5177778 28.2833333
+expect -91.5176758 28.2830864
+
+tolerance 2.77777777778e-07 m
+accept -92.5178811 27.2836106
+expect -92.5177778 27.2833333
+
+tolerance 2.77777777778e-07 m
+accept -93.5177778 26.2833333
+expect -93.5176731 26.2830225
+
+tolerance 2.77777777778e-07 m
+accept -94.5178744 25.0003486
+expect -94.5177778 25
+
+tolerance 2.77777777778e-07 m
+accept -143 70
+expect -142.9972522 70.0001631
+
+tolerance 2.77777777778e-07 m
+accept -142.0026922 69.9998422
+expect -142 70.0
+
+tolerance 2.77777777778e-07 m
+accept -142 70
+expect -141.9973078 70.0001578
+
+tolerance 2.77777777778e-07 m
+accept -141 70
+expect -140.9971981 70.0001481
+
+tolerance 2.77777777778e-07 m
+accept -140.0027922 69.9998617
+expect -140 70
+
+tolerance 2.77777777778e-07 m
+accept -139 70
+expect -138.9973075 70.0001297
+
+tolerance 2.77777777778e-07 m
+accept -138.0026767 69.9998867
+expect -138 70
+
+tolerance 2.77777777778e-07 m
+accept -135 70
+expect -134.9973733 70.000055
+
+tolerance 2.77777777778e-07 m
+accept -130.0025347 70.0000511
+expect -130 70
+
+tolerance 2.77777777778e-07 m
+accept -128.0034722 70
+expect -128.0009742 69.9999053
+
+tolerance 2.77777777778e-07 m
+accept -179.0035064 69.9990142
+expect -179 70
+
+tolerance 2.77777777778e-07 m
+accept 180 70
+expect -179.9964664 70.0010089
+
+tolerance 2.77777777778e-07 m
+accept 179.9964664 69.9989911
+expect 180 70
+
+tolerance 2.77777777778e-07 m
+accept 178.9964394 69.9989678
+expect 179 70
+
+tolerance 2.77777777778e-07 m
+accept -112 49.9999997
+expect -111.9991714 49.9999556
+
+tolerance 2.77777777778e-07 m
+accept -112.0008286 50.0000439
+expect -112 49.9999997
+
+tolerance 2.77777777778e-07 m
+accept -112 49
+expect -111.9991214 49.0000033
+
+tolerance 2.77777777778e-07 m
+accept -112.0008492 47.9999606
+expect -112 48
+
+tolerance 2.77777777778e-07 m
+accept -112 47
+expect -111.9991678 47.0000569
+
+tolerance 2.77777777778e-07 m
+accept -112.0008325 46.9999431
+expect -112 47
+
+tolerance 2.77777777778e-07 m
+accept -112 46
+expect -111.9991756 46.0000733
+
+tolerance 2.77777777778e-07 m
+accept -112.0008022 44.9999197
+expect -112 45
+
+tolerance 2.77777777778e-07 m
+accept -130.5193953 50.9997114
+expect -130.5177467 51
+
+tolerance 2.77777777778e-07 m
+accept -130.5177467 51
+expect -130.5160981 51.0002886
+
+tolerance 2.77777777778e-07 m
+accept -130.5177467 49.9999997
+expect -130.5161206 50.0002897
+
+tolerance 2.77777777778e-07 m
+accept -130.5193731 49.9997097
+expect -130.5177467 49.9999997
+
+tolerance 2.77777777778e-07 m
+accept -130.5177467 49
+expect -130.5161458 49.0002717
+
+tolerance 2.77777777778e-07 m
+accept -130.5193258 48.1164106
+expect -130.5177467 48.1166667
+
+tolerance 2.77777777778e-07 m
+accept -130.5177467 47
+expect -130.5161942 47.0002378
+
+tolerance 2.77777777778e-07 m
+accept -130.5192992 46.9997622
+expect -130.5177467 47
+
+tolerance 2.77777777778e-07 m
+accept -130.5177467 46
+expect -130.5162172 46.0002222
+
+tolerance 2.77777777778e-07 m
+accept -130.5192539 44.9997925
+expect -130.5177467 45
+
+tolerance 2.77777777778e-07 m
+accept -133 48.1166667
+expect -132.9984775 48.1169867
+
+tolerance 2.77777777778e-07 m
+accept -131.4571578 48.1163964
+expect -131.4555556 48.1166667
+
+tolerance 2.77777777778e-07 m
+accept -130.5177467 48.1166667
+expect -130.5161675 48.1169228
+
+tolerance 2.77777777778e-07 m
+accept -128.4570433 48.1164319
+expect -128.4555556 48.1166667
+
+tolerance 2.77777777778e-07 m
+accept -128.5459361 48.1164311
+expect -128.5444444 48.1166667
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4267 +inv
+ +step +init=epsg:4269
+--------------------------------------------------------------------------------
+tolerance 5.55555555556e-08 m
+accept -89.5177272 29.9997978
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -90.5177778 29.2833333
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -91.5176758 28.2830864
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -92.5177778 27.2833333
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -93.5176731 26.2830225
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -94.5177778 25
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -142.9972522 70.0001631
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -142 70.0
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -141.9973078 70.0001578
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -140.9971981 70.0001481
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -140 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.9973075 70.0001297
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -134.9973733 70.000055
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -128.0009742 69.9999053
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -179 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -179.9964664 70.0010089
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 180 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept 179 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -111.9991714 49.9999556
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -112 49.9999997
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -111.9991214 49.0000033
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -112 48
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -111.9991678 47.0000569
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -112 47
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -111.9991756 46.0000733
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -112 45
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.5177467 51
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.5160981 51.0002886
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.5161206 50.0002897
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.5177467 49.9999997
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.5161458 49.0002717
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.5177467 48.1166667
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.5161942 47.0002378
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.5177467 47
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.5162172 46.0002222
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.5177467 45
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -132.9984775 48.1169867
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -131.4555556 48.1166667
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.5161675 48.1169228
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -128.4555556 48.1166667
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -128.5444444 48.1166667
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5206.json b/test/gigs/5206.json
deleted file mode 100644
index d5a26252..00000000
--- a/test/gigs/5206.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
-"description" : "Test 5206, NADCON transformation, v2.0_2011-06-28. Out of transform grid area error tests have been removed.",
-"projections" : [ "+init=epsg:4267", "+init=epsg:4269" ],
-
-"coordinates": [
- [ [-89.5177272, 29.9997978], [-89.5177778, 30.0000000] ],
- [ [-90.5177778, 29.2833333], [-90.5178639, 29.2835592] ],
- [ [-91.5176758, 28.2830864], [-91.5177778, 28.2833333] ],
- [ [-92.5177778, 27.2833333], [-92.5178811, 27.2836106] ],
- [ [-93.5176731, 26.2830225], [-93.5177778, 26.2833333] ],
- [ [-94.5177778, 25], [-94.5178744, 25.0003486] ],
- [ [-142.9972522, 70.0001631], [-143, 70] ],
- [ [-142, 70.0000000], [-142.0026922, 69.9998422] ],
- [ [-141.9973078, 70.0001578], [-142, 70] ],
- [ [-140.9971981, 70.0001481], [-141, 70] ],
- [ [-140, 70], [-140.0027922, 69.9998617] ],
- [ [-138.9973075, 70.0001297], [-139, 70] ],
- [ [-138, 70], [-138.0026767, 69.9998867] ],
- [ [-134.9973733, 70.000055], [-135, 70] ],
- [ [-130, 70], [-130.0025347, 70.0000511] ],
- [ [-128.0009742, 69.9999053], [-128.0034722, 70] ],
- [ [-179, 70], [-179.0035064, 69.9990142] ],
- [ [-179.9964664, 70.0010089], [180, 70] ],
- [ [180, 70], [179.9964664, 69.9989911] ],
- [ [179, 70], [178.9964394, 69.9989678] ],
- [ [-111.9991714, 49.9999556], [-112, 49.9999997] ],
- [ [-112, 49.9999997], [-112.0008286, 50.0000439] ],
- [ [-111.9991214, 49.0000033], [-112, 49] ],
- [ [-112, 48], [-112.0008492, 47.9999606] ],
- [ [-111.9991678, 47.0000569], [-112, 47] ],
- [ [-112, 47], [-112.0008325, 46.9999431] ],
- [ [-111.9991756, 46.0000733], [-112, 46] ],
- [ [-112, 45], [-112.0008022, 44.9999197] ],
- [ [-130.5177467, 51], [-130.5193953, 50.9997114] ],
- [ [-130.5160981, 51.0002886], [-130.5177467, 51] ],
- [ [-130.5161206, 50.0002897], [-130.5177467, 49.9999997] ],
- [ [-130.5177467, 49.9999997], [-130.5193731, 49.9997097] ],
- [ [-130.5161458, 49.0002717], [-130.5177467, 49] ],
- [ [-130.5177467, 48.1166667], [-130.5193258, 48.1164106] ],
- [ [-130.5161942, 47.0002378], [-130.5177467, 47] ],
- [ [-130.5177467, 47], [-130.5192992, 46.9997622] ],
- [ [-130.5162172, 46.0002222], [-130.5177467, 46] ],
- [ [-130.5177467, 45], [-130.5192539, 44.9997925] ],
- [ [-132.9984775, 48.1169867], [-133, 48.1166667] ],
- [ [-131.4555556, 48.1166667], [-131.4571578, 48.1163964] ],
- [ [-130.5161675, 48.1169228], [-130.5177467, 48.1166667] ],
- [ [-128.4555556, 48.1166667], [-128.4570433, 48.1164319] ],
- [ [-128.5444444, 48.1166667], [-128.5459361, 48.1164311] ]
-],
-
-"tests" : [ {"type": "conversion", "tolerances": [2.7777777777777776e-07, 2.7777777777777776e-07]},
- {"type": "roundtrip", "times":1000, "tolerances": [5.555555555555556e-08, 5.555555555555556e-08] }
- ]
-}
diff --git a/test/gigs/5207.1.gie.failing b/test/gigs/5207.1.gie.failing
new file mode 100644
index 00000000..8384bf0e
--- /dev/null
+++ b/test/gigs/5207.1.gie.failing
@@ -0,0 +1,252 @@
+--------------------------------------------------------------------------------
+
+Test 5207, NTv2 transformation, v2.0_2011-06-28. Out of transform grid area error tests have been removed.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4202 +inv
+ +step +init=epsg:4283
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept -115 -10.05
+expect -115.001251111 -10.0486372222
+
+tolerance 2.77777777778e-07 m
+accept -114.998744167 -11.0013594444
+expect -115 -11
+
+tolerance 2.77777777778e-07 m
+accept -115 -12
+expect -115.001261389 -11.9986441667
+
+tolerance 2.77777777778e-07 m
+accept -138.04 -9
+expect -138.041132778 -8.99854333333
+
+tolerance 2.77777777778e-07 m
+accept -138.043867222 -9.00145666667
+expect -138.045 -9
+
+tolerance 2.77777777778e-07 m
+accept -138.05 -9
+expect -138.051132778 -8.99854333333
+
+tolerance 2.77777777778e-07 m
+accept -138.048867222 -9.00145666667
+expect -138.05 -9
+
+tolerance 2.77777777778e-07 m
+accept -138.053867222 -9.00145666667
+expect -138.055 -9
+
+tolerance 2.77777777778e-07 m
+accept -138.06 -9
+expect -138.061132778 -8.99854333333
+
+tolerance 2.77777777778e-07 m
+accept -138.038730833 -27.1264763889
+expect -138.04 -27.125
+
+tolerance 2.77777777778e-07 m
+accept -138.045 -27.125
+expect -138.046268889 -27.1235236111
+
+tolerance 2.77777777778e-07 m
+accept -138.05 -27.125
+expect -138.051268889 -27.1235236111
+
+tolerance 2.77777777778e-07 m
+accept -138.048731111 -27.1264763889
+expect -138.05 -27.125
+
+tolerance 2.77777777778e-07 m
+accept -138.055 -27.125
+expect -138.056268889 -27.1235233333
+
+tolerance 2.77777777778e-07 m
+accept -138.058731111 -27.1264766667
+expect -138.06 -27.125
+
+tolerance 2.77777777778e-07 m
+accept -136.847222222 -28.05
+expect -136.848525278 -28.0485269444
+
+tolerance 2.77777777778e-07 m
+accept -137.847222222 -28.05
+expect -137.848505556 -28.0485311111
+
+tolerance 2.77777777778e-07 m
+accept -138.847222222 -28.05
+expect -138.8484925 -28.0485188889
+
+tolerance 2.77777777778e-07 m
+accept -139.847222222 -28.05
+expect -139.848475278 -28.0485072222
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4283 +inv
+ +step +init=epsg:4202
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept -115.001251111 -10.0486372222
+expect -115 -10.05
+
+tolerance 2.77777777778e-07 m
+accept -115 -11
+expect -114.998744167 -11.0013594444
+
+tolerance 2.77777777778e-07 m
+accept -115.001261389 -11.9986441667
+expect -115 -12
+
+tolerance 2.77777777778e-07 m
+accept -138.041132778 -8.99854333333
+expect -138.04 -9
+
+tolerance 2.77777777778e-07 m
+accept -138.045 -9
+expect -138.043867222 -9.00145666667
+
+tolerance 2.77777777778e-07 m
+accept -138.051132778 -8.99854333333
+expect -138.05 -9
+
+tolerance 2.77777777778e-07 m
+accept -138.05 -9
+expect -138.048867222 -9.00145666667
+
+tolerance 2.77777777778e-07 m
+accept -138.055 -9
+expect -138.053867222 -9.00145666667
+
+tolerance 2.77777777778e-07 m
+accept -138.061132778 -8.99854333333
+expect -138.06 -9
+
+tolerance 2.77777777778e-07 m
+accept -138.04 -27.125
+expect -138.038730833 -27.1264763889
+
+tolerance 2.77777777778e-07 m
+accept -138.046268889 -27.1235236111
+expect -138.045 -27.125
+
+tolerance 2.77777777778e-07 m
+accept -138.051268889 -27.1235236111
+expect -138.05 -27.125
+
+tolerance 2.77777777778e-07 m
+accept -138.05 -27.125
+expect -138.048731111 -27.1264763889
+
+tolerance 2.77777777778e-07 m
+accept -138.056268889 -27.1235233333
+expect -138.055 -27.125
+
+tolerance 2.77777777778e-07 m
+accept -138.06 -27.125
+expect -138.058731111 -27.1264766667
+
+tolerance 2.77777777778e-07 m
+accept -136.848525278 -28.0485269444
+expect -136.847222222 -28.05
+
+tolerance 2.77777777778e-07 m
+accept -137.848505556 -28.0485311111
+expect -137.847222222 -28.05
+
+tolerance 2.77777777778e-07 m
+accept -138.8484925 -28.0485188889
+expect -138.847222222 -28.05
+
+tolerance 2.77777777778e-07 m
+accept -139.848475278 -28.0485072222
+expect -139.847222222 -28.05
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4202 +inv
+ +step +init=epsg:4283
+--------------------------------------------------------------------------------
+tolerance 5.55555555556e-08 m
+accept -115 -10.05
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -114.998744167 -11.0013594444
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -115 -12
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.04 -9
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.043867222 -9.00145666667
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.05 -9
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.048867222 -9.00145666667
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.053867222 -9.00145666667
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.06 -9
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.038730833 -27.1264763889
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.045 -27.125
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.05 -27.125
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.048731111 -27.1264763889
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.055 -27.125
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.058731111 -27.1264766667
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -136.847222222 -28.05
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -137.847222222 -28.05
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.847222222 -28.05
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -139.847222222 -28.05
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5207.1.json b/test/gigs/5207.1.json
deleted file mode 100644
index aa4e0f07..00000000
--- a/test/gigs/5207.1.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-"description" : "Test 5207, NTv2 transformation, v2.0_2011-06-28. Out of transform grid area error tests have been removed.",
-"projections" : [ "+init=epsg:4202", "+init=epsg:4283" ],
-
-"coordinates": [
- [ [-115, -10.05], [-115.001251111111, -10.048637222222] ],
- [ [-114.998744166667, -11.001359444445], [-115, -11] ],
- [ [-115, -12], [-115.001261388889, -11.998644166667] ],
- [ [-138.04, -9], [-138.041132777778, -8.998543333333] ],
- [ [-138.043867222222, -9.001456666667], [-138.045, -9] ],
- [ [-138.05, -9], [-138.051132777778, -8.998543333333] ],
- [ [-138.048867222222, -9.001456666667], [-138.05, -9] ],
- [ [-138.053867222222, -9.001456666667], [-138.055, -9] ],
- [ [-138.06, -9], [-138.061132777778, -8.998543333333] ],
- [ [-138.038730833333, -27.126476388889], [-138.04, -27.125] ],
- [ [-138.045, -27.125], [-138.046268888889, -27.123523611111] ],
- [ [-138.05, -27.125], [-138.051268888889, -27.123523611111] ],
- [ [-138.048731111111, -27.126476388889], [-138.05, -27.125] ],
- [ [-138.055, -27.125], [-138.056268888889, -27.123523333333] ],
- [ [-138.058731111111, -27.126476666667], [-138.06, -27.125] ],
- [ [-136.847222222222, -28.05], [-136.848525277778, -28.048526944445] ],
- [ [-137.847222222222, -28.05], [-137.848505555556, -28.048531111111] ],
- [ [-138.847222222222, -28.05], [-138.8484925, -28.048518888889] ],
- [ [-139.847222222222, -28.05], [-139.848475277778, -28.048507222222] ]
-],
-
-"tests" : [ {"type": "conversion", "tolerances": [2.7777777777777776e-07, 2.7777777777777776e-07]},
- {"type": "roundtrip", "times":1000, "tolerances": [5.555555555555556e-08, 5.555555555555556e-08]}
- ]
-}
diff --git a/test/gigs/5207.2.gie.failing b/test/gigs/5207.2.gie.failing
new file mode 100644
index 00000000..bc76504a
--- /dev/null
+++ b/test/gigs/5207.2.gie.failing
@@ -0,0 +1,456 @@
+--------------------------------------------------------------------------------
+
+Test 5206, NADCON transformation, v2.0_2011-06-28. Out of transform grid area error tests have been removed.
+
+--------------------------------------------------------------------------------
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4267 +inv
+ +step +init=epsg:4269
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept -142 70
+expect -142.002804722 69.9998069444
+
+tolerance 2.77777777778e-07 m
+accept -141.997195278 70.0001930556
+expect -142 70
+
+tolerance 2.77777777778e-07 m
+accept -140.997219722 70.0001791667
+expect -141 70
+
+tolerance 2.77777777778e-07 m
+accept -140 70
+expect -140.002795278 69.9998280556
+
+tolerance 2.77777777778e-07 m
+accept -138.997199444 70.0001608333
+expect -139 70
+
+tolerance 2.77777777778e-07 m
+accept -138 70
+expect -138.002957222 69.9998755556
+
+tolerance 2.77777777778e-07 m
+accept -134.997081944 70.0000463889
+expect -135 70
+
+tolerance 2.77777777778e-07 m
+accept -130 70
+expect -130.002737222 70.0000533333
+
+tolerance 2.77777777778e-07 m
+accept -128.000734722 69.9998663889
+expect -128.003472222 70
+
+tolerance 2.77777777778e-07 m
+accept -128 70
+expect -128.002737778 70.0001336111
+
+tolerance 2.77777777778e-07 m
+accept -125.997388333 69.9997780556
+expect -126 70
+
+tolerance 2.77777777778e-07 m
+accept -88.005575 70
+expect -88.0056825 70.0006094444
+
+tolerance 2.77777777778e-07 m
+accept -88 70
+expect -88.0001072222 70.0006091667
+
+tolerance 2.77777777778e-07 m
+accept -87.9998933333 69.9993908333
+expect -88 70
+
+tolerance 2.77777777778e-07 m
+accept -87.6610917 70
+expect -87.6611716667 70.0006033333
+
+tolerance 2.77777777778e-07 m
+accept -112.165693333 51.0169555556
+expect -112.166607778 51.0170094444
+
+tolerance 2.77777777778e-07 m
+accept -111.999093889 50.9999491667
+expect -112 51
+
+tolerance 2.77777777778e-07 m
+accept -111.999095278 49.9999597222
+expect -112 49.9999997222
+
+tolerance 2.77777777778e-07 m
+accept -112 49.9999997222
+expect -112.000904639 50.0000396667
+
+tolerance 2.77777777778e-07 m
+accept -111.9991175 49.0000063889
+expect -112 49
+
+tolerance 2.77777777778e-07 m
+accept -112 48
+expect -112.0008525 47.9999888889
+
+tolerance 2.77777777778e-07 m
+accept -111.999174722 47.0000097222
+expect -112 47
+
+tolerance 2.77777777778e-07 m
+accept -112 47
+expect -112.000825278 46.9999902778
+
+tolerance 2.77777777778e-07 m
+accept -130.517746667 51
+expect -130.519401944 50.9997713889
+
+tolerance 2.77777777778e-07 m
+accept -130.516091667 51.0002286111
+expect -130.517746667 51
+
+tolerance 2.77777777778e-07 m
+accept -130.516041667 50.0002461111
+expect -130.517746667 49.9999997222
+
+tolerance 2.77777777778e-07 m
+accept -130.517746667 49.9999997222
+expect -130.519451667 49.9997533333
+
+tolerance 2.77777777778e-07 m
+accept -130.516067222 49.0002825
+expect -130.517746667 49
+
+tolerance 2.77777777778e-07 m
+accept -130.517746667 48
+expect -130.519391111 47.9996794444
+
+tolerance 2.77777777778e-07 m
+accept -130.516146944 47.0003611111
+expect -130.517746667 47
+
+tolerance 2.77777777778e-07 m
+accept -130.517746667 47
+expect -130.519346389 46.9996386111
+
+tolerance 2.77777777778e-07 m
+accept -132.998205278 48.1170263889
+expect -133 48.1166666667
+
+tolerance 2.77777777778e-07 m
+accept -131.455555556 48.1166666667
+expect -131.457260278 48.1163330556
+
+tolerance 2.77777777778e-07 m
+accept -130.516098056 48.1169827778
+expect -130.517746667 48.1166666667
+
+tolerance 2.77777777778e-07 m
+accept -128.455555556 48.1166666667
+expect -128.457086944 48.1163927778
+
+tolerance 2.77777777778e-07 m
+accept -128.5444 48.1167066
+expect -128.545936111 48.1164311111
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4269 +inv
+ +step +init=epsg:4267
+--------------------------------------------------------------------------------
+tolerance 2.77777777778e-07 m
+accept -142.002804722 69.9998069444
+expect -142 70
+
+tolerance 2.77777777778e-07 m
+accept -142 70
+expect -141.997195278 70.0001930556
+
+tolerance 2.77777777778e-07 m
+accept -141 70
+expect -140.997219722 70.0001791667
+
+tolerance 2.77777777778e-07 m
+accept -140.002795278 69.9998280556
+expect -140 70
+
+tolerance 2.77777777778e-07 m
+accept -139 70
+expect -138.997199444 70.0001608333
+
+tolerance 2.77777777778e-07 m
+accept -138.002957222 69.9998755556
+expect -138 70
+
+tolerance 2.77777777778e-07 m
+accept -135 70
+expect -134.997081944 70.0000463889
+
+tolerance 2.77777777778e-07 m
+accept -130.002737222 70.0000533333
+expect -130 70
+
+tolerance 2.77777777778e-07 m
+accept -128.003472222 70
+expect -128.000734722 69.9998663889
+
+tolerance 2.77777777778e-07 m
+accept -128.002737778 70.0001336111
+expect -128 70
+
+tolerance 2.77777777778e-07 m
+accept -126 70
+expect -125.997388333 69.9997780556
+
+tolerance 2.77777777778e-07 m
+accept -88.0056825 70.0006094444
+expect -88.005575 70
+
+tolerance 2.77777777778e-07 m
+accept -88.0001072222 70.0006091667
+expect -88 70
+
+tolerance 2.77777777778e-07 m
+accept -88 70
+expect -87.9998933333 69.9993908333
+
+tolerance 2.77777777778e-07 m
+accept -87.6611716667 70.0006033333
+expect -87.6610917 70
+
+tolerance 2.77777777778e-07 m
+accept -112.166607778 51.0170094444
+expect -112.165693333 51.0169555556
+
+tolerance 2.77777777778e-07 m
+accept -112 51
+expect -111.999093889 50.9999491667
+
+tolerance 2.77777777778e-07 m
+accept -112 49.9999997222
+expect -111.999095278 49.9999597222
+
+tolerance 2.77777777778e-07 m
+accept -112.000904639 50.0000396667
+expect -112 49.9999997222
+
+tolerance 2.77777777778e-07 m
+accept -112 49
+expect -111.9991175 49.0000063889
+
+tolerance 2.77777777778e-07 m
+accept -112.0008525 47.9999888889
+expect -112 48
+
+tolerance 2.77777777778e-07 m
+accept -112 47
+expect -111.999174722 47.0000097222
+
+tolerance 2.77777777778e-07 m
+accept -112.000825278 46.9999902778
+expect -112 47
+
+tolerance 2.77777777778e-07 m
+accept -130.519401944 50.9997713889
+expect -130.517746667 51
+
+tolerance 2.77777777778e-07 m
+accept -130.517746667 51
+expect -130.516091667 51.0002286111
+
+tolerance 2.77777777778e-07 m
+accept -130.517746667 49.9999997222
+expect -130.516041667 50.0002461111
+
+tolerance 2.77777777778e-07 m
+accept -130.519451667 49.9997533333
+expect -130.517746667 49.9999997222
+
+tolerance 2.77777777778e-07 m
+accept -130.517746667 49
+expect -130.516067222 49.0002825
+
+tolerance 2.77777777778e-07 m
+accept -130.519391111 47.9996794444
+expect -130.517746667 48
+
+tolerance 2.77777777778e-07 m
+accept -130.517746667 47
+expect -130.516146944 47.0003611111
+
+tolerance 2.77777777778e-07 m
+accept -130.519346389 46.9996386111
+expect -130.517746667 47
+
+tolerance 2.77777777778e-07 m
+accept -133 48.1166666667
+expect -132.998205278 48.1170263889
+
+tolerance 2.77777777778e-07 m
+accept -131.457260278 48.1163330556
+expect -131.455555556 48.1166666667
+
+tolerance 2.77777777778e-07 m
+accept -130.517746667 48.1166666667
+expect -130.516098056 48.1169827778
+
+tolerance 2.77777777778e-07 m
+accept -128.457086944 48.1163927778
+expect -128.455555556 48.1166666667
+
+tolerance 2.77777777778e-07 m
+accept -128.545936111 48.1164311111
+expect -128.5444 48.1167066
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4267 +inv
+ +step +init=epsg:4269
+--------------------------------------------------------------------------------
+tolerance 5.55555555556e-08 m
+accept -142 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -141.997195278 70.0001930556
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -140.997219722 70.0001791667
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -140 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138.997199444 70.0001608333
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -138 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -134.997081944 70.0000463889
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -128.000734722 69.9998663889
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -128 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -125.997388333 69.9997780556
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -88.005575 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -88 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -87.9998933333 69.9993908333
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -87.6610917 70
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -112.165693333 51.0169555556
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -111.999093889 50.9999491667
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -111.999095278 49.9999597222
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -112 49.9999997222
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -111.9991175 49.0000063889
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -112 48
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -111.999174722 47.0000097222
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -112 47
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.517746667 51
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.516091667 51.0002286111
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.516041667 50.0002461111
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.517746667 49.9999997222
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.516067222 49.0002825
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.517746667 48
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.516146944 47.0003611111
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.517746667 47
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -132.998205278 48.1170263889
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -131.455555556 48.1166666667
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -130.516098056 48.1169827778
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -128.455555556 48.1166666667
+roundtrip 1000
+
+tolerance 5.55555555556e-08 m
+accept -128.5444 48.1167066
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5207.2.json b/test/gigs/5207.2.json
deleted file mode 100644
index cf5c4cd6..00000000
--- a/test/gigs/5207.2.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
-"description" : "Test 5206, NADCON transformation, v2.0_2011-06-28. Out of transform grid area error tests have been removed.",
-"projections" : [ "+init=epsg:4267", "+init=epsg:4269" ],
-
-"coordinates": [
- [ [-142, 70], [-142.002804722222, 69.999806944445] ],
- [ [-141.997195277778, 70.000193055556], [-142, 70] ],
- [ [-140.997219722222, 70.000179166667], [-141, 70] ],
- [ [-140, 70], [-140.002795277778, 69.999828055556] ],
- [ [-138.997199444444, 70.000160833333], [-139, 70] ],
- [ [-138, 70], [-138.002957222222, 69.999875555556] ],
- [ [-134.997081944444, 70.000046388889], [-135, 70] ],
- [ [-130, 70], [-130.002737222222, 70.000053333333] ],
- [ [-128.000734722222, 69.999866388889], [-128.003472222222, 70] ],
- [ [-128, 70], [-128.002737777778, 70.000133611111] ],
- [ [-125.997388333333, 69.999778055556], [-126, 70] ],
- [ [-88.005575, 70], [-88.0056825, 70.000609444445] ],
- [ [-88, 70], [-88.000107222222, 70.000609166667] ],
- [ [-87.999893333333, 69.999390833333], [-88, 70] ],
- [ [-87.6610917, 70], [-87.661171666667, 70.000603333333] ],
- [ [-112.165693333333, 51.016955555556], [-112.166607777778, 51.017009444445] ],
- [ [-111.999093888889, 50.999949166667], [-112, 51] ],
- [ [-111.999095277778, 49.999959722222], [-112, 49.999999722222] ],
- [ [-112, 49.999999722222], [-112.000904638889, 50.000039666667] ],
- [ [-111.9991175, 49.000006388889], [-112, 49] ],
- [ [-112, 48], [-112.0008525, 47.999988888889] ],
- [ [-111.999174722222, 47.000009722222], [-112, 47] ],
- [ [-112, 47], [-112.000825277778, 46.999990277778] ],
- [ [-130.517746666667, 51], [-130.519401944444, 50.999771388889] ],
- [ [-130.516091666667, 51.000228611111], [-130.517746666667, 51] ],
- [ [-130.516041666667, 50.000246111111], [-130.517746666667, 49.999999722222] ],
- [ [-130.517746666667, 49.999999722222], [-130.519451666667, 49.999753333333] ],
- [ [-130.516067222222, 49.0002825], [-130.517746666667, 49] ],
- [ [-130.517746666667, 48], [-130.519391111111, 47.999679444445] ],
- [ [-130.516146944444, 47.000361111111], [-130.517746666667, 47] ],
- [ [-130.517746666667, 47], [-130.519346388889, 46.999638611111] ],
- [ [-132.998205277778, 48.117026388889], [-133, 48.116666666667] ],
- [ [-131.455555555556, 48.116666666667], [-131.457260277778, 48.116333055556] ],
- [ [-130.516098055556, 48.116982777778], [-130.517746666667, 48.116666666667] ],
- [ [-128.455555555556, 48.116666666667], [-128.457086944444, 48.116392777778] ],
- [ [-128.5444, 48.1167066], [-128.545936111111, 48.116431111111] ]
-],
-
-"tests" : [ {"type": "conversion", "tolerances": [2.7777777777777776e-07, 2.7777777777777776e-07]},
- {"type": "roundtrip", "times":1000, "tolerances": [5.555555555555556e-08, 5.555555555555556e-08] }
- ]
-}
diff --git a/test/gigs/5208.gie b/test/gigs/5208.gie
new file mode 100644
index 00000000..25a10b96
--- /dev/null
+++ b/test/gigs/5208.gie
@@ -0,0 +1,208 @@
+--------------------------------------------------------------------------------
+
+Test 5208, Longitude Rotation, v2.0_2011-06-28.
+
+The test tolerance is 0.01". Since gie can only use linear tolerances we
+convert that to an approximate liniar distance instead, by multiplying with
+111km:
+
+ 0.01" * 111 km = 2.777777778-7 * 111000 m = 0.03 m
+
+To be on the safe side we, use 0.01 m as the tolerance.
+
+--------------------------------------------------------------------------------
+
+# NTF
+<4275> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +no_defs <>
+
+# NTF (Paris)
+<4807> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +no_defs <>
+
+
+
+<gie>
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4275 +inv
+ +step +init=epsg:4807
+--------------------------------------------------------------------------------
+tolerance 0.01 m
+accept 5 58
+expect 2.66277083 58
+
+tolerance 0.01 m
+accept 5 56
+expect 2.66277083 56
+
+tolerance 0.01 m
+accept 5 55
+expect 2.66277083 55
+
+tolerance 0.01 m
+accept 5 53
+expect 2.66277083 53
+
+tolerance 0.01 m
+accept 4 51
+expect 1.66277083 51
+
+tolerance 0.01 m
+accept 4 49
+expect 1.66277083 49
+
+tolerance 0.01 m
+accept 2.33722917 46.8
+expect 0 46.8
+
+tolerance 0.01 m
+accept 3 53
+expect 0.66277083 53
+
+tolerance 0.01 m
+accept 4 53
+expect 1.66277083 53
+
+tolerance 0.01 m
+accept 6 53
+expect 3.66277083 53
+
+tolerance 0.01 m
+accept 7 53
+expect 4.66277083 53
+
+tolerance 0.01 m
+accept 9 53
+expect 6.66277083 53
+
+tolerance 0.01 m
+accept 10 53
+expect 7.66277083 53
+
+tolerance 0.01 m
+accept 11 53
+expect 8.66277083 53
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4807 +inv
+ +step +init=epsg:4275
+--------------------------------------------------------------------------------
+tolerance 0.01 m
+accept 2.66277083 58
+expect 5 58
+
+tolerance 0.01 m
+accept 2.66277083 56
+expect 5 56
+
+tolerance 0.01 m
+accept 2.66277083 55
+expect 5 55
+
+tolerance 0.01 m
+accept 2.66277083 53
+expect 5 53
+
+tolerance 0.01 m
+accept 1.66277083 51
+expect 4 51
+
+tolerance 0.01 m
+accept 1.66277083 49
+expect 4 49
+
+tolerance 0.01 m
+accept 0 46.8
+expect 2.33722917 46.8
+
+tolerance 0.01 m
+accept 0.66277083 53
+expect 3 53
+
+tolerance 0.01 m
+accept 1.66277083 53
+expect 4 53
+
+tolerance 0.01 m
+accept 3.66277083 53
+expect 6 53
+
+tolerance 0.01 m
+accept 4.66277083 53
+expect 7 53
+
+tolerance 0.01 m
+accept 6.66277083 53
+expect 9 53
+
+tolerance 0.01 m
+accept 7.66277083 53
+expect 10 53
+
+tolerance 0.01 m
+accept 8.66277083 53
+expect 11 53
+
+--------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +init=epsg:4275 +inv
+ +step +init=epsg:4807
+--------------------------------------------------------------------------------
+tolerance 0.01 m
+accept 5 58
+roundtrip 1000
+
+tolerance 0.01 m
+accept 5 56
+roundtrip 1000
+
+tolerance 0.01 m
+accept 5 55
+roundtrip 1000
+
+tolerance 0.01 m
+accept 5 53
+roundtrip 1000
+
+tolerance 0.01 m
+accept 4 51
+roundtrip 1000
+
+tolerance 0.01 m
+accept 4 49
+roundtrip 1000
+
+tolerance 0.01 m
+accept 2.33722917 46.8
+roundtrip 1000
+
+tolerance 0.01 m
+accept 3 53
+roundtrip 1000
+
+tolerance 0.01 m
+accept 4 53
+roundtrip 1000
+
+tolerance 0.01 m
+accept 6 53
+roundtrip 1000
+
+tolerance 0.01 m
+accept 7 53
+roundtrip 1000
+
+tolerance 0.01 m
+accept 9 53
+roundtrip 1000
+
+tolerance 0.01 m
+accept 10 53
+roundtrip 1000
+
+tolerance 0.01 m
+accept 11 53
+roundtrip 1000
+
+</gie>
diff --git a/test/gigs/5208.json b/test/gigs/5208.json
deleted file mode 100644
index 4242c175..00000000
--- a/test/gigs/5208.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-"description": "Test 5208, Longitude Rotation, v2.0_2011-06-28.",
-"projections" : [ "+init=epsg:4275", "+init=epsg:4807" ],
-
-"coordinates": [
- [ [5, 58], [2.66277083, 58] ],
- [ [5, 56], [2.66277083, 56] ],
- [ [5, 55], [2.66277083, 55] ],
- [ [5, 53], [2.66277083, 53] ],
- [ [4, 51], [1.66277083, 51] ],
- [ [4, 49], [1.66277083, 49] ],
- [ [2.33722917, 46.8], [0, 46.8] ],
- [ [3, 53], [0.66277083, 53] ],
- [ [4, 53], [1.66277083, 53] ],
- [ [6, 53], [3.66277083, 53] ],
- [ [7, 53], [4.66277083, 53] ],
- [ [9, 53], [6.66277083, 53] ],
- [ [10, 53], [7.66277083, 53] ],
- [ [11, 53], [8.66277083, 53] ]
-],
-
-"tests" : [ {"type": "conversion", "tolerances": [2.7777777777777776e-07, 2.7777777777777776e-07]},
- {"type": "roundtrip", "times":1000, "tolerances": [5.555555555555556e-08, 5.555555555555556e-08] }
- ]
-}
diff --git a/test/gigs/Makefile.am b/test/gigs/Makefile.am
new file mode 100644
index 00000000..25f7d141
--- /dev/null
+++ b/test/gigs/Makefile.am
@@ -0,0 +1,76 @@
+EXEPATH = ../../src
+GIEEXE = $(EXEPATH)/gie
+
+EXTRA_DIST = \
+ 5101.1-jhs.gie \
+ 5101.2-jhs.gie \
+ 5101.3-jhs.gie \
+ 5101.4-jhs-etmerc.gie \
+ 5102.1.gie \
+ 5103.1.gie \
+ 5103.2.gie \
+ 5103.3.gie \
+ 5105.2.gie \
+ 5106.gie \
+ 5107.gie \
+ 5109.gie \
+ 5111.1.gie \
+ 5112.gie \
+ 5113.gie \
+ 5201.gie \
+ 5208.gie
+
+PROJ_LIB ?= $(top_srcdir)/nad
+
+5101.1: 5101.1-jhs.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5101.2: 5101.2-jhs.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5101.3: 5101.3-jhs.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5101.4: 5101.4-jhs-etmerc.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5102.1: 5102.1.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5103.1: 5103.1.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5103.2: 5103.2.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5103.3: 5103.3.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5105.2: 5105.2.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5106: 5106.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5107: 5107.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5109: 5109.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5111.1: 5111.1.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5112: 5112.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5113: 5113.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5201: 5201.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+5208: 5208.gie
+ PROJ_LIB=$(PROJ_LIB) $(GIEEXE) $<
+
+check-local: 5101.1 5101.2 5101.3 5101.4 5102.1 5103.1 5103.2 5103.3 5105.2 5106 5107 5109 5111.1 5112 5113 5201 5208
diff --git a/test/gigs/TESTNOTES.md b/test/gigs/TESTNOTES.md
deleted file mode 100644
index ff9c03a1..00000000
--- a/test/gigs/TESTNOTES.md
+++ /dev/null
@@ -1,225 +0,0 @@
-## TEST JSON ###########################################################
-
-This is the testing framework that uses JSON formatted files that tests
-PROJ.4 using Geospatial Integrity of Geoscience Software (GIGS) calculations.
-This could be used as a framework for testing projections from other
-sources.
-
-
-For more information about the Geospatial Integrity of Geoscience Software
-(GIGS) at
-http://www.iogp.org/Geomatics#2521115-gigs
-
-## Geospatial Integrity of Geoscience Software License #################
-
-The disclaimer and copyright **only** applies to JSON files that originate
-from GIGS tests, which is a reformatting material provided by the
-International Association of Oil & Gas Producers.
-
-**Disclaimer**
-
-Whilst every effort has been made to ensure the accuracy of the information contained in this publication,
-neither the OGP nor any of its members past present or future warrants its accuracy or will, regardless
-of its or their negligence, assume liability for any foreseeable or unforeseeable use made thereof, which
-liability is hereby excluded. Consequently, such use is at the recipient’s own risk on the basis that any use
-by the recipient constitutes agreement to the terms of this disclaimer. The recipient is obliged to inform
-any subsequent recipient of such terms.
-
-This document may provide guidance supplemental to the requirements of local legislation. Nothing
-herein, however, is intended to replace, amend, supersede or otherwise depart from such requirements. In
-the event of any conflict or contradiction between the provisions of this document and local legislation,
-applicable laws shall prevail.
-
-**Copyright notice**
-
-The contents of these pages are © The International Association of Oil & Gas Producers. Permission
-is given to reproduce this report in whole or in part provided (i) that the copyright of OGP and (ii)
-the source are acknowledged. All other rights are reserved.” Any other use requires the prior written
-permission of the OGP.
-
-These Terms and Conditions shall be governed by and construed in accordance with the laws of
-England and Wales. Disputes arising here from shall be exclusively subject to the jurisdiction of the
-courts of England and Wales.
-
-
-## INSTALLING ##########################################################
-
- * Requires: Python 2.7 or 3.3+
- * pyproj (optional but highly recommended), this speeds up tests, makes
- results more precise but has the trade-off of making installation a
- little more complicated.
-
-
-
-### Installing pyproj ##################################################
-
- 1) Install `pip` (usually `pip3`) if not installed, should already be installed on new Python
- versions (Python 3 >=3.4) or if using a virtual environment for python.
- see https://pip.pypa.io/en/stable/installing/
- * **Note**: if you have Python 2.x and 3.x installed, `pip3` is for Python 3.x.
- `pip` could be an alias for either one.
- 2) Upgrade `pip` (possibly not needed)
- https://pip.pypa.io/en/stable/installing/#upgrading-pip
- 3) Install pyproj
- * requires a C/C++ compiler be usable by python
- * repository version requires Cython to be installed, releases do not require this
-
-```
- $ pip install cython
-```
-
- * install latest release
- * set PROJ_DIR environment variable to an installed version of PROJ4
- library. This should have the directories include/ lib/ &
- share/proj/ underneath it.
-
- * installing on Linux (default ./configure settings for PROJ.4)
-
-```
- $ PROJ_DIR=/usr/local pip install pyproj
-```
-
-## Running Tests #######################################################
-
-When calling test_json.py it defaults to using pyproj driver.
-
-```
- $ python test_json.py 5*.json
-```
-
-There is a driver to directly use cs2cs instead of installing pyproj, but
-it is much slower and not recommended.
-
-Here is how you run the cs2cs driver:
-
-```
- $ python test_json.py -d cs2cs -e path/to/repo/bin/cs2cs 5201.json
-```
-
-
-## GIGS Test ###########################################################
-
-Tests that were meant to test for out of grid errors were removed from
-testing. PROJ.4 cs2cs provides coordinates seemingly without warnings
-or errors.
-
-### Drastic Tolerance Errors ###########################################
-
-These are errors that might indicate the wrong projection is being used,
-wrong parameters are being used in the projection, or problems with the
-projection itself. It could point to problems with the provided model.
-
- * 5101 part 4 - Transverse Mercator
- - EPSG code will need to be redefined to make sure that etmerc version
- is used, should be done before next release (4.9.3 / 4.10.0 ?)
- - Temporarily use test "5101.4-jhs-etmerc.json", perhaps remove file
- when etmerc/tmerc aliasing issue has been fixed.
- * 5102 part 2 - Lambert Conic Conformal (1SP)
- - This one seems to have some problems.
- * 5105 part 1 - Oblique Mercator (variant B)
- - There are some drastically different answers.
-
-### Slight Tolerance Errors ############################################
-
-These tests have results with rounding errors that are slightly out of
-tolerance. This could be due to a lack of precision in the JSON file
-or due to the formula's precision. Most of these tests fail with some
-point in testing 1,000 round trip coordinate conversions. A few of these
-might require a little bit of tuning with cs2cs. There are some rather
-concerning differences between Python 2.7 and Python 3.4 in testing, which
-needs to be pinpointed.
-
- * 5101 part 1 - Transverse Mercator
- - roundtrip tests fail with very slight tolerance issues
- * 5104 - Oblique stereographic
- - roundtrip tests fail with very slight tolerance issues
- * 5105 part 2 - Oblique Mercator (variant B)
- - roundtrip tests fail with tolerance issues
- * 5106 - Hotline Oblique Mercator (variant A)
- - roundtrip tests fail with very slight tolerance issues
- * 5108 - Cassini-Soldner
- - roundtrip tests seem to accumulate errors
- * 5110 - Lambert Azimuthal Equal Area
- - roundtrip tests have some slight errors
- * 5111 part 1 - Mercator (variant A)
- - roundtrip tests fail with very slight tolerance issues
- * 5111 part 2 - Mercator (variant A)
- * 5203 part 1 - Position Vector 7-parameter transformation
- - most seem to be rounding errors. Some results cross longitude
- line 180/-180
- * 5204 part 1 - Coordinate Frame 7-parameter transformation
- - most seem to be rounding errors. Some results cross longitude
- line 180/-180
- * 5205 part 1 - Molodensky-Badekas 10-parameter transformation
- - most seem to be rounding errors. Some results cross longitude
- line 180/-180
- * 5206 - NADCON transformation
- * 5207 parts 1 & 2 - NTv2 transformation
-
-
-### Other Issues with Tests ############################################
- * 5201 - Geographic Geocentric conversions
- - EPSG code 4979, does not exist in PROJ.4 substituted EPGS code 4326.
- - The test passes.
- * 5206 and 5207 parts 1 & 2 - NADCON Transformation and NTv2 Transformation
- - These tests have cases that are out of grid, which have been omitted.
- The GIGS tests expectations, "[n]ote 1: This location is out of
- transformation grid area - the attempted transformation should fail
- and application notify user."
-
-
-## Passing Tests #######################################################
- * 5101 part 2 - Transverse Mercator
- * 5101 part 3 - Transverse Mercator
- * 5102 part 1 - Lambert Conic Conformal (1SP)
- * 5103 part 1 - Lambert Conic Conformal (2SP)
- * 5103 part 2 - Lambert Conic Conformal (2SP)
- * 5103 part 3 - Lambert Conic Conformal (2SP)
- * 5107 - American Polyconic
- * 5109 - Albers Equal Area
- * 5112 - Mercator (variant B)
- * 5113 - Transverse Mercator (South Oriented)
- * 5208 - Longitude Rotation
-
-
-
-## Benchmarks ##########################################################
-
-Benchmarks were made using Micah Cochran's circa 2008 Desktop computer
-using LXLE Ubuntu Linux 14.04. The pattern "5*.json" was used for testing.
-
-This is the computer time used for the process, not the actual run time.
- * pyproj driver testing 5 seconds
- * cs2cs driver testing - using Python 2.7.6 - 4 min 36 seconds
- * cs2cs driver testing - using Python 3.4.3 - 6 min 23 seconds
-
-
-
-## Random Notes #######################################################
-Roundtrip testing has been fixed, it now checks both resulting coordinates.
-
-Some tests in the 5100/5200 series have not been converted. The most of
-the 3d coordinate test in the 5200 series have not been converted.
-
-This is designed to use decimal degrees over Sexagesimal degree or degree
-minutes seconds, which is a decision that might need to be revisited.
-Decimal degrees were chosen because it was easier interface with the
-Python pyproj library. This might be the cause of some testing tolerance
-issues.
-
-pyproj and cs2cs drivers do not quite work the same. Different tests
-fail depending on the driver.
-
-Other drivers could be written to interface with other code.
-
-There could be some precision issues with cs2cs, perhaps some adjustment
-of the "-f format" parameter could help. This could be done based either
-on expected output or extra info from the JSON file.
-
-A TODO list is located source code.
-
-Conversion tests the output coordinate, causing 2 test results per
-coordinate pair.
-
-Roundtrip tests the input coordinate and the output coordinate of each
- pair, causing 4 test results per coordinate pair.
diff --git a/test/gigs/test_json.py b/test/gigs/test_json.py
deleted file mode 100644
index 11aec31e..00000000
--- a/test/gigs/test_json.py
+++ /dev/null
@@ -1,528 +0,0 @@
-# This is a framework to test GIGS, Geospatial Integrity of geoscience
-# software. Which is published by International Association of Oil & Gas
-# Producers as a resources for how geospatial software should give consistent
-# and expected results.
-#
-# This could be expanded to be used with other testing frameworks.
-#
-# - See more at: http://www.iogp.org/Geomatics#2521115-gigs
-#
-
-#
-# == REQUIREMENTS ==
-# - Python 2.7 or 3.3+
-# - pyproj (optional but highly recommended) - read TESTNOTES.md
-
-# == TODO list ==
-# * Python 3 was not running all the test cases seemingly due to how it uses
-# an iterable version of zip. -- FIXED
-# * driver for proj4js (javascript)
-# - could be written using nodejs using subprocess
-# - could use PyExecJS (currently not advanced enough) or PyV8
-# * call cs2cs directly
-# - WORKING but 2 orders of magnitude slower than pyproj, and
-# potentially insecure shelling?
-
-
-import argparse
-import glob
-import json
-import logging
-import os
-import platform
-import sys
-import subprocess
-from tempfile import NamedTemporaryFile
-
-# only for debug
-# import pdb
-
-try:
- import pyproj
-except ImportError as e_pyproj:
- pass
-
-
-PY_MAJOR = sys.version_info[0]
-PY2 = (PY_MAJOR == 2)
-
-# Python 2/3 Compatibility code ########################################
-if PY_MAJOR >= 3:
- # list-producing versions of the major Python iterating functions
- # lzip acts like Python 2.x zip function.
- # taken from Python-Future http://python-future.org/
- # future.utils.lzip()
-
- def lzip(*args, **kwargs):
- return list(zip(*args, **kwargs))
-
-else:
- from __builtin__ import zip as lzip
-########################################################################
-
-
-def list_count_matches(coords, ex_coords, tolerance):
- """
- counts coordinates in lists that match and don't match.
- assumes that lists are the same length (they should be)
-
- coords - coordinates
- ex_cords - expected cooridnate
- tolerance - difference allowed between the coordinates
-
- returns tuple (matches, non_matches)
- """
- matches, non_matches = 0, 0
- iter_ex_coords = iter(ex_coords)
- for c in coords:
- ex_coord = next(iter_ex_coords)
- if match_func(c, ex_coord, tolerance):
- matches = matches + 1
- else:
- non_matches = non_matches + 1
-
- return (matches, non_matches)
-
-
-def match_func(cor, exc, tolerance):
- """
- Check if coordinate matches expected coordinate within a given tolerance.
-
- cor - coordinate
- exc - expected coordinate
- tolerance - error rate
- float coordinate elements will be checked based on this value
- list/tuple coordinate elements will be checked based on the
- corresponding values
- return bool
- """
- if len(exc) == 3:
- # coordinate triples
- coord_diff = abs(cor[0] - exc[0]), abs(cor[1] - exc[1]), abs(cor[2] - exc[2])
- if isinstance(tolerance, float):
- matching = coord_diff < (tolerance, tolerance, tolerance)
- elif isinstance(tolerance, (list, tuple)): # FIXME is list's length atleast 3?
- matching = coord_diff < tuple(tolerance)
- else:
- # assume coordinate pairs
- coord_diff = abs(cor[0] - exc[0]), abs(cor[1] - exc[1])
- if isinstance(tolerance, float):
- matching = coord_diff < (tolerance, tolerance)
- elif isinstance(tolerance, (list, tuple)): # FIXME is list's length atleast 2?
- matching = coord_diff < tuple(tolerance)
-
- if matching is False:
- logging.info('non-match, calculated coordinate: {c1}\n'
- 'expected coordinate: {c2}\n difference:{res}\n'
- 'tolerance: {tol}\n'
- ''.format(c1=cor, c2=exc, res=coord_diff, tol=tolerance))
-
- return matching
-
-
-# parse multiple tests and call TransformTest
-# TODO: needs some awareness of the driver, so driver_info function in
-# TransformTest classes can be called, could allow a dummy instance of
-# Driver and move all the initization code to another function? Or allow
-# dipatch function to check if everything is in order do a transform.
-# Not an elegant solution.
-class TransformRunner(object):
- def __init__(self, fn_pattern, driver, **kwargs):
- """
- fn_pattern - file name or file name pattern (example "*.json")
- driver - this is the type of driver to run
- kwargs - parameters passed to the respective driver TransformTest class
- """
- self.driver = driver
- json_input = []
- if os.path.isfile(fn_pattern):
- with open(fn_pattern, 'rt') as fp:
- logging.info("Reading json from file '{0}'".format(fn_pattern))
- json_dict = json.load(fp, parse_int=float)
- json_dict['filename'] = fn_pattern
- json_input = [json_dict]
- # is this a glob/fnmatch style pattern?
- elif '*' in fn_pattern or '?' in fn_pattern:
- filename_iter = glob.iglob(fn_pattern)
- for filename in filename_iter:
- with open(filename, 'rt') as fp:
- logging.info("Reading json from file '{0}'".format(filename))
- j_input = json.load(fp, parse_int=float)
- if isinstance(j_input, dict):
- j_input['filename'] = filename
- json_input.append(j_input)
- elif isinstance(j_input, list):
- # FIXME could build a new list with the filename dict
- logging.warning("json file is a list, not quite supported - FIXME")
- json_input.extend(j_input)
- else:
- raise ValueError('json input in an unknown type')
- else:
- raise TypeError('filename_pattern must be a valid filename or pattern')
-
- self.runs = json_input
- self.kwargs = kwargs
-
- def dispatch(self):
- """
- main loop to run all the tests
- """
- total_matches, total_no_matches, success_code = 0, 0, 0
- for run in self.runs:
- if self.driver == 'pyproj':
- trantst = TransformTestPyProj(run, self.kwargs)
- elif self.driver == 'cs2cs':
- trantst = TransformTestCs2cs(run, self.kwargs)
- else:
- raise ValueError("driver {0} is not a valid test driver".format(self.driver))
- matches, no_matches = trantst.dispatch()
- total_matches += matches
- total_no_matches += no_matches
- success_code += no_matches
-
- return total_matches, total_no_matches, success_code
-
-
-# parses and runs a single GIGS test case
-class TransformTestBase(object):
- """
- TransformTest common code for testing framework.
- """
- def __init__(self, json_dict, kwargs):
- """
- json_dict must dictonary from json
- """
- if not isinstance(json_dict, dict): # must be a json dictionary
- raise TypeError("json_source must be a dictionary type not {0}"
- "".format(type(json_dict)))
-
- # require keys 'coordinates' and 'projections'
- if 'coordinates' not in json_dict:
- raise KeyError("TransformTest.__init__ requires 'coordinates' key"
- " in json source input")
-
- if 'projections' not in json_dict:
- raise KeyError("TransformTest.__init__ requires 'projections' key"
- " in json source input")
-
- logging.info('Number of coordinate pairs to test: {0}'.format(
- len(json_dict['coordinates'])))
-
- self.run_test_args = kwargs.get('test')
-
- # unpack coordinates
- self.coords_left, self.coords_right = lzip(*json_dict['coordinates'])
-
- self.testobj = json_dict
-
- def runner_conversion(self, **kwargs):
- """
- tests a single conversion
-
- return tuple (num_matches, num_no_matches)
- """
-
- # get tolerance, if not set tolerance to a precise value
- tolerances = kwargs.get('tolerances', [0.0000000000001, 0.0000000000001])
-
- test_right = self.transform(self.proj_left, self.proj_right, self.coords_left)
- test_left = self.transform(self.proj_right, self.proj_left, self.coords_right)
-
- results1 = list_count_matches(test_right, self.coords_right, tolerances[1])
- results2 = list_count_matches(test_left, self.coords_left, tolerances[0])
-
- return (results1[0] + results2[0], results1[1] + results2[1])
-
- def runner_roundtrip(self, **kwargs):
- """
- rountrip test using pyproj.
-
- times - number roundtrips to perform
- tolerance - TODO explain the structure of why this is a list
-
- return tuple (num_matches, num_no_matches)
- """
- times = None
-
- # get variables
- times = int(kwargs.get('times'))
- tolerances = kwargs.get('tolerances', [0.0000000000001, 0.0000000000001])
-
- # keep the transformations separate, so as to not cross contaminate the
- # results.
-
- # process roundtrip for the left coordinates - Test 1
- test1_left = self.coords_left
- for i in range(times):
- test1_right = self.transform(self.proj_left, self.proj_right, test1_left)
- test1_left = self.transform(self.proj_right, self.proj_left, test1_right)
-
- # process roundtrip for the right coordinates - Test 2
- test2_right = self.coords_right
- for i in range(times):
- test2_left = self.transform(self.proj_right, self.proj_left, test2_right)
- test2_right = self.transform(self.proj_left, self.proj_right, test2_left)
-
- results = (
- list_count_matches(test1_right, self.coords_right, tolerances[1]),
- list_count_matches(test1_left, self.coords_left, tolerances[0]),
- list_count_matches(test2_right, self.coords_right, tolerances[1]),
- list_count_matches(test2_left, self.coords_left, tolerances[0])
- )
-
- return tuple(sum(x) for x in lzip(*results))
-
- # TODO: Untested. Not useful for GIGS.
- def runner_onedirection(self, **kwargs):
- """
- Perform a conversion in only one direction, not both. Useful for
- testing convergence of a coordinate system.
-
- return tuple (num_matches, num_no_matches)
- """
- # get variables
- direction = kwargs.get('direction')
- # get tolerance, if not set tolerance to a precise value
- tolerances = kwargs.get('tolerances', [0.0000000000001, 0.0000000000001])
-
- if direction not in ('left-to-right', 'right-to-left'):
- raise ValueError('direction must be left-to-right or right-to-left, not: {0}'.format(direction))
-
- if direction == 'left-to-right':
- test_dest_right = self.transform(self.proj_left, self.proj_right, self.coords_left)
- results = list_count_matches(test_dest_right, self.coords_right, tolerances[1])
- elif direction == 'right-to-left':
- test_dest_left = self.transform(self.proj_right, self.proj_left, self.coords_right)
- results = list_count_matches(test_dest_left, self.coords_left, tolerances[0])
- else:
- raise RuntimeError('Unexpected state of value direction "{0}" in runner_onedirection'.format(direction))
-
- return results
-
- # placeholder function
- def transform(self, src_crs, dst_crs, coords):
- pass
-
- def dispatch(self):
- """
- main
- """
- matches, no_matches = 0, 0
-
- # convert to tuple
- run_tests = self.run_test_args,
- if self.run_test_args is None:
- run_tests = ('conversion', 'roundtrip')
-
- logging.info('Testing: {0}'.format(self.testobj['description']))
-
- for test in self.testobj['tests']:
- m_res, nm_res = None, None
- if test['type'] not in run_tests:
- # skip test
- continue
-
- if test['type'] == 'conversion':
- m_res, nm_res = self.runner_conversion(**test)
- elif test['type'] == 'roundtrip':
- m_res, nm_res = self.runner_roundtrip(**test)
-
- if nm_res == 0:
- logging.info(" {0}... All {1} match.".format(test['type'], m_res))
- else:
- logging.info(" {0}... matches: {1} doesn't match: {2}"
- "".format(test['type'], m_res, nm_res))
-
- matches += m_res
- no_matches += nm_res
-
- return matches, no_matches
-
- # placeholder function -- TODO How should this be exposed?
- def driver_info(self):
- return "base class"
-
-
-class TransformTestPyProj(TransformTestBase):
- """
- TransformTest uses pyproj to run tests.
- """
- def __init__(self, json_dict, kwargs):
- # call super class
- TransformTestBase.__init__(self, json_dict, kwargs)
-
- # setup projections
- try:
- self.proj_left = pyproj.Proj(json_dict['projections'][0], preserve_units=True)
- except RuntimeError as e:
- logging.error('pyproj raised a RuntimeError for projection string:'
- ' "{0}"'.format(json_dict['projections'][0]))
- raise RuntimeError(e)
- try:
- self.proj_right = pyproj.Proj(json_dict['projections'][1], preserve_units=True)
- except RuntimeError as e:
- logging.error('pyproj raised a RuntimeError for projection string:'
- ' "{0}"'.format(json_dict['projections'][1]))
- raise RuntimeError(e)
-
- def transform(self, src_crs, dst_crs, coords):
- return self.pyproj_transform_ex(src_crs, dst_crs, coords)
-
- def driver_info(self):
- return 'pyproj {0}\nproj4 {1}\n'.format(
- pyproj.__version__, self.proj4_version())
-
- # TODO: currently dead code, unneeded for the pyproj repo. version
- # as of 2016-05-24.
- def proj4_version():
- """
- Gives the proj.4 library's version number. (requires pyproj)
- returns string, so proj.4 version 4.9.3 will return "4.9.3"
- """
- try:
- return pyproj.proj_version_str
- except AttributeError:
- # for pyproj versions 1.9.5.1 and before, this will run
- # Get PROJ4 version in a floating point number
- proj4_ver_num = pyproj.Proj(proj='latlong').proj_version
-
- # convert float into a version string (4.90 becomes '4.9.0')
- return '.'.join(str(int(proj4_ver_num * 100)))
-
- def pyproj_transform_ex(self, proj_src, proj_dst, coords):
- """
- wrapper for pyproj.transform to do all the zipping of the coordinates
-
- returns coordinate list
- """
- # are these coordinate triples?
- if len(coords[0]) == 3:
- xi, yi, zi = lzip(*coords)
- xo, yo, zo = pyproj.transform(proj_src, proj_dst, xi, yi, zi)
- return lzip(xo, yo, zo)
-
- # assume list of coordinate pairs
- xi, yi = lzip(*coords)
- xo, yo = pyproj.transform(proj_src, proj_dst, xi, yi)
- return lzip(xo, yo)
-
-
-class TransformTestCs2cs(TransformTestBase):
- def __init__(self, json_dict, kwargs):
- # call super class
- TransformTestBase.__init__(self, json_dict, kwargs)
-
- # copy proj4 projection strings
- self.proj_left, self.proj_right = json_dict['projections']
-
- self.exe = kwargs.get('exe', 'cs2cs')
-
- # when the exe is not the default, check if the file exists
- if self.exe == 'cs2cs' or not os.path.isfile(self.exe):
- raise RuntimeError('cannot find cs2cs executable file: {}'
- ''.format(self.exe))
-
- def transform(self, src_crs, dst_crs, coords):
- # send points to a temporary file
- # TODO Should this use with statement?
- tmpfn = NamedTemporaryFile(mode='w+t', delete=False)
- for point in coords:
- # convert list of float values into a list of strings
- point = [str(e) for e in point]
- # print('POINT: {}'.format(point))
- tmpfn.write(' '.join(point) + '\n')
-
- tmpfn.flush()
- command = "{exe} {proj_from} +to {proj_to} -f %.13f {filename}".format(
- exe=self.exe, proj_from=src_crs, proj_to=dst_crs, filename=tmpfn.name)
- tmpfn.close()
-
- logging.debug('Running Popen on command "{0}"'.format(command))
-
- if platform.system() == 'Windows':
- shell = False
- else:
- # shell=True according to the subprocess documentation has some
- # security implications
- # Linux seems to need this
- shell = True
-
- # call cs2cs
- outs = subprocess.check_output(command, shell=shell)
-
- # delete temporary filename
- os.unlink(tmpfn.name)
-
- # print('RESULTS OUTS: {}\n'.format(outs))
- # print('RESULTS ERRS: {}\n'.format(errs))
-
- # outs
- # print('RESULTS LINE: {}\n'.format([line.split() for line in outs]))
- coords = []
-
- # process output
- for line in outs.splitlines():
- # print("LINE: {}".format(line))
- coord = []
- for e in line.split():
- coord.append(float(e))
-
- coords.append(coord)
-
- # print('COORDS: {}\n'.format(coords))
- return coords
-
- def driver_info(self):
- shell = True # see transform() for info.
- if platform.system() == 'Windows':
- shell = False
-
- outs = subprocess.check_output(self.exe, shell=shell)
- return 'PROJ.4 version: ' + outs.splitlines()[0] + '\n'
-
-
-if __name__ == '__main__':
- # logging.basicConfig(level=logging.DEBUG)
- logging.basicConfig(level=logging.INFO)
-
- parser = argparse.ArgumentParser(description='Test PROJ.4 using a JSON file.')
- parser.add_argument('-e', '--exe',
- help="executable with path default: 'cs2cs' (needed for cs2cs driver)")
-
- parser.add_argument('-d', '--driver', default='pyproj',
- help='driver to test')
-
- parser.add_argument('-t', '--test',
- help='only run these test types (valid values: conversion or roundtrip)')
-
- # get json file names and/or glob patterns
- parser.add_argument('testnames_pat_json', nargs=argparse.REMAINDER,
- help='single filename or glob wildcard patern')
-
- args = parser.parse_args()
-
- # test that the arguments have sensible values
- if args.driver not in ('cs2cs', 'pyproj'):
- raise ValueError('driver "{}" is not a valid driver'.format(args.driver))
-
- logging.info('Python {}'.format(sys.version))
- logging.info('using driver: {}'.format(args.driver))
-
- # there could be a version command for the TransformRunner TODO
-
- match_results, nonmatch_results, success_code = 0, 0, 0
- for test_name in args.testnames_pat_json:
- tratst = TransformRunner(test_name, driver=args.driver, exe=args.exe,
- test=args.test)
- m_res, nm_res, success_cd = tratst.dispatch()
- match_results += m_res
- nonmatch_results += nm_res
- success_code += success_cd
-
- logging.info("----------------------------------------")
- logging.info("TOTAL: matches: {0} non-matching: {1}"
- "".format(match_results, nonmatch_results))
-
- # exit status code is the number of non-matching results
- # This should play nicely with Travis and similar testing.
- sys.exit(success_code)