wesnoth/wml_test_schedule
Steve Cotton 7f8e3344cf Add a second unit test for TEST_FORCE_CHANCE_TO_HIT
It should work even when the macro appears in the same event as the
attack; this tests that.

The new one uses the COMMON_KEEP macro, but I've left the existing
one unchanged, except for the renaming.
2024-09-13 19:15:56 +02:00

1007 lines
28 KiB
Plaintext

#
# 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