Commit c4dadecd authored by Paul's avatar Paul
Browse files

Format

parent e9668f89
...@@ -403,19 +403,20 @@ auto within_abs(T px, U py, double ptol = 1e-6f) ...@@ -403,19 +403,20 @@ auto within_abs(T px, U py, double ptol = 1e-6f)
px, py, ptol); px, py, ptol);
} }
template<class Iterator1, class Iterator2> template <class Iterator1, class Iterator2>
bool glob_match(Iterator1 start, Iterator1 last, Iterator2 pattern_start, Iterator2 pattern_last) bool glob_match(Iterator1 start, Iterator1 last, Iterator2 pattern_start, Iterator2 pattern_last)
{ {
std::tie(start, pattern_start) = std::mismatch(start, last, pattern_start, pattern_last, [](auto c, auto m) { std::tie(start, pattern_start) =
if (m == '?') std::mismatch(start, last, pattern_start, pattern_last, [](auto c, auto m) {
return true; if(m == '?')
if (m == '*') return true;
return false; if(m == '*')
return c == m; return false;
}); return c == m;
});
if(pattern_start == pattern_last) if(pattern_start == pattern_last)
return start == last; return start == last;
if (*pattern_start != '*') if(*pattern_start != '*')
return false; return false;
pattern_start = std::find_if(pattern_start, pattern_last, [](auto c) { return c != '*'; }); pattern_start = std::find_if(pattern_start, pattern_last, [](auto c) { return c != '*'; });
if(pattern_start == pattern_last) if(pattern_start == pattern_last)
...@@ -631,7 +632,9 @@ struct driver ...@@ -631,7 +632,9 @@ struct driver
} }
} }
auto finish = std::chrono::steady_clock::now(); auto finish = std::chrono::steady_clock::now();
auto elapsed_ms = std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(finish - start).count(); auto elapsed_ms =
std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(finish - start)
.count();
if(msg.empty() and failures() != 0) if(msg.empty() and failures() != 0)
{ {
if(failures() == 1) if(failures() == 1)
...@@ -687,14 +690,20 @@ struct driver ...@@ -687,14 +690,20 @@ struct driver
for(auto&& iname : cases) for(auto&& iname : cases)
{ {
std::vector<std::pair<std::string, test_case>> found_cases; std::vector<std::pair<std::string, test_case>> found_cases;
for(auto&& pattern:get_case_names(iname)) for(auto&& pattern : get_case_names(iname))
{ {
auto f = m.find(pattern); auto f = m.find(pattern);
if(f == m.end()) if(f == m.end())
{ {
std::copy_if(get_test_cases().begin(), get_test_cases().end(), std::back_inserter(found_cases), [&](auto&& p) { std::copy_if(get_test_cases().begin(),
return glob_match(p.first.begin(), p.first.end(), pattern.begin(), pattern.end()); get_test_cases().end(),
}); std::back_inserter(found_cases),
[&](auto&& p) {
return glob_match(p.first.begin(),
p.first.end(),
pattern.begin(),
pattern.end());
});
} }
else else
{ {
...@@ -703,11 +712,11 @@ struct driver ...@@ -703,11 +712,11 @@ struct driver
} }
if(found_cases.empty()) if(found_cases.empty())
{ {
out() << color::fg_red << "[ ERROR ] Test case '" << iname out() << color::fg_red << "[ ERROR ] Test case '" << iname << "' not found."
<< "' not found." << color::reset << std::endl; << color::reset << std::endl;
failed.push_back(iname); failed.push_back(iname);
} }
for(auto&& p:found_cases) for(auto&& p : found_cases)
run_test_case(p.first, p.second, args); run_test_case(p.first, p.second, args);
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment