// // Created by fly on 2022/4/6. // #ifndef FAULT_SIMULATION_ALGORITHM_ALGORITHM_HPP #define FAULT_SIMULATION_ALGORITHM_ALGORITHM_HPP #include class algorithm { public: virtual void set_config(nlohmann::json const &config) = 0; virtual nlohmann::json config() = 0; virtual double eval(double value) = 0; protected: double jsonValue(nlohmann::json const &j, std::string const &key) { if (j.contains(key)) { if (j[key].is_string()) { return std::atof(j[key].get().c_str()); } if (j[key].is_number()) { return j[key].get(); } } return std::nan(""); } }; #endif //FAULT_SIMULATION_ALGORITHM_ALGORITHM_HPP