9 static inline auto read_all(const std::string & filename) {
10 std::basic_ifstream<CharT> is(filename);
11 std::basic_stringstream<CharT> sstr;
16 template <class CharT>
17 static inline auto parse(const std::string & filename, Ini<CharT> & ini) {
18 std::basic_ifstream<CharT> is(filename);
22 template <class CharT>
23 static inline void errors(std::basic_ostream<CharT> & os, const Ini<CharT> & ini) {
24 for (auto const & err : ini.errors) {
25 os << err << std::endl;
29 template <class CharT>
30 static inline auto test(const std::string & inifile, Ini<CharT> & ini) {
31 std::basic_ostringstream<CharT> os;
33 os << ">>> ERRORS <<<" << std::endl;
35 os << ">>> GENERATE <<<" << std::endl;
37 os << ">>> INTERPOLATE <<<" << std::endl;
43 template <class CharT>
44 static inline auto runtest(const char *inifile, const char *expectedfile, std::basic_ostream<CharT> & os) {
46 auto actual = test(inifile, ini);
47 auto expected = read_all<CharT>(expectedfile);
49 return (actual == expected);