diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-01-14 00:53:07 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-01-14 23:33:16 +0100 |
| commit | 941bb82c7eecbf56821075f95991916c30c31b4e (patch) | |
| tree | fe7a9096f4daae7692d07bbd6ae85f4c6e90870c /src | |
| parent | 9cb40a8322f4ccbf8305daf368308783969d1c94 (diff) | |
| download | PROJ-941bb82c7eecbf56821075f95991916c30c31b4e.tar.gz PROJ-941bb82c7eecbf56821075f95991916c30c31b4e.zip | |
Add test/unit/test_grids.cpp to improve testing coverage
Diffstat (limited to 'src')
| -rw-r--r-- | src/grids.cpp | 4 | ||||
| -rw-r--r-- | src/grids.hpp | 135 |
2 files changed, 74 insertions, 65 deletions
diff --git a/src/grids.cpp b/src/grids.cpp index b4c3ad24..d5f961f7 100644 --- a/src/grids.cpp +++ b/src/grids.cpp @@ -112,9 +112,7 @@ VerticalShiftGrid::VerticalShiftGrid(const std::string &nameIn, int widthIn, // --------------------------------------------------------------------------- -bool VerticalShiftGrid::isNodata(float /*val*/, double /* multiplier */) const { - return false; -} +VerticalShiftGrid::~VerticalShiftGrid() = default; // --------------------------------------------------------------------------- diff --git a/src/grids.hpp b/src/grids.hpp index 6b6ee0d2..0fd1b7b0 100644 --- a/src/grids.hpp +++ b/src/grids.hpp @@ -51,7 +51,7 @@ struct ExtentAndRes { // --------------------------------------------------------------------------- -class Grid { +class PROJ_GCC_DLL Grid { protected: std::string m_name; int m_width; @@ -62,40 +62,42 @@ class Grid { const ExtentAndRes &extentIn); public: - virtual ~Grid(); + PROJ_FOR_TEST virtual ~Grid(); - int width() const { return m_width; } - int height() const { return m_height; } - const ExtentAndRes &extentAndRes() const { return m_extent; } - const std::string &name() const { return m_name; } + PROJ_FOR_TEST int width() const { return m_width; } + PROJ_FOR_TEST int height() const { return m_height; } + PROJ_FOR_TEST const ExtentAndRes &extentAndRes() const { return m_extent; } + PROJ_FOR_TEST const std::string &name() const { return m_name; } - virtual bool isNullGrid() const { return false; } - virtual bool hasChanged() const = 0; + PROJ_FOR_TEST virtual bool isNullGrid() const { return false; } + PROJ_FOR_TEST virtual bool hasChanged() const = 0; }; // --------------------------------------------------------------------------- -class VerticalShiftGrid : public Grid { +class PROJ_GCC_DLL VerticalShiftGrid : public Grid { protected: std::vector<std::unique_ptr<VerticalShiftGrid>> m_children{}; public: - VerticalShiftGrid(const std::string &nameIn, int widthIn, int heightIn, - const ExtentAndRes &extentIn); + PROJ_FOR_TEST VerticalShiftGrid(const std::string &nameIn, int widthIn, + int heightIn, const ExtentAndRes &extentIn); + PROJ_FOR_TEST ~VerticalShiftGrid() override; - const VerticalShiftGrid *gridAt(double lon, double lat) const; + PROJ_FOR_TEST const VerticalShiftGrid *gridAt(double lon, double lat) const; - virtual bool isNodata(float /*val*/, double /* multiplier */) const; + PROJ_FOR_TEST virtual bool isNodata(float /*val*/, + double /* multiplier */) const = 0; // x = 0 is western-most column, y = 0 is southern-most line - virtual bool valueAt(int x, int y, float &out) const = 0; + PROJ_FOR_TEST virtual bool valueAt(int x, int y, float &out) const = 0; - virtual void reassign_context(PJ_CONTEXT *ctx) = 0; + PROJ_FOR_TEST virtual void reassign_context(PJ_CONTEXT *ctx) = 0; }; // --------------------------------------------------------------------------- -class VerticalShiftGridSet { +class PROJ_GCC_DLL VerticalShiftGridSet { protected: std::string m_name{}; std::string m_format{}; @@ -104,45 +106,50 @@ class VerticalShiftGridSet { VerticalShiftGridSet(); public: - virtual ~VerticalShiftGridSet(); + PROJ_FOR_TEST virtual ~VerticalShiftGridSet(); - static std::unique_ptr<VerticalShiftGridSet> + PROJ_FOR_TEST static std::unique_ptr<VerticalShiftGridSet> open(PJ_CONTEXT *ctx, const std::string &filename); - const std::string &name() const { return m_name; } - const std::string &format() const { return m_format; } - const std::vector<std::unique_ptr<VerticalShiftGrid>> &grids() const { + PROJ_FOR_TEST const std::string &name() const { return m_name; } + PROJ_FOR_TEST const std::string &format() const { return m_format; } + PROJ_FOR_TEST const std::vector<std::unique_ptr<VerticalShiftGrid>> & + grids() const { return m_grids; } - const VerticalShiftGrid *gridAt(double lon, double lat) const; + PROJ_FOR_TEST const VerticalShiftGrid *gridAt(double lon, double lat) const; - virtual void reassign_context(PJ_CONTEXT *ctx); - virtual bool reopen(PJ_CONTEXT *ctx); + PROJ_FOR_TEST virtual void reassign_context(PJ_CONTEXT *ctx); + PROJ_FOR_TEST virtual bool reopen(PJ_CONTEXT *ctx); }; // --------------------------------------------------------------------------- -class HorizontalShiftGrid : public Grid { +class PROJ_GCC_DLL HorizontalShiftGrid : public Grid { protected: std::vector<std::unique_ptr<HorizontalShiftGrid>> m_children{}; public: - HorizontalShiftGrid(const std::string &nameIn, int widthIn, int heightIn, - const ExtentAndRes &extentIn); - ~HorizontalShiftGrid() override; + PROJ_FOR_TEST HorizontalShiftGrid(const std::string &nameIn, int widthIn, + int heightIn, + const ExtentAndRes &extentIn); + PROJ_FOR_TEST ~HorizontalShiftGrid() override; - const HorizontalShiftGrid *gridAt(double lon, double lat) const; + PROJ_FOR_TEST const HorizontalShiftGrid *gridAt(double lon, + double lat) const; // x = 0 is western-most column, y = 0 is southern-most line - virtual bool valueAt(int x, int y, bool compensateNTConvention, - float &lonShift, float &latShift) const = 0; + PROJ_FOR_TEST virtual bool valueAt(int x, int y, + bool compensateNTConvention, + float &lonShift, + float &latShift) const = 0; - virtual void reassign_context(PJ_CONTEXT *ctx) = 0; + PROJ_FOR_TEST virtual void reassign_context(PJ_CONTEXT *ctx) = 0; }; // --------------------------------------------------------------------------- -class HorizontalShiftGridSet { +class PROJ_GCC_DLL HorizontalShiftGridSet { protected: std::string m_name{}; std::string m_format{}; @@ -151,54 +158,57 @@ class HorizontalShiftGridSet { HorizontalShiftGridSet(); public: - virtual ~HorizontalShiftGridSet(); + PROJ_FOR_TEST virtual ~HorizontalShiftGridSet(); - static std::unique_ptr<HorizontalShiftGridSet> + PROJ_FOR_TEST static std::unique_ptr<HorizontalShiftGridSet> open(PJ_CONTEXT *ctx, const std::string &filename); - const std::string &name() const { return m_name; } - const std::string &format() const { return m_format; } - const std::vector<std::unique_ptr<HorizontalShiftGrid>> &grids() const { + PROJ_FOR_TEST const std::string &name() const { return m_name; } + PROJ_FOR_TEST const std::string &format() const { return m_format; } + PROJ_FOR_TEST const std::vector<std::unique_ptr<HorizontalShiftGrid>> & + grids() const { return m_grids; } - const HorizontalShiftGrid *gridAt(double lon, double lat) const; + PROJ_FOR_TEST const HorizontalShiftGrid *gridAt(double lon, + double lat) const; - virtual void reassign_context(PJ_CONTEXT *ctx); - virtual bool reopen(PJ_CONTEXT *ctx); + PROJ_FOR_TEST virtual void reassign_context(PJ_CONTEXT *ctx); + PROJ_FOR_TEST virtual bool reopen(PJ_CONTEXT *ctx); }; // --------------------------------------------------------------------------- -class GenericShiftGrid : public Grid { +class PROJ_GCC_DLL GenericShiftGrid : public Grid { protected: std::vector<std::unique_ptr<GenericShiftGrid>> m_children{}; public: - GenericShiftGrid(const std::string &nameIn, int widthIn, int heightIn, - const ExtentAndRes &extentIn); + PROJ_FOR_TEST GenericShiftGrid(const std::string &nameIn, int widthIn, + int heightIn, const ExtentAndRes &extentIn); - ~GenericShiftGrid() override; + PROJ_FOR_TEST ~GenericShiftGrid() override; - const GenericShiftGrid *gridAt(double lon, double lat) const; + PROJ_FOR_TEST const GenericShiftGrid *gridAt(double lon, double lat) const; - virtual std::string unit(int sample) const = 0; + PROJ_FOR_TEST virtual std::string unit(int sample) const = 0; - virtual std::string description(int sample) const = 0; + PROJ_FOR_TEST virtual std::string description(int sample) const = 0; - virtual std::string metadataItem(const std::string &key, - int sample = -1) const = 0; + PROJ_FOR_TEST virtual std::string metadataItem(const std::string &key, + int sample = -1) const = 0; - virtual int samplesPerPixel() const = 0; + PROJ_FOR_TEST virtual int samplesPerPixel() const = 0; // x = 0 is western-most column, y = 0 is southern-most line - virtual bool valueAt(int x, int y, int sample, float &out) const = 0; + PROJ_FOR_TEST virtual bool valueAt(int x, int y, int sample, + float &out) const = 0; - virtual void reassign_context(PJ_CONTEXT *ctx) = 0; + PROJ_FOR_TEST virtual void reassign_context(PJ_CONTEXT *ctx) = 0; }; // --------------------------------------------------------------------------- -class GenericShiftGridSet { +class PROJ_GCC_DLL GenericShiftGridSet { protected: std::string m_name{}; std::string m_format{}; @@ -207,20 +217,21 @@ class GenericShiftGridSet { GenericShiftGridSet(); public: - virtual ~GenericShiftGridSet(); + PROJ_FOR_TEST virtual ~GenericShiftGridSet(); - static std::unique_ptr<GenericShiftGridSet> + PROJ_FOR_TEST static std::unique_ptr<GenericShiftGridSet> open(PJ_CONTEXT *ctx, const std::string &filename); - const std::string &name() const { return m_name; } - const std::string &format() const { return m_format; } - const std::vector<std::unique_ptr<GenericShiftGrid>> &grids() const { + PROJ_FOR_TEST const std::string &name() const { return m_name; } + PROJ_FOR_TEST const std::string &format() const { return m_format; } + PROJ_FOR_TEST const std::vector<std::unique_ptr<GenericShiftGrid>> & + grids() const { return m_grids; } - const GenericShiftGrid *gridAt(double lon, double lat) const; + PROJ_FOR_TEST const GenericShiftGrid *gridAt(double lon, double lat) const; - virtual void reassign_context(PJ_CONTEXT *ctx); - virtual bool reopen(PJ_CONTEXT *ctx); + PROJ_FOR_TEST virtual void reassign_context(PJ_CONTEXT *ctx); + PROJ_FOR_TEST virtual bool reopen(PJ_CONTEXT *ctx); }; // --------------------------------------------------------------------------- |
