# ESRI C++ code assignment ## Requirements The requirements specification is provided in `assignment.pdf`. ## Design remarks For sake of simplicity most of validation and error handling is performed during loading the input files. ## Setup Execute the bash script `install_deps.sh` on a Debian GNU/Linux system to install the required dependencies. The protobuf dependencies are installed as Debian packages. All other dependencies are installed using the CMake FetchContent feature. ## Build Execute the bash script `build.sh` to perform both build and testing steps. The overall process is implemented using CMake. The application artifact is located at `build/src/main`. ## Usage The command-line parameters can be passed as follows: ``` main ``` * At least one *input-file* and *json-ouptut-file* must be provided. * Multiple *input-files* are supported. ## Links * Protobuf * https://developers.google.com/protocol-buffers/docs/cpptutorial * https://github.com/protocolbuffers/protobuf/tree/master/examples * https://cmake.org/cmake/help/latest/module/FindProtobuf.html * Json C++ library * https://github.com/nlohmann/json * Catch2 unit testing framework * https://github.com/catchorg/Catch2