int main() { std::vector<hpx::id_type> localities = hpx::find_all_localities(); for (hpx::id_type const& id : localities) { if(id != hpx::find_here()) { test_small_stacksize_action test_action; test_action(id); } { test_medium_stacksize_action test_action; test_action(id); } { test_large_stacksize_action test_action; test_action(id); } { test_huge_stacksize_action test_action; test_action(id); } } return hpx::util::report_errors(); }
void invlet_test( player &dummy, inventory_location from, inventory_location to ) { // invlet to assign constexpr char invlet = '|'; // iterate through all permutations of test actions for( int id = 0; id < INVLET_STATE_NUM * INVLET_STATE_NUM * TEST_ACTION_NUM; ++id ) { // how to assign invlet to the first item invlet_state first_invlet_state = invlet_state( id % INVLET_STATE_NUM ); // how to assign invlet to the second item invlet_state second_invlet_state = invlet_state( id / INVLET_STATE_NUM % INVLET_STATE_NUM ); // the test steps test_action action = test_action( id / INVLET_STATE_NUM / INVLET_STATE_NUM % TEST_ACTION_NUM ); // the final expected invlet state of the two items invlet_state expected_first_invlet_state = second_invlet_state == NONE ? first_invlet_state : NONE; invlet_state expected_second_invlet_state = second_invlet_state; // remove all items dummy.inv.clear(); dummy.worn.clear(); dummy.remove_weapon(); g->m.i_clear( dummy.pos() ); // some two items that can be wielded, worn, and picked up item tshirt( "tshirt" ); item jeans( "jeans" ); // add the items to the starting position add_item( dummy, tshirt, to ); add_item( dummy, jeans, to ); // assign invlet to the first item assign_invlet( dummy, item_at( dummy, 0, to ), invlet, first_invlet_state ); // remove the first item move_item( dummy, 0, to, from ); // assign invlet to the second item assign_invlet( dummy, item_at( dummy, 0, to ), invlet, second_invlet_state ); item *final_first = nullptr, *final_second = nullptr; switch( action ) { case REMOVE_1ST_REMOVE_2ND_ADD_1ST_ADD_2ND: move_item( dummy, 0, to, from ); move_item( dummy, 0, from, to ); move_item( dummy, 0, from, to ); final_first = &item_at( dummy, 0, to ); final_second = &item_at( dummy, 1, to ); break; case REMOVE_1ST_REMOVE_2ND_ADD_2ND_ADD_1ST: move_item( dummy, 0, to, from ); move_item( dummy, 1, from, to ); move_item( dummy, 0, from, to ); final_first = &item_at( dummy, 1, to ); final_second = &item_at( dummy, 0, to ); break; case REMOVE_1ST_ADD_1ST: move_item( dummy, 0, from, to ); final_first = &item_at( dummy, 1, to ); final_second = &item_at( dummy, 0, to ); break; default: FAIL( "unimplemented" ); break; } invlet_state final_first_invlet_state = check_invlet( dummy, *final_first, invlet ), final_second_invlet_state = check_invlet( dummy, *final_second, invlet ); INFO( test_action_desc( action, from, to, first_invlet_state, second_invlet_state, expected_first_invlet_state, expected_second_invlet_state, final_first_invlet_state, final_second_invlet_state ) ); REQUIRE( final_first->typeId() == tshirt.typeId() ); REQUIRE( final_second->typeId() == jeans.typeId() ); CHECK( final_first_invlet_state == expected_first_invlet_state ); CHECK( final_second_invlet_state == expected_second_invlet_state ); // clear invlets assign_invlet( dummy, *final_first, invlet, NONE ); assign_invlet( dummy, *final_second, invlet, NONE ); } }
static void validate_accessible (Accessible *accessible, gboolean has_parent, gboolean recurse_down) { Accessible *tmp; char *name, *descr; AccessibleRole role; AccessibleRelation **relations; char *role_name; GString *item_str = g_string_new (""); int i; name = Accessible_getName (accessible); g_assert (name != NULL); descr = Accessible_getDescription (accessible); g_assert (descr != NULL); role = Accessible_getRole (accessible); g_assert (role != SPI_ROLE_INVALID); role_name = Accessible_getRoleName (accessible); g_assert (role_name != NULL); relations = Accessible_getRelationSet (accessible); g_assert (relations != NULL); for (i = 0; relations [i]; i++) { AccessibleRelationType type; int targets; fprintf (stderr, "relation %d\n", i); type = AccessibleRelation_getRelationType (relations [i]); g_assert (type != SPI_RELATION_NULL); targets = AccessibleRelation_getNTargets (relations [i]); g_assert (targets != -1); AccessibleRelation_unref (relations [i]); relations [i] = NULL; } free (relations); if (print_tree) { int i; for (i = 0; i < print_tree_depth; i++) fputc (' ', stderr); fputs ("|-> [ ", stderr); } if (Accessible_isAction (accessible)) { tmp = Accessible_getAction (accessible); g_assert (tmp != NULL); if (print_tree) fprintf (stderr, "At"); else test_action (tmp); AccessibleAction_unref (tmp); } if (Accessible_isApplication (accessible)) { tmp = Accessible_getApplication (accessible); if (print_tree) fprintf (stderr, "Ap"); else test_application (tmp); AccessibleApplication_unref (tmp); } if (Accessible_isComponent (accessible)) { tmp = Accessible_getComponent (accessible); g_assert (tmp != NULL); if (print_tree) fprintf (stderr, "Co"); else test_component (tmp); AccessibleComponent_unref (tmp); } if (Accessible_isEditableText (accessible)) { tmp = Accessible_getEditableText (accessible); g_assert (tmp != NULL); if (print_tree) fprintf (stderr, "Et"); else test_editable_text (tmp); AccessibleEditableText_unref (tmp); } if (Accessible_isHypertext (accessible)) { tmp = Accessible_getHypertext (accessible); g_assert (tmp != NULL); if (print_tree) fprintf (stderr, "Ht"); AccessibleHypertext_unref (tmp); } if (Accessible_isImage (accessible)) { tmp = Accessible_getImage (accessible); g_assert (tmp != NULL); if (print_tree) { char *desc; fprintf (stderr, "Im"); desc = AccessibleImage_getImageDescription (tmp); g_string_append_printf ( item_str, " image descr: '%s'", desc); SPI_freeString (desc); } else test_image (tmp); AccessibleImage_unref (tmp); } if (Accessible_isSelection (accessible)) { tmp = Accessible_getSelection (accessible); g_assert (tmp != NULL); if (print_tree) fprintf (stderr, "Se"); AccessibleSelection_unref (tmp); } if (Accessible_isTable (accessible)) { tmp = Accessible_getTable (accessible); g_assert (tmp != NULL); if (print_tree) fprintf (stderr, "Ta"); else test_table (tmp); AccessibleTable_unref (tmp); } if (Accessible_isText (accessible)) { tmp = Accessible_getText (accessible); g_assert (tmp != NULL); if (print_tree) fprintf (stderr, "Te"); else { if (strcmp (name, TEST_STRING_A_OBJECT) == 0) test_text (tmp); } AccessibleText_unref (tmp); } if (Accessible_isValue (accessible)) { tmp = Accessible_getValue (accessible); g_assert (tmp != NULL); if (print_tree) fprintf (stderr, "Va"); else test_value (tmp); AccessibleValue_unref (tmp); } if (print_tree) fprintf (stderr, " ] '%s' (%s) - %s: %s\n", name, descr, role_name, item_str->str); SPI_freeString (name); SPI_freeString (descr); SPI_freeString (role_name); g_string_free (item_str, TRUE); validate_tree (accessible, has_parent, recurse_down); }