import pytest from src.basic_data_handling._dynamic_input import ContainsDynamicDict def test_contains_dynamic_dict_basic_lookup(): d = ContainsDynamicDict( { "value": ("x", {"_dynamic": "number"}), "fixed": "y", } ) # direct behavior assert "value" in d assert d["value"] == ("x", {"_dynamic": "number"}) # dynamic numeric key lookup assert "value1" in d assert d["value1"] == ("x", {"_dynamic": "number"}) assert "value999" in d assert d["value999"] == ("x", {"_dynamic": "number"}) # non-dynamic key and fallback assert "fixed" in d assert d["fixed"] == "y" # non-matching key should not be present assert "novalue" not in d with pytest.raises(KeyError): _ = d["novalue"] def test_contains_dynamic_dict_partial_prefix_not_numeric(): d = ContainsDynamicDict({"val": ("z", {"_dynamic": "number"})}) assert "val" in d assert d["val"] == ("z", {"_dynamic": "number"}) assert "val1" in d assert d["val1"] == ("z", {"_dynamic": "number"}) assert "valx" not in d with pytest.raises(KeyError): _ = d["valx"]