21 #include <gtest/gtest.h>
39 CLIPS::Environment
env;
45 for (
auto &file : files) {
46 std::cout <<
"[ ] loading file " << file << std::endl;
47 const std::string path = std::string(TESTDIR) +
"/" + file;
48 env.evaluate(
"(load* " + path +
")");
60 has_fact(
const std::string &fact_set_template,
const std::string &query =
"TRUE")
62 const std::string &clips_query =
"(any-factp " + fact_set_template +
" " + query +
")";
63 return env.evaluate(clips_query)[0].as_string() ==
"TRUE";
71 has_ordered_fact(
const std::string &fact_name,
const std::vector<CLIPS::Value> slot_values = {})
73 const std::string fact_set_template =
"((?f " + fact_name +
"))";
74 std::string query =
"(eq ?f:implied (create$";
75 for (CLIPS::Value slot_val : slot_values) {
76 switch (slot_val.type()) {
77 case CLIPS::TYPE_FLOAT: query +=
" " + std::to_string(slot_val.as_float());
break;
78 case CLIPS::TYPE_INTEGER: query +=
" " + std::to_string(slot_val.as_integer());
break;
79 case CLIPS::TYPE_SYMBOL:
80 case CLIPS::TYPE_STRING:
83 query +=
" " + slot_val.as_string();
88 return has_fact(fact_set_template, query);