#pragma once #include #include #include class TestRunnerMapObserver; struct TestMetadata; class TestRunner { public: TestRunner() = default; bool run(TestMetadata&); void reset(); /// Returns path of the render tests root directory. static const std::string& getBasePath(); private: bool runOperations(const std::string& key, TestMetadata&); bool checkQueryTestResults(mbgl::PremultipliedImage&& actualImage, std::vector&& features, TestMetadata&); bool checkRenderTestResults(mbgl::PremultipliedImage&& image, TestMetadata&); struct Impl { Impl(const TestMetadata&); ~Impl(); std::unique_ptr observer; mbgl::HeadlessFrontend frontend; mbgl::Map map; }; std::unordered_map> maps; };