From 99b25fcf9009a6cc098cf2e0703f994d74968985 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 9 Aug 2019 17:50:35 +0200 Subject: C API: add proj_as_projjson() --- test/unit/test_c_api.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'test/unit/test_c_api.cpp') diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index bfbae1a5..5649ca9f 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -3489,4 +3489,56 @@ TEST_F(CApi, proj_concatoperation_get_step) { } } +// --------------------------------------------------------------------------- + +TEST_F(CApi, proj_as_projjson) { + auto obj = proj_create( + m_ctxt, + Ellipsoid::WGS84->exportToJSON(JSONFormatter::create().get()).c_str()); + ObjectKeeper keeper(obj); + ASSERT_NE(obj, nullptr); + + { + auto projjson = proj_as_projjson(m_ctxt, obj, nullptr); + ASSERT_NE(projjson, nullptr); + EXPECT_EQ(std::string(projjson), + "{\n" + " \"type\": \"Ellipsoid\",\n" + " \"name\": \"WGS 84\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257223563,\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 7030\n" + " }\n" + "}"); + } + { + const char *const options[] = {"INDENTATION_WIDTH=4", nullptr}; + auto projjson = proj_as_projjson(m_ctxt, obj, options); + ASSERT_NE(projjson, nullptr); + EXPECT_EQ(std::string(projjson), + "{\n" + " \"type\": \"Ellipsoid\",\n" + " \"name\": \"WGS 84\",\n" + " \"semi_major_axis\": 6378137,\n" + " \"inverse_flattening\": 298.257223563,\n" + " \"id\": {\n" + " \"authority\": \"EPSG\",\n" + " \"code\": 7030\n" + " }\n" + "}"); + } + { + const char *const options[] = {"MULTILINE=NO", nullptr}; + auto projjson = proj_as_projjson(m_ctxt, obj, options); + ASSERT_NE(projjson, nullptr); + EXPECT_EQ(std::string(projjson), + "{\"type\":\"Ellipsoid\",\"name\":\"WGS 84\"," + "\"semi_major_axis\":6378137," + "\"inverse_flattening\":298.257223563," + "\"id\":{\"authority\":\"EPSG\",\"code\":7030}}"); + } +} + } // namespace -- cgit v1.2.3 From cad1c5cf61fc00759bf4ad17b0b34f57f4945de6 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 17 Aug 2019 10:58:08 +0200 Subject: PROJJSON: rename file as projjson.schema.json, and add versionning to it and to exported PROJJSON strings --- test/unit/test_c_api.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'test/unit/test_c_api.cpp') diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index 5649ca9f..97440796 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -3503,6 +3503,8 @@ TEST_F(CApi, proj_as_projjson) { ASSERT_NE(projjson, nullptr); EXPECT_EQ(std::string(projjson), "{\n" + " \"$schema\": " + "\"https://proj.org/schemas/v0.1/projjson.schema.json\",\n" " \"type\": \"Ellipsoid\",\n" " \"name\": \"WGS 84\",\n" " \"semi_major_axis\": 6378137,\n" @@ -3514,7 +3516,8 @@ TEST_F(CApi, proj_as_projjson) { "}"); } { - const char *const options[] = {"INDENTATION_WIDTH=4", nullptr}; + const char *const options[] = {"INDENTATION_WIDTH=4", "SCHEMA=", + nullptr}; auto projjson = proj_as_projjson(m_ctxt, obj, options); ASSERT_NE(projjson, nullptr); EXPECT_EQ(std::string(projjson), @@ -3530,7 +3533,7 @@ TEST_F(CApi, proj_as_projjson) { "}"); } { - const char *const options[] = {"MULTILINE=NO", nullptr}; + const char *const options[] = {"MULTILINE=NO", "SCHEMA=", nullptr}; auto projjson = proj_as_projjson(m_ctxt, obj, options); ASSERT_NE(projjson, nullptr); EXPECT_EQ(std::string(projjson), -- cgit v1.2.3