# # Sanity checks of the unit test system # 0 test_return 1 test_return_fail 0 test_assert 1 test_assert_fail 0 test_lua_return 1 test_lua_return_fail 8 test_lua_return_victory 7 test_lua_return_defeat 0 test_lua_assert 1 test_lua_assert_fail 1 test_lua_assert_fail_in_fired_event 0 test_lua_assert_compare 1 test_lua_assert_compare_fail1 1 test_lua_assert_compare_fail2 1 test_lua_assert_compare_fail3 1 test_lua_assert_compare_fail4 1 test_lua_assert_compare_fail5 1 test_lua_assert_compare_fail6 1 test_lua_assert_compare_fail7 1 test_lua_assert_compare_fail8 1 test_lua_assert_compare_fail9 0 test_lua_assert_errors1 1 test_lua_assert_errors2 1 test_lua_assert_errors3 0 test_lua_assert_errors4 1 test_lua_assert_errors5 0 test_lua_assert_errors6 1 test_lua_assert_errors7 0 test_lua_assert_errors8 1 test_lua_assert_errors9 2 empty_test 0 test_end_turn 9 there_is_no_test_with_this_name 0 check_strikes_once 10 check_strikes_twice_fail # # The synchronisation mechanism # 4 break_replay_with_lua_random 0 fixed_lua_random_replay_with_sync_choice 9 test_synced_side_number 0 test_synced_state # # Security test # 0 cve_2018_1999023 9 cve_2018_1999023_2 # # Test Check Victory (If this isn't working other tests may have dubious value) # 2 check_victory_basic_timeout 1 check_victory_basic_macro_check 8 check_victory_basic 1 check_victory_basic_fail 8 check_victory_basic_two 8 check_victory_basic_ai 1 check_victory_basic_ai_fail 8 check_victory_basic_ai_two 1 check_victory_one_no_units_fail_one 1 check_victory_one_no_units_fail_two 8 check_victory_one_no_units 1 check_victory_two_no_units_fail_one 1 check_victory_two_no_units_fail_two 8 check_victory_two_no_units 8 check_victory_always_one 8 check_victory_always_two 1 check_victory_always_no_units_fail 8 check_victory_always_no_units 1 check_victory_always_fail 1 check_victory_never_fail_one 1 check_victory_never_fail_two 1 check_victory_never_fail_three 8 check_victory_never_pass 7 check_victory_never_ai_fail # # Preprocessor # 0 test_preprocessor_ifdef_in_arg # # WML API tests # 0 two_plus_two 10 two_plus_two_fail 0 order_of_nested_events 0 test_clear_one 0 test_clear_two 0 test_unit_map 0 unit_spawns_at_nearest_vacant_hex 0 units_offmap_goto_recall 0 recall_by_unit_tag 0 test_move 9 test_move_fail_1 9 test_move_fail_2 9 test_move_fail_3 9 test_move_fail_4 9 test_move_fail_5 9 test_move_fail_6 0 test_move_unit 0 test_move_unit_in_circle 0 test_move_unit_to_occupied_location 0 sighted_on_move 0 move_skip_no_sighted_no_share_vision 0 move_skip_ally_sighted_no_share_vision 0 move_skip_all_sighted_no_share_vision 0 move_skip_no_sighted_yes_share_vision 0 move_skip_ally_sighted_yes_share_vision 0 move_skip_all_sighted_yes_share_vision 0 set_gold_in_prestart_one 0 set_gold_in_prestart_two 0 modify_turns_one 0 modify_turns_two 0 modify_turns_three 0 modify_turns_four 0 replace_schedule_prestart 0 modify_unit_facing 0 modify_unit_which_recall_list 0 modify_unit_recall_cost 0 put_to_recall_and_modify 0 effect_type_variation_full_heal 0 effect_type_variation_no_heal 0 event_handlers_in_events_1 0 event_handlers_in_events_3 0 event_handlers_in_events_2 0 event_handlers_in_events_4 0 event_handlers_in_events_5 0 event_handlers_in_events_6 0 event_handlers_in_events_7 0 event_handlers_in_events_8 0 event_handlers_in_events__delayed 0 event_handlers_in_events__delayed__dynamic_name 0 event_handlers_in_events__delayed__dynamic_filter 0 event_handlers_in_events__immediate 0 event_handlers_in_events__immediate__dynamic_name 0 event_handlers_in_events__immediate__dynamic_filter 0 event_remove_test 0 event_repeat_test 0 event_test_auto_variables_side_turn 0 event_test_auto_variables_xy 0 event_test_auto_variables_units 0 event_test_auto_variables_weapons 0 event_test_auto_variables_damage 0 event_test_auto_variables_owner 0 event_test_filter_condition 0 event_test_filter_side 0 event_test_filter_unit 0 event_test_filter_ability 0 event_test_filter_ability_interval_number 0 event_test_filter_ability_neg_value 0 event_test_filter_ability_no_match 0 event_test_filter_ability_no_match_neg_prefix 0 event_test_filter_ability_wml 0 event_test_filter_ability_wml_no_match 0 event_test_filter_ability_active 0 event_test_filter_ability_active_inactive 0 event_test_filter_ability_with_value_by_default 0 event_test_filter_ability_no_match_by_default 0 event_test_filter_ability_apply_to_resistance 0 test_ability_id_active 0 test_ability_id_not_active 0 event_test_filter_attack 0 event_test_filter_attack_no_defense 0 event_test_filter_attack_type 0 event_test_filter_attack_specials 0 event_test_filter_attack_on_moveto 0 event_test_filter_attack_opponent_weapon_condition 9 event_test_filter_attack_opponent_weapon_condition_no_triggered 9 event_test_filter_attack_student_weapon_condition 0 event_test_filter_wfl 0 event_test_filter_wfl2 0 event_test_filter_lua_serializable 0 event_test_filter_lua_dynamic 9 event_test_filter_lua_dynamic_break_save 0 event_test_action_wml 0 event_test_lua 0 event_test_lua_advanced 0 event_test_lua_repeat 9 event_test_lua_break_save 0 test_lua_name 0 filter_vision_all_no_side 0 filter_vision_all_side_2 0 filter_vision_all_side_4 0 filter_vision_side_1_side_4 0 filter_vision_side_2_side_4 0 filter_vision_side_3_side_4 0 filter_vision_side_4_side_1 0 filter_vision_side_4_side_3 0 filter_vision_side_4_not_side_2 0 filter_vision_not_side_5 0 test_shroud_init 0 test_shroud_place_wml 0 test_shroud_place_lua 0 test_shroud_place_lua_data 0 test_shroud_override_all 0 test_shroud_override_data 0 test_shroud_remove_wml 0 test_shroud_remove_lua 0 test_shroud_remove_lua_data 0 test_shroud_modify_wml 0 test_shroud_modify_lua 0 scatter_units 0 dave_has_ally_bob 0 dave_has_enemy_alice 0 dave_not_has_ally_steve 0 dave_has_enemy_sides 0 not_dave_has_ally_charlie 0 xp_mod_1 0 xp_mod_2 0 xp_mod_3 0 test_role_1 0 test_role_2 0 test_role_3 0 test_role_lua 0 events-test_nonfilterable 0 events-test_filterable1 0 events-test_filterable2 0 events-test_filterable3 0 events-test_victory 0 events-test_defeat 0 events-test_die 0 events-test_pre_attack_base 0 events-test_pre_attack_change_weapon 0 test_store_unit_defense_on 9 test_store_unit_defense_deprecated 0 special_note_from_movetype 0 special_note_individual_unit 0 has_achievement 0 test_movement_used 0 test_attacks_used 0 no_duplicate_advancements 0 add_advancement 0 harm_unit_survivable_experience_no 0 harm_unit_survivable_experience_unset 0 harm_unit_survivable_experience_yes 0 harm_unit_kill_no_experience_attack 0 harm_unit_kill_no_experience_attack_defend 0 harm_unit_kill_no_experience_attack_kill 0 harm_unit_kill_no_experience_defend 0 harm_unit_kill_no_experience_defend_kill 0 harm_unit_kill_no_experience_fight 0 harm_unit_kill_no_experience_kill 0 harm_unit_kill_no_experience_no_attack_defend_kill 0 harm_unit_kill_no_experience_no 0 harm_unit_kill_no_experience_unset 0 harm_unit_kill_no_experience_yes 0 harm_unit_kill_split_experience_attack 0 harm_unit_kill_split_experience_attack_defend 0 harm_unit_kill_split_experience_attack_kill 0 harm_unit_kill_split_experience_defend 0 harm_unit_kill_split_experience_defend_kill 0 harm_unit_kill_split_experience_fight 0 harm_unit_kill_split_experience_kill 0 harm_unit_kill_split_experience_no_attack_defend_kill 0 harm_unit_kill_split_experience_no 0 harm_unit_kill_split_experience_unset 0 harm_unit_kill_split_experience_yes 0 harm_unit_kill_yes_experience_no 0 harm_unit_kill_yes_experience_unset 0 harm_unit_kill_yes_experience_yes # Terrain mask tests 0 test_terrain_mask_simple_nop 0 test_terrain_mask_simple_set 0 test_terrain_mask_simple_underlay 0 test_terrain_mask_simple_overlay 0 test_terrain_mask_simple_name 0 test_terrain_mask_simple_name_ignore 0 test_terrain_mask_align_odd_on_odd 0 test_terrain_mask_align_odd_on_even 0 test_terrain_mask_align_even_on_odd 0 test_terrain_mask_align_even_on_even 0 test_terrain_mask_align_raw_on_odd 0 test_terrain_mask_align_raw_on_even 0 test_terrain_mask_deprecated_border_no 0 test_terrain_mask_deprecated_border_yes 0 test_terrain_mask_rule_basic 0 test_terrain_mask_file # # LUA # 0 lua_dofile 0 lua_require 0 lua_get_sides 0 test_wml_actions 0 test_wml_conditionals 0 lua_wml_tagnames 0 test_parse_range 0 test_scoped_array 0 test_scoped_scalar 0 as_text 0 test_lua_version_api # # Pathfinding # 0 store_locations_one 0 store_locations_range 0 simple_find_path # This test occasionally takes too long... (FIXME): 0 characterize_pathfinding_one 0 characterize_pathfinding_reach_1 0 characterize_pathfinding_reach_2 0 characterize_pathfinding_reach_3 0 characterize_pathfinding_reach_4 0 characterize_pathfinding_reach_5 0 characterize_pathfinding_reach_6 0 characterize_pathfinding_reach_7 # # Movement types, and modifying them # 0 test_elf_movement 0 test_orc_movement 0 test_elf_fast_cave_movement 0 test_elf_fast_hills_movement 0 test_elf_fast_cave_and_hills_movement 0 test_orc_fast_cave_movement 0 test_orc_fast_forest_movement 0 test_elf_slow_cave_movement 0 test_elf_longsighted_movement 0 test_orc_longsighted_movement 0 test_elf_longsighted_fast_cave_movement 0 test_elf_fast_cave_longsighted_movement 0 test_elf_vision 0 test_elf_fast_cave_vision 0 test_elf_fast_hills_vision 0 test_elf_longsighted_cave_vision 0 test_elf_longsighted_cave_and_hills_vision 0 test_elf_longsighted_cave_slow_cave_vision 0 test_resistances # [effect]apply_to=movement and [effect]apply_to=vision 0 effect_move_affects_vision 0 effect_move_ignores_vision 0 effect_move_separated_vision 0 effect_vision # [store_locations] 0 store_reachable_locations_vision # # General information queries # 0 test_lua_colors 0 test_lua_colors_hexadecimal # # Attack calculations & codepath tests # 8 alice_kills_bob 8 bob_kills_alice_on_retal 8 alice_kills_bob_levelup 8 bob_kills_alice 8 alice_kills_bob_on_retal 8 alice_kills_bob_on_retal_levelup 0 test_grunt_tod_damage 0 test_time_area_damage 0 test_time_area_prestart 0 test_berserk_firststrike 0 feeding_on_living 0 feeding_on_dead 0 firststrike_and_laststrike 0 backstab_active_with_accomplice_behind_bob 0 backstab_active_with_free_for_all 0 backstab_inactive_with_triangular_formation 0 backstab_inactive_with_statue_behind_bob 0 backstab_inactive_with_bobs_ally_behind_bob 0 reflexive_drains 0 reflexive_poison 0 reflexive_slow 0 replace_special_with_filter_in_attack_event_active 0 replace_special_with_filter_in_attack_event_inactive 0 swarm_disables_upgrades 0 poison_opponent 0 unslowable_status_test 0 unpetrifiable_status_test 0 test_force_chance_to_hit_macro_nested 0 test_force_chance_to_hit_macro_toplevel 0 trait_exclusion_test 0 trait_requirement_test 0 test_remove_ability_by_filter 0 test_overwrite_specials_filter 0 damage_recalculation_mid_attack 0 damage_type_test 0 damage_type_with_filter_test 0 damage_secondary_type_test 0 damage_type_apply_to_both_filter_self_opponent 0 damage_type_apply_to_attacker_filter_attacker_defender 9 event_test_filter_damage_type_recursion 9 four_cycle_recursion_branching 9 four_cycle_recursion_by_id 9 four_cycle_recursion_by_tagname 9 ability_cycle_recursion_by_id 9 filter_self_ability_cycle_recursion_by_id 9 adjacent_abilities_recursion_by_id 0 negative_resistance_with_two_attack_types 0 positive_resistance_with_two_attack_types 0 taught_resistance_with_two_attack_types 0 taught_resistance_with_three_attack_types 0 swarms_filter_student_by_type 0 swarms_effects_not_checkable 0 filter_special_id_active 0 filter_ability_special_id_active 0 filter_special_id_not_exists 0 special_id_active_lua_function 0 leadership_when_other_has_special 0 leadership_when_other_has_no_special 0 effect_increase_attacks 0 opponent_weapon_has_no_special 0 opponent_weapon_has_special 0 student_teacher_are_same 0 teacher_damage_formula # Math operations in ability or specials tags 0 special_calculation_add 0 special_calculation_add2_add3_cumulative 0 special_calculation_add3_add2_cumulative 0 special_calculation_add_multiply_combined 0 special_calculation_add_multiply_separated 0 special_calculation_add_sub_combined 0 special_calculation_add_sub_cumulative 0 special_calculation_add2_sub_minus3_cumulative 0 special_calculation_add_sub_separated 0 special_calculation_add_sub_with_ids 0 special_calculation_divide 0 special_calculation_divide_float_2dp 0 special_calculation_divide_float_3dp 0 special_calculation_divide_multiply_combined 0 special_calculation_divide_multiply_separated 0 special_calculation_multiply_float_2dp 0 special_calculation_multiply_float_3dp 0 special_calculation_sub 0 special_calculation_sub_add_cumulative 0 special_calculation_sub_add_separated 0 special_calculation_sub2_sub3_cumulative 0 special_calculation_sub3_sub2_cumulative 0 test_add_in_leadership_abilities 0 test_sub_in_leadership_abilities # # Deterministic unit facing tests 0 recruit_facing_enemy_one 0 recruit_facing_enemy_two 0 recruit_facing_leader 0 recruit_facing_center # # Interface tests # 0 test_wml_menu_items_1 0 test_wml_menu_items_2 0 test_wml_menu_items_3 # # Conditional tests # 0 check_conditionals_1 0 check_conditionals_2 # Standard Unit Filter tests 0 filter_this_unit_wml 0 filter_this_unit_tl 0 filter_this_unit_formula 0 filter_formula_unit 9 filter_formula_unit_error 0 store_locations_with_unit_filter 0 store_locations_and_or_not_unit_filter # Interrupt tag tests 0 check_interrupts_break 0 check_interrupts_return 0 check_interrupts_continue 0 check_interrupts_break_global 0 check_interrupts_break_nested_event 0 check_interrupts_return_nested_command 0 check_interrupts_return_nested_event 9 check_interrupts_continue_global 0 check_interrupts_elseif 0 check_interrupts_case # For-loop tests 9 forloop_all_zero 9 forloop_step_zero 0 forloop_once_positive 0 forloop_once_negative 0 forloop_twice_matched 0 forloop_twice_unmatched 0 forloop_empty_array 0 forloop_array 0 forloop_array_reverse 0 forloop_step_large_positive 0 forloop_step_large_negative 0 for_defaults 0 for_start2 0 for_end2 0 for_end2_step2 0 for_end-2 0 for_end-2_step-2 0 foreach_mutate_nested # AI Config Parsing tests 0 test_basic_simplified_aspect 0 test_basic_abbreviated_aspect 0 test_basic_standard_aspect 0 test_basic_composite_aspect 0 test_basic_lua_aspect 0 test_basic_composite_facet 0 test_basic_lua_facet 0 test_basic_composite_default_facet 0 test_basic_lua_default_facet # AI Modification tests 0 test_modify_ai_delete_facet 0 test_modify_ai_change_facet 0 test_modify_ai_replace_facet 0 test_modify_ai_add_facet 0 test_modify_ai_change_default_facet 0 test_modify_ai_nested_facets 0 test_modify_ai_composite_default_facets 0 test_modify_ai_change_aspect # Changing the number of sides 0 test_create_side # Event tests 0 event_name_variable_substitution 0 order_of_variable_events1 0 order_of_variable_events2 0 order_of_variable_events3 0 premature_end_turn1 2 premature_end_turn2 0 events_test_priority_in_same_name 0 events_test_priority_vs_origin 0 events_test_same_priority 0 events_test_multi_int 0 events_test_multi_float 0 events_test_lua_events_add_priority_vs_origin 0 events_test_lua_events_add_repeating_priority_vs_origin 0 kill_fires_events # Game mechanics 0 zero_experience 0 increase_zero_experience_by_percentage 0 unit_no_advancements 0 no_sides # heal ability tests 0 heal 0 heal_with_filter 0 heal_positive_value 0 heal_negative_value 0 heal_zero 0 heal_add 0 heal_add_divide 0 heal_add_multiply 0 heal_add_sub 0 heal_affect_self 0 heal_affect_enemies 0 heal_affect_everybody 0 heal_divide 0 heal_high_fraction 0 heal_low_fraction 0 heal_multiply 0 heal_multiply_divide 0 heal_multiply_fraction 0 heal_no_value 0 heal_sub 0 heal_sub_divide 0 heal_sub_multiply 0 heal_wfl_other 0 heal_wfl_self 0 heal_poison_slowed 0 heal_poison_cured 0 heal_no_poison 0 heal_two_cumulative_yes_same_id 0 heal_two_cumulative_yes_unique_id 0 heal_two_cumulative_no_same_id 0 heal_two_cumulative_no_unique_id 0 heal_two_cumulative_mixed_same_id 0 heal_two_cumulative_mixed_unique_id 0 heal_max_value # regenerate ability tests 0 regenerate_positive_value 0 regenerate_negative_value 0 regenerate_zero 0 regenerate_add 0 regenerate_add_divide 0 regenerate_add_multiply 0 regenerate_add_sub 0 regenerate_affect_self_no 0 regenerate_affect_enemies 0 regenerate_affect_everybody 0 regenerate_divide 0 regenerate_high_fraction 0 regenerate_low_fraction 0 regenerate_multiply 0 regenerate_multiply_divide 0 regenerate_multiply_fraction 0 regenerate_no_value 0 regenerate_sub 0 regenerate_sub_divide 0 regenerate_sub_multiply 0 regenerate_wfl_other 0 regenerate_wfl_self 0 regenerate_poison_slowed 0 regenerate_poison_cured 0 regenerate_no_poison 0 regenerate_two_cumulative_yes_same_id 0 regenerate_two_cumulative_yes_unique_id 0 regenerate_two_cumulative_no_same_id 0 regenerate_two_cumulative_no_unique_id 0 regenerate_two_cumulative_mixed_same_id 0 regenerate_two_cumulative_mixed_unique_id 0 regenerate_max_value # resistance ability tests 0 resistance_negative_value 0 resistance_zero 0 resistance_add 0 resistance_add_divide 0 resistance_add_multiply 0 resistance_add_sub 0 resistance_affect_self_no 0 resistance_affect_enemies 0 resistance_affect_everybody 0 resistance_divide 0 resistance_high_fraction 0 resistance_low_fraction 0 resistance_multiply 0 resistance_multiply_divide 0 resistance_multiply_fraction 0 resistance_no_value 0 resistance_sub 0 resistance_sub_divide 0 resistance_sub_multiply 0 resistance_wfl_other 0 resistance_wfl_self 0 resistance_two_cumulative_yes_same_id 0 resistance_two_cumulative_yes_unique_id 0 resistance_two_cumulative_yes_unique_id_skeletal 0 resistance_two_cumulative_no_same_id 0 resistance_two_cumulative_no_unique_id 0 resistance_two_cumulative_no_unique_id_skeletal 0 resistance_two_cumulative_mixed_same_id 0 resistance_two_cumulative_mixed_unique_id 0 resistance_two_cumulative_mixed_unique_id_skeletal 0 resistance_max_value 0 resistance_min_value 0 resistance_cumulative_max_value 0 resistance_negative_max_value 0 resistance_apply_to_blade 0 resistance_apply_to_non_blade 0 resistance_apply_to_invalid 0 resistance_active_on_offense 0 resistance_active_on_defense 0 resistance_active_on_both 0 resistance_no_max_value 0 resistance_no_value_no_max_value 0 resistance_no_value_no_max_value_add # leadership ability tests 0 leadership_negative_value 0 leadership_zero 0 leadership_add 0 leadership_add_divide 0 leadership_add_multiply 0 leadership_add_sub 0 leadership_affect_self_no 0 leadership_affect_enemies 0 leadership_affect_everybody 0 leadership_divide 0 leadership_high_fraction 0 leadership_low_fraction 0 leadership_multiply 0 leadership_multiply_divide 0 leadership_multiply_fraction 0 leadership_no_value 0 leadership_sub 0 leadership_sub_divide 0 leadership_sub_multiply 0 leadership_wfl_other 0 leadership_wfl_self 0 leadership_two_cumulative_yes_same_id 0 leadership_two_cumulative_yes_unique_id 0 leadership_two_cumulative_no_same_id 0 leadership_two_cumulative_no_unique_id 0 leadership_two_cumulative_mixed_same_id 0 leadership_two_cumulative_mixed_unique_id 0 leadership_max_value 0 leadership_active_on_offense 0 leadership_active_on_defense # illuminates ability tests 0 illuminates_active_on_defense 0 illuminates_active_on_offense 0 illuminates_add 0 illuminates_add_divide 0 illuminates_add_multiply 0 illuminates_add_sub 0 illuminates_affect_allies 0 illuminates_affect_enemies 0 illuminates_affect_everybody 0 illuminates_affect_self_no 0 illuminates_divide 0 illuminates_high_fraction 0 illuminates_low_fraction 0 illuminates_max_value 0 illuminates_min_value 0 illuminates_min_value_no_max_value 0 illuminates_multiply 0 illuminates_multiply_divide 0 illuminates_multiply_fraction 0 illuminates_negative_max_value 0 illuminates_negative_min_value 0 illuminates_negative_value 0 illuminates_no_max_value 0 illuminates_no_value 0 illuminates_sub 0 illuminates_sub_divide 0 illuminates_sub_multiply 0 illuminates_two_cumulative_mixed_same_id 0 illuminates_two_cumulative_mixed_unique_id 0 illuminates_two_cumulative_no_same_id 0 illuminates_two_cumulative_no_unique_id 0 illuminates_two_cumulative_yes_same_id 0 illuminates_two_cumulative_yes_unique_id 0 illuminates_wfl_other 0 illuminates_wfl_self 0 illuminates_zero 0 illuminates_value_neutral 0 illuminates_value_chaotic 0 illuminates_value_liminal 0 illuminates_value_day_uncapped 0 illuminates_value_day_capped 0 illuminates_value_night 0 illuminates_value_deep # skirmisher ability tests 0 skirmisher 0 no_skirmisher 0 skirmisher_adjacent_enemies 0 skirmisher_adjacent # hides ability tests 0 hides_self 0 hides_nobody # teleport ability tests 0 teleport_simple 0 no_teleport 0 teleport_no_tunnel 0 teleport_adjacent_allies 0 tunnel_filter_teleport_unit 0 tunnel_target_teleport_unit_fail 0 tunnel_target_teleport_unit_succeed 0 tunnel_source_teleport_unit_fail 0 tunnel_source_teleport_unit_succeed # attacks ability tests 9 attacks_negative_value 0 attacks_zero 0 attacks_add 0 attacks_add_divide 0 attacks_add_multiply 0 attacks_add_sub 0 attacks_affect_allies 0 attacks_affect_self_no 0 attacks_affect_enemies 0 attacks_affect_everybody 0 attacks_divide 0 attacks_high_fraction 0 attacks_low_fraction 0 attacks_multiply 0 attacks_multiply_divide 0 attacks_multiply_fraction 0 attacks_no_value 0 attacks_sub 0 attacks_sub_divide 0 attacks_sub_multiply 0 attacks_wfl_other 0 attacks_wfl_self 0 attacks_two_cumulative_yes_same_id 0 attacks_two_cumulative_yes_unique_id 0 attacks_two_cumulative_no_same_id 0 attacks_two_cumulative_no_unique_id 0 attacks_two_cumulative_mixed_same_id 0 attacks_two_cumulative_mixed_unique_id 0 attacks_max_value 0 attacks_overwrite_specials_one_side 0 attacks_overwrite_specials_both_sides 0 attacks_overwrite_specials_two_both_sides 0 attacks_overwrite_specials_two_one_side 0 attacks_overwrite_specials_mixed # berserk ability tests 0 berserk_negative_value 0 berserk_zero 0 berserk_add 0 berserk_add_divide 0 berserk_add_multiply 0 berserk_add_sub 0 berserk_affect_allies 0 berserk_affect_self_no 0 berserk_affect_enemies 0 berserk_affect_everybody 0 berserk_divide 0 berserk_high_fraction 0 berserk_low_fraction 0 berserk_multiply 0 berserk_multiply_divide 0 berserk_no_value 0 berserk_sub 0 berserk_sub_divide 0 berserk_sub_multiply 0 berserk_wfl_other 0 berserk_wfl_self 0 berserk_two_cumulative_yes_same_id 0 berserk_two_cumulative_yes_unique_id 0 berserk_two_cumulative_no_same_id 0 berserk_two_cumulative_no_unique_id 0 berserk_two_cumulative_mixed_same_id 0 berserk_two_cumulative_mixed_unique_id 0 berserk_max_value 0 berserk_overwrite_specials_one_side 0 berserk_overwrite_specials_both_sides 0 berserk_overwrite_specials_two_both_sides 0 berserk_overwrite_specials_two_one_side 0 berserk_overwrite_specials_mixed 0 berserk_different_values # chance_to_hit ability tests 0 chance_to_hit_negative_value 0 chance_to_hit_add 0 chance_to_hit_add_divide 0 chance_to_hit_add_multiply 0 chance_to_hit_add_sub 0 chance_to_hit_affect_allies 0 chance_to_hit_affect_self_no 0 chance_to_hit_affect_enemies 0 chance_to_hit_affect_everybody 0 chance_to_hit_divide 0 chance_to_hit_multiply 0 chance_to_hit_multiply_divide 0 chance_to_hit_no_value 0 chance_to_hit_sub 0 chance_to_hit_sub_divide 0 chance_to_hit_sub_multiply 0 chance_to_hit_wfl_other 0 chance_to_hit_wfl_self 0 chance_to_hit_two_cumulative_yes_same_id 0 chance_to_hit_two_cumulative_yes_unique_id 0 chance_to_hit_two_cumulative_no_same_id 0 chance_to_hit_two_cumulative_no_unique_id 0 chance_to_hit_two_cumulative_mixed_same_id 0 chance_to_hit_two_cumulative_mixed_unique_id 0 chance_to_hit_max_value 0 chance_to_hit_overwrite_specials_one_side 0 chance_to_hit_overwrite_specials_both_sides 0 chance_to_hit_overwrite_specials_two_both_sides 0 chance_to_hit_overwrite_specials_two_one_side 0 chance_to_hit_overwrite_specials_mixed # damage ability tests 0 damage_negative_value 0 damage_zero 0 damage_add 0 damage_add_divide 0 damage_add_multiply 0 damage_add_sub 0 damage_affect_allies 0 damage_affect_self_no 0 damage_affect_enemies 0 damage_affect_everybody 0 damage_divide 0 damage_high_fraction 0 damage_low_fraction 0 damage_multiply 0 damage_multiply_divide 0 damage_multiply_fraction 0 damage_no_value 0 damage_sub 0 damage_sub_divide 0 damage_sub_multiply 0 damage_wfl_other 0 damage_wfl_self 0 damage_two_cumulative_yes_same_id 0 damage_two_cumulative_yes_unique_id 0 damage_two_cumulative_no_same_id 0 damage_two_cumulative_no_unique_id 0 damage_two_cumulative_mixed_same_id 0 damage_two_cumulative_mixed_unique_id 0 damage_max_value 0 damage_overwrite_specials_one_side 0 damage_overwrite_specials_both_sides 0 damage_overwrite_specials_two_both_sides 0 damage_overwrite_specials_two_one_side 0 damage_overwrite_specials_mixed # damage_type ability tests 0 damage_type_replacement_arcane 0 damage_type_replacement_blade 0 damage_type_replacement_cold 0 damage_type_replacement_fire 0 damage_type_replacement_impact 0 damage_type_replacement_pierce 0 damage_type_alternative_arcane 0 damage_type_alternative_blade 0 damage_type_alternative_cold 0 damage_type_alternative_fire 0 damage_type_alternative_impact 0 damage_type_alternative_pierce 0 damage_type_replacement_two 0 damage_type_replacement_three 0 damage_type_alternative_two 0 damage_type_alternative_three 0 damage_type_both_separate_replacement_best 0 damage_type_both_separate_alternative_best 0 damage_type_both_same_replacement_best 0 damage_type_both_same_alternative_best 0 damage_type_many # disable tests 0 disable_ability 0 disable_affect_allies 0 disable_affect_self_no 0 disable_affect_enemies 0 disable_affect_everybody # drains ability tests 0 drains_negative_value 0 drains_zero 0 drains_add 0 drains_add_divide 0 drains_add_multiply 0 drains_add_sub 0 drains_affect_allies 0 drains_affect_self_no 0 drains_affect_enemies 0 drains_affect_everybody 0 drains_divide 0 drains_high_fraction 0 drains_low_fraction 0 drains_multiply 0 drains_multiply_divide 0 drains_multiply_fraction 0 drains_no_value 0 drains_sub 0 drains_sub_divide 0 drains_sub_multiply 0 drains_wfl_other 0 drains_wfl_self 0 drains_two_cumulative_yes_same_id 0 drains_two_cumulative_yes_unique_id 0 drains_two_cumulative_no_same_id 0 drains_two_cumulative_no_unique_id 0 drains_two_cumulative_mixed_same_id 0 drains_two_cumulative_mixed_unique_id 0 drains_default_cumulative_yes 0 drains_default_cumulative_no 0 drains_default_cumulative_both 0 drains_max_value 0 drains_overwrite_specials_one_side 0 drains_overwrite_specials_both_sides 0 drains_overwrite_specials_two_both_sides 0 drains_overwrite_specials_two_one_side 0 drains_overwrite_specials_mixed # firststrike tests 0 firststrike_ability 0 firststrike_affect_allies 0 firststrike_affect_self_no 0 firststrike_affect_enemies 0 firststrike_affect_everybody # heal_on_hit ability tests 0 heal_on_hit_negative_value 0 heal_on_hit_zero 0 heal_on_hit_add 0 heal_on_hit_add_divide 0 heal_on_hit_add_multiply 0 heal_on_hit_add_sub 0 heal_on_hit_affect_allies 0 heal_on_hit_affect_self_no 0 heal_on_hit_affect_enemies 0 heal_on_hit_affect_everybody 0 heal_on_hit_divide 0 heal_on_hit_high_fraction 0 heal_on_hit_low_fraction 0 heal_on_hit_multiply 0 heal_on_hit_multiply_divide 0 heal_on_hit_multiply_fraction 0 heal_on_hit_no_value 0 heal_on_hit_sub 0 heal_on_hit_sub_divide 0 heal_on_hit_sub_multiply 0 heal_on_hit_wfl_other 0 heal_on_hit_wfl_self 0 heal_on_hit_two_cumulative_yes_same_id 0 heal_on_hit_two_cumulative_yes_unique_id 0 heal_on_hit_two_cumulative_no_same_id 0 heal_on_hit_two_cumulative_no_unique_id 0 heal_on_hit_two_cumulative_mixed_same_id 0 heal_on_hit_two_cumulative_mixed_unique_id 0 heal_on_hit_max_value 0 heal_on_hit_overwrite_specials_one_side 0 heal_on_hit_overwrite_specials_both_sides 0 heal_on_hit_overwrite_specials_two_both_sides 0 heal_on_hit_overwrite_specials_two_one_side 0 heal_on_hit_overwrite_specials_mixed # petrifies tests 0 petrifies_ability 0 petrifies_affect_allies 0 petrifies_affect_self_no 0 petrifies_affect_enemies 0 petrifies_affect_everybody # plague tests 0 plague_ability 0 plague_affect_allies 0 plague_affect_self_no 0 plague_affect_enemies 0 plague_affect_everybody 0 plague_no_type 0 plague_without_priority # Warnings about WML 0 unknown_scenario_false_positives 0 unknown_scenario_interpolated 9 unknown_scenario_1_0 9 unknown_scenario_1_0_last 9 unknown_scenario_1_1 9 unknown_scenario_2_0 9 unknown_scenario_1_1_last_null # Lua API tests 0 lua_functional_reduce 0 lua_map_find 0 mapgen_filter_range 0 mapgen_filter_terrain 0 test_remove_modifications 0 simulate_combat_clone_adjacent 0 simulate_combat_occupied