8 #include <catch2/catch_test_macros.hpp>
15 using namespace nmodl;
16 using namespace visitor;
23 const std::string& variable) {
24 return VarUsageVisitor().variable_used(*node, variable);
27 SCENARIO(
"Searching for variable name using VarUsageVisitor",
"[visitor][var_usage]") {
28 auto to_ast = [](
const std::string& text) {
33 GIVEN(
"A simple NMODL block") {
34 std::string nmodl_text = R
"(
44 auto ast = to_ast(nmodl_text);
45 auto node = ast->get_blocks().front();
47 WHEN(
"Looking for existing variable") {
48 THEN(
"Can find variables") {
55 WHEN(
"Looking for missing variable") {
56 THEN(
"Can not find variable") {
63 GIVEN(
"A nested NMODL block") {
64 std::string nmodl_text = R
"(
65 NET_RECEIVE (weight,weight_AMPA, weight_NMDA, R){
68 weight_NMDA = weight * NMDA_ratio
79 auto ast = to_ast(nmodl_text);
80 auto node = ast->get_blocks().front();
82 WHEN(
"Looking for existing variable in outer block") {
83 THEN(
"Can find variables") {
89 WHEN(
"Looking for existing variable in inner block") {
90 THEN(
"Can find variables") {