wesnoth/wml_test_schedule

1007 lines
28 KiB
Plaintext
Raw Normal View History

#
# 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
2022-11-30 22:42:04 +00:00
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
2014-05-14 01:27:17 +00:00
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
2014-05-17 01:25:23 +00:00
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
2014-05-26 23:06:00 +00:00
0 set_gold_in_prestart_one
0 set_gold_in_prestart_two
2014-05-27 00:02:05 +00:00
0 modify_turns_one
0 modify_turns_two
0 modify_turns_three
0 modify_turns_four
2014-05-27 00:14:16 +00:00
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
2021-04-09 13:53:08 +00:00
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
2021-04-09 13:53:08 +00:00
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
2021-04-11 22:10:59 +00:00
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
2018-10-27 20:40:03 +00:00
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
2015-06-10 20:07:28 +00:00
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
2022-08-09 04:18:43 +00:00
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
2021-02-28 02:24:47 +00:00
# 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
2021-02-28 02:24:47 +00:00
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
2022-11-30 22:42:04 +00:00
0 test_terrain_mask_file
#
2014-12-05 20:30:12 +00:00
# LUA
#
0 lua_dofile
2014-12-07 04:32:29 +00:00
0 lua_require
0 lua_get_sides
0 test_wml_actions
0 test_wml_conditionals
0 lua_wml_tagnames
Support negative numbers in ranges Adds support for using these in the weapons and ability filters: * "-1", which was previously treated as an parse error (no number before the separator). * "-3--1" * "-infinity" as the lower number in the range, provided a different upper number is given. This treats "-infinity" (with no other number), "-infinity--infinity", "infinity" (with no other number) and "infinity-infinity" as errors. It seems unlikely that someone would intend to use a filter that can't match any reasonable number. The range "-infinity-infinity" will be parsed successfully. I don't see a use case for that, but nor do I see a reason to add extra C++ to reject it. However, it's not added to the schema, as I think it's good for the schema to give a warning when someone creates a filter which will accept every value (including accepting the default, so "-infinity-infinity" accepts the unset value too). Includes new unit tests for the C++ and the Lua stringx.parse_range functions. The next commit adds more WML tests, but is kept separate to credit the author. This started as a change to move common filter functions from unit.cpp to somewhere that they could be reused for other config-based filters. In the process a missing feature was found and added, the move is still included in a single Git commit because the move was required in order to make these functions accessible to the Boost unit tests. Two CodeBlocks project files additionally get src/utils/any.hpp added, which was in one of them but missing from the other two. I noticed because these are alphabetically at the start of the src/utils file list. Thanks to @CelticMinstrel for the review comments and Xcode project updates.
2023-08-06 11:51:49 +00:00
0 test_parse_range
0 test_scoped_array
0 test_scoped_scalar
0 as_text
0 test_lua_version_api
2014-12-05 20:30:12 +00:00
#
# 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
Add attribute apply_to_vision to [effect]apply_to=movement When processing [effect]apply_to=movement, if apply_to_vision is 'yes' (which is the default) then the vision points will change by the same amount. Previously, it sometimes affected vision and sometimes didn't; for most cases where it makes a difference, I expect it to be a change from unanticipated behavior to expected behavior. Please refer to the new unit test added in this commit for more detailed docs; that test is also a rough draft for the Wiki update needed when this merges. The reason it sometimes affected vision was that the special value of -1 vision points was interpreted as "use the value of the max movement points instead". The special value of -1 is still supported and frequently used, and refactor that is out of scope for this commit - it's easy to check when the code path changed in this commit is used, however it's considerably more complex to find all routes that create a unit with vision set to -1. I'm expecting one add-on, Rebirth In Nature, to need a large update for this; as well as a trivial change needed to the Add Creature Pack. There are several mods that have their own handling for vision, recalculate the values frequently, and are expected to continue working as before, as they'll just overwrite any changes that the engine makes. * Proper Flying Mod / Proper Vision Mod * LotI * Blessed Altar Mod * Shards Era's `CALCULATE_WEAPONS_ONLY` macro * Castle of Evil Spirit Rebirth In Nature is an RPG-style campaign that expects the player's unit to have vision separated from movement along with right-click menus that change the character's movement, this will probably need `apply_to_vision=no` in many places. OTOH, its `item_id=mobility` uses `apply_to=movement` followed by `apply_to=vision` to implement in 1.14 what this change will make default behavior in 1.16. There are a few sharpshooter units which have vision better than their movement. If given a buff which boosts their movement, this will give them a buff to vision too; likely a change towards expected behavior. * Archaic Era's Royal Ranger * Ageless Era's Royal Ranger and Dwarvish Forest Sniper * Eastern Europe at War's Yacht and Great Yacht * Era of More Units's Lone Wolf * Southernerns has several sharpshooters * WWII Era has several sharpshooters * War of Dominions has some guard towers with very low movement Silver Age has abilities that modify vision based on time-of-day, but unlike the Proper Flying Mod and LotI these are done by adding and removing objects that add or subtract one vision point, these should be unaffected by this change. Unrelated to that, it declares values for `[unit_type]vision=` even when the value is the same as max moves - like the sharpshooters this means that buffs to their movement wouldn't have buffed their vision but now do. There are few units with vision less than movement. Generally these seem to be missile weapons that are represented as units, and they probably won't meet any apply_to=movement statements - even if a movement power-up is available, the player would probably choose a different unit. The Add Creature Pack has two creatures (the Cactose Elder and Carnivore Fatal Plant) that have reduced vision, along with AMLAs that increase those units' movement; these AMLAs will need to use `apply_to_vision=no`. These two creatures are used in Castle of Evil Spirit, but they won't get enough experience to get an AMLA there. Fixes #3356.
2021-01-14 07:34:46 +00:00
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
2015-01-05 07:34:09 +00:00
0 test_time_area_damage
0 test_time_area_prestart
2022-11-22 01:41:05 +00:00
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
Unit tests for [drains], [poison] and [slow], with apply_to=opponent Slightly different to PR #6582, which was the 1.16 version of this. The five lines that were labelled `preserving known bug` are changed to test that it's been fixed. Here `apply_to=opponent` means that the weapon special gives the opponent the ability, the unit that should get poisoned or slowed is the unit that has the weapon special. There's a known bug in 1.16, that `apply_to=opponent` check the wrong unit to see it it's `unpoisonable`, `undrainable` etc. It also checks the wrong unit to see if it's already poisoned or slowed, so a battle between two units that both have reverse-poison results in at most one being poisoned. Most of the credit for this is Newfrenchy's, as he's already written a fix and a WML based test. This commit uses a Lua test instead to test more combinations of statuses. This adds a `COMMON_KEEP_A_B_UNIT_TEST` macro, which is a counterpart to the `GENERIC_UNIT_TEST` macro that starts the leaders next to each other, ready to attack. The `A_B` is because I'm planning a multiple-side variant too. There's no test for [petrify], as simulate_combat doesn't provide a stat for it. This tests only 3 of the 6 abilities whose behavior changed in 650f70405ff. My thoughts on testing the others are: * [firststrike]'s test is in 650f70405ff. * [drains], [poison] and [slow] are tested here. * [petrify] ends combat, it's also not exposed in simulate_combat's stats. * [plague] triggers after combat ends.
2022-04-07 20:46:34 +00:00
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
2022-11-30 22:42:04 +00:00
0 test_wml_menu_items_2
0 test_wml_menu_items_3
2015-04-02 21:31:13 +00:00
#
# 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
2016-03-13 05:37:11 +00:00
0 forloop_step_large_negative
2017-06-22 02:18:24 +00:00
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
2016-03-13 05:37:11 +00:00
# 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
2018-10-20 23:13:50 +00:00
# Game mechanics
0 zero_experience
0 increase_zero_experience_by_percentage
0 unit_no_advancements
2023-05-06 17:10:06 +00:00
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
2023-12-18 05:42:35 +00:00
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
2023-12-18 05:42:35 +00:00
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
2024-01-05 15:40:03 +00:00
# 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
2024-07-31 00:06:38 +00:00
0 attacks_affect_allies
2024-01-05 15:40:03 +00:00
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
2024-07-31 00:06:38 +00:00
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
2024-07-21 22:30:37 +00:00
# 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
2024-07-31 00:06:38 +00:00
0 chance_to_hit_affect_allies
2024-07-21 22:30:37 +00:00
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
2024-07-31 00:06:38 +00:00
# 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
2024-08-01 14:25:28 +00:00
# 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
2024-08-12 04:09:54 +00:00
# disable tests
0 disable_ability
0 disable_affect_allies
0 disable_affect_self_no
0 disable_affect_enemies
0 disable_affect_everybody
2024-08-24 03:38:11 +00:00
# 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
2024-08-28 23:15:11 +00:00
# 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
2024-09-06 20:40:18 +00:00
# petrifies tests
0 petrifies_ability
0 petrifies_affect_allies
0 petrifies_affect_self_no
0 petrifies_affect_enemies
0 petrifies_affect_everybody
2024-09-10 04:33:49 +00:00
# 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
2022-11-30 22:42:04 +00:00
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