static void test_Dump_Load_and_Equals(TestBatchRunner *runner) { Query *a_leaf = (Query*)TestUtils_make_leaf_query(NULL, "a"); Query *b_leaf = (Query*)TestUtils_make_leaf_query(NULL, "b"); NOTQuery *query = NOTQuery_new(a_leaf); NOTQuery *kids_differ = NOTQuery_new(b_leaf); NOTQuery *boost_differs = NOTQuery_new(a_leaf); Obj *dump = (Obj*)NOTQuery_Dump(query); NOTQuery *clone = (NOTQuery*)Obj_Load(dump, dump); TEST_FALSE(runner, NOTQuery_Equals(query, (Obj*)kids_differ), "Different kids spoil Equals"); TEST_TRUE(runner, NOTQuery_Equals(query, (Obj*)boost_differs), "Equals with identical boosts"); NOTQuery_Set_Boost(boost_differs, 1.5); TEST_FALSE(runner, NOTQuery_Equals(query, (Obj*)boost_differs), "Different boost spoils Equals"); TEST_TRUE(runner, NOTQuery_Equals(query, (Obj*)clone), "Dump => Load round trip"); DECREF(a_leaf); DECREF(b_leaf); DECREF(query); DECREF(kids_differ); DECREF(boost_differs); DECREF(dump); DECREF(clone); }
static void test_Dump_Load_and_Equals(TestBatch *batch) { Query *a_leaf = (Query*)TestUtils_make_leaf_query(NULL, "a"); Query *b_leaf = (Query*)TestUtils_make_leaf_query(NULL, "b"); Query *c_leaf = (Query*)TestUtils_make_leaf_query(NULL, "c"); RequiredOptionalQuery *query = ReqOptQuery_new(a_leaf, b_leaf); RequiredOptionalQuery *kids_differ = ReqOptQuery_new(a_leaf, c_leaf); RequiredOptionalQuery *boost_differs = ReqOptQuery_new(a_leaf, b_leaf); Obj *dump = (Obj*)ReqOptQuery_Dump(query); RequiredOptionalQuery *clone = (RequiredOptionalQuery*)Obj_Load(dump, dump); TEST_FALSE(batch, ReqOptQuery_Equals(query, (Obj*)kids_differ), "Different kids spoil Equals"); TEST_TRUE(batch, ReqOptQuery_Equals(query, (Obj*)boost_differs), "Equals with identical boosts"); ReqOptQuery_Set_Boost(boost_differs, 1.5); TEST_FALSE(batch, ReqOptQuery_Equals(query, (Obj*)boost_differs), "Different boost spoils Equals"); TEST_TRUE(batch, ReqOptQuery_Equals(query, (Obj*)clone), "Dump => Load round trip"); DECREF(a_leaf); DECREF(b_leaf); DECREF(c_leaf); DECREF(query); DECREF(kids_differ); DECREF(boost_differs); DECREF(dump); DECREF(clone); }
static void vcatf_obj(VArray *tests) { CharBuf *wanted = S_get_cb("ooga content:FOO booga"); LeafQuery *leaf_query = TestUtils_make_leaf_query("content", "FOO"); CharBuf *got = S_get_cb("ooga"); CB_catf(got, " %o booga", leaf_query); DECREF(leaf_query); VA_Push(tests, (Obj*)TestCB_new(wanted, got)); }