"""Risoluzione condivisa della selezione di layer (debug == analizza). L'engine e il confronto "metodi" devono partire dalla STESSA selezione di layer, altrimenti il tab metodi mostra layer (es. rules) che l'analisi non ha eseguito. """ from __future__ import annotations from config.detection.layers import LAYER_KEYS, resolve_selected_layers def test_valid_selection_is_kept(): assert resolve_selected_layers(["zero_shot"]) == ("zero_shot",) def test_empty_selection_falls_back_to_rules_like_engine(): # Selezione vuota = stesso default dell'engine (regole), NON "tutti i layer". assert resolve_selected_layers([]) == ("rules",) def test_only_invalid_keys_fall_back_to_rules(): assert resolve_selected_layers(["non_esiste"]) == ("rules",) def test_none_stays_none_for_compare_all(): # Nessuna selezione esplicita: il chiamante decide (il confronto mostra tutti). assert resolve_selected_layers(None) is None def test_invalid_keys_are_filtered_out(): got = resolve_selected_layers(["zero_shot", "non_esiste"]) assert got == ("zero_shot",) assert all(k in LAYER_KEYS for k in got)