#include #include "secsgem/config/loader.hpp" #include "secsgem/gem/name_index.hpp" using namespace secsgem; namespace gem = secsgem::gem; #ifndef SECSGEM_DATA_DIR #error "SECSGEM_DATA_DIR not defined; see CMakeLists.txt" #endif TEST_CASE("resolve_variable maps config names to VIDs across SVIDs and DVIDs") { gem::EquipmentDataModel m; config::load_equipment(SECSGEM_DATA_DIR "/equipment.yaml", m); CHECK(gem::resolve_variable(m, "ControlState") == 1); // SVID CHECK(gem::resolve_variable(m, "Clock") == 2); // SVID CHECK(gem::resolve_variable(m, "WaferCounter") == 100); // DVID CHECK(gem::resolve_variable(m, "ChamberPressure") == 101);// DVID CHECK_FALSE(gem::resolve_variable(m, "nonexistent").has_value()); CHECK_FALSE(gem::resolve_variable(m, "").has_value()); } TEST_CASE("resolve_event maps collection-event names to CEIDs") { gem::EquipmentDataModel m; config::load_equipment(SECSGEM_DATA_DIR "/equipment.yaml", m); CHECK(gem::resolve_event(m, "ControlStateChanged") == 100); CHECK(gem::resolve_event(m, "ProcessStarted") == 300); CHECK(gem::resolve_event(m, "ControlJobCompleted") == 401); CHECK_FALSE(gem::resolve_event(m, "nonexistent").has_value()); }