kmantel: retest this please
kmantel: retest this please
jvesely: /retest this please
SamKG: retest this please
SamKG: retest this please
SamKG: retest this please
jvesely: /retest this please
diff --git a/psyneulink/core/compositions/composition.py b/psyneulink/core/compositions/composition.py
index 1de7b15250..cb871a7547 100644
--- a/psyneulink/core/compositions/composition.py
+++ b/psyneulink/core/compositions/composition.py
@@ -7960,7 +7960,7 @@ class Composition(Composition_Base, metaclass=ComponentsMeta):
             *comp_param_type_list))
 
     def _get_state_ids(self):
-        return ["nodes", "projections"] + super()._get_param_ids()
+        return ["nodes", "projections"] + super()._get_state_ids()
 
     def _get_state_struct_type(self, ctx):
         node_state_type_list = (ctx.get_state_struct_type(m) for m in self._all_nodes)
diff --git a/psyneulink/core/llvm/codegen.py b/psyneulink/core/llvm/codegen.py
index 4e0889036f..6425169bcf 100644
--- a/psyneulink/core/llvm/codegen.py
+++ b/psyneulink/core/llvm/codegen.py
@@ -292,9 +292,15 @@ def gen_composition_exec(ctx, composition, *, tags:frozenset):
 
         # Generate a while not 'end condition' loop
         builder.position_at_end(loop_condition)
+        is_finished_flags = {}
+        for idx, node in enumerate(composition.nodes):
+            node_state = builder.gep(state, [ctx.int32_ty(0), ctx.int32_ty(0), ctx.int32_ty(idx)])
+            is_finished_flag_ptr = helpers.get_state_ptr(builder, node, node_state, "is_finished_flag")
+            is_finished_flags[node] = builder.load(is_finished_flag_ptr)
+
         run_cond = cond_gen.generate_sched_condition(
             builder, composition.termination_processing[TimeScale.TRIAL],
-            cond, None)
+            cond, None, is_finished_flags)
         run_cond = builder.not_(run_cond, name="not_run_cond")
 
         loop_body = builder.append_basic_block(name="scheduling_loop_body")
@@ -306,6 +312,11 @@ def gen_composition_exec(ctx, composition, *, tags:frozenset):
 
         zero = ctx.int32_ty(0)
         any_cond = ir.IntType(1)(0)
+        is_finished_flags = {}
+        for idx, node in enumerate(composition.nodes):
+            node_state = builder.gep(state, [ctx.int32_ty(0), ctx.int32_ty(0), ctx.int32_ty(idx)])
+            is_finished_flag_ptr = helpers.get_state_ptr(builder, node, node_state, "is_finished_flag")
+            is_finished_flags[node] = builder.load(is_finished_flag_ptr)
 
         # Calculate execution set before running the mechanisms
         for idx, node in enumerate(composition.nodes):
@@ -314,7 +325,7 @@ def gen_composition_exec(ctx, composition, *, tags:frozenset):
                                            name="run_cond_ptr_" + node.name)
             node_cond = cond_gen.generate_sched_condition(
                 builder, composition._get_processing_condition_set(node),
-                cond, node)
+                cond, node, is_finished_flags)
             ran = cond_gen.generate_ran_this_pass(builder, cond, node)
             node_cond = builder.and_(node_cond, builder.not_(ran),
                                      name="run_cond_" + node.name)
diff --git a/psyneulink/core/llvm/helpers.py b/psyneulink/core/llvm/helpers.py
index 26ebf40943..b2807555e3 100644
--- a/psyneulink/core/llvm/helpers.py
+++ b/psyneulink/core/llvm/helpers.py
@@ -260,12 +260,22 @@ class ConditionGenerator:
         return tuple(data)
 
     def bump_ts(self, builder, cond_ptr, count=(0, 0, 1)):
+        """
+        Increments the time structure of the composition.
+        Count should be a tuple where there is a number in only one spot, and zeroes elsewhere.
+        Indices greater than that of the one are zeroed.
+        """
+        
+        # Validate count tuple
+        assert count.count(0) == len(count) - 1
+
+        # Get timestruct pointer
         ts_ptr = builder.gep(cond_ptr, [self._zero, self._zero, self._zero])
         ts = builder.load(ts_ptr)
 
-        # run, pass, step
+        # Update run, pass, step of ts
         for idx in range(3):
-            if idx == 0 or not all(v == 0 for v in count[:idx]):
+            if all(v == 0 for v in count[:idx]):
                 el = builder.extract_value(ts, idx)
                 el = builder.add(el, self.ctx.int32_ty(count[idx]))
             else:
@@ -342,9 +352,10 @@ class ConditionGenerator:
 
         return builder.icmp_signed("==", node_run, global_run)
 
-    def generate_sched_condition(self, builder, condition, cond_ptr, node):
+    def generate_sched_condition(self, builder, condition, cond_ptr, node, is_finished_flags=None):
+
+        from psyneulink.core.scheduling.condition import All, AllHaveRun, Always, AtPass, AtTrial, EveryNCalls, Never, WhenFinished
 
-        from psyneulink.core.scheduling.condition import All, AllHaveRun, Always, AtPass, AtTrial, EveryNCalls, Never
         if isinstance(condition, Always):
             return ir.IntType(1)(1)
         if isinstance(condition, Never):
@@ -352,13 +363,18 @@ class ConditionGenerator:
         elif isinstance(condition, All):
             agg_cond = ir.IntType(1)(1)
             for cond in condition.args:
-                cond_res = self.generate_sched_condition(builder, cond, cond_ptr, node)
+                cond_res = self.generate_sched_condition(builder, cond, cond_ptr, node, is_finished_flags)
                 agg_cond = builder.and_(agg_cond, cond_res)
             return agg_cond
         elif isinstance(condition, AllHaveRun):
+            # Extract dependencies
+            dependencies = self.composition.nodes
+            if len(condition.args) > 0:
+                dependencies = condition.args
+
             run_cond = ir.IntType(1)(1)
             array_ptr = builder.gep(cond_ptr, [self._zero, self._zero, self.ctx.int32_ty(1)])
-            for node in self.composition.nodes:
+            for node in dependencies:
                 node_ran = self.generate_ran_this_trial(builder, cond_ptr, node)
                 run_cond = builder.and_(run_cond, node_ran)
             return run_cond
@@ -397,5 +413,12 @@ class ConditionGenerator:
 
             # Return: target.calls % N == 0 AND me.last_time < target.last_time
             return builder.and_(completedNruns, ran_after_me)
+        
+        elif isinstance(condition, WhenFinished):
+            target = condition.args[0]
+            assert target in is_finished_flags
+            target_is_finished = is_finished_flags[target]
+            
+            return builder.fcmp_ordered("==", target_is_finished, target_is_finished.type(1))
 
         assert False, "Unsupported scheduling condition: {}".format(condition)
diff --git a/psyneulink/library/components/mechanisms/processing/integrator/ddm.py b/psyneulink/library/components/mechanisms/processing/integrator/ddm.py
index 2e786cd642..c1829ee779 100644
--- a/psyneulink/library/components/mechanisms/processing/integrator/ddm.py
+++ b/psyneulink/library/components/mechanisms/processing/integrator/ddm.py
@@ -1195,3 +1195,36 @@ class DDM(ProcessingMechanism):
             )
             return True
         return False
+    
+    def _gen_llvm_is_finished_cond(self, ctx, builder, params, state, current):
+        # Setup pointers to internal function
+        func_state_ptr = pnlvm.helpers.get_state_ptr(builder, self, state, 'function')
+        func_param_ptr = pnlvm.helpers.get_state_ptr(builder, self, params, 'function')
+
+        # Find the single numeric entry in previous_value
+        try:
+            prev_val_ptr = pnlvm.helpers.get_state_ptr(builder, self.function, func_state_ptr, "previous_value")
+        except ValueError:
+            return pnlvm.ir.IntType(1)(1)
+
+        # Extract scalar value from ptr
+        prev_val_ptr = builder.gep(prev_val_ptr, [ctx.int32_ty(0), ctx.int32_ty(0), ctx.int32_ty(0)])
+        prev_val = builder.load(prev_val_ptr)
+
+        # Take abs of previous val
+        llvm_fabs = ctx.get_builtin("fabs", [ctx.float_ty])
+        prev_val = builder.call(llvm_fabs, [prev_val])
+
+
+        # obtain threshold value
+        threshold_ptr = pnlvm.helpers.get_param_ptr(builder,
+                                                    self.function,
+                                                    func_param_ptr,
+                                                    "threshold")
+
+        threshold_ptr = builder.gep(threshold_ptr, [ctx.int32_ty(0), ctx.int32_ty(0)])
+        threshold = builder.load(threshold_ptr)
+        is_prev_greater_or_equal = builder.fcmp_ordered('>=', prev_val, threshold)
+
+        return is_prev_greater_or_equal
+

Compiled DDM Integrator function result is off by a factor of 20
The following code:

```Python
import psyneulink as pnl
import numpy as np
import pytest

decisionMaker = pnl.DDM(function=pnl.DriftDiffusionIntegrator(starting_point=0,
                                                              threshold=1,
                                                              noise=0.0),
                        reinitialize_when=pnl.AtTrialStart(),
                        output_ports=[pnl.DECISION_VARIABLE, pnl.RESPONSE_TIME],
                        name='DDM')

comp = pnl.Composition()
comp.add_node(decisionMaker)

print(comp.run([.05], termination_processing={pnl.TimeScale.TRIAL: pnl.WhenFinished(decisionMaker)},
         bin_execute=False))
```

results in an output of 

> [array([[1.0]], dtype=object), array([[20.0]], dtype=object)]

in Python mode, but

> [[0.05], [1.0]]

in compiled mode - off by a factor of exactly 20.


diff --git a/tests/composition/test_composition.py b/tests/composition/test_composition.py
index 61633f5bcf..13f046afb1 100644
--- a/tests/composition/test_composition.py
+++ b/tests/composition/test_composition.py
@@ -3436,6 +3436,62 @@ class TestSystemComposition:
 #         assert 16 == output[0][0]
 #
 
+
+class TestSchedulerConditions:
+    @pytest.mark.composition
+    @pytest.mark.parametrize("mode",['Python',
+                            #  pytest.param('LLVM', marks=pytest.mark.llvm), #FIXME: Fails for `LLVM` and `LLVMExec` modes?
+                            #  pytest.param('LLVMExec', marks=pytest.mark.llvm),
+                             pytest.param('LLVMRun', marks=pytest.mark.llvm),
+                             pytest.param('PTXExec', marks=[pytest.mark.llvm, pytest.mark.cuda]),
+                             pytest.param('PTXRun', marks=[pytest.mark.llvm, pytest.mark.cuda])
+                             ])
+    @pytest.mark.parametrize(["condition", "expected_result"],[
+                             (pnl.EveryNCalls, [[.25, .25]]),
+                             (pnl.WhenFinished, [[1.0, 1.0]]),
+                             (pnl.All, [[1.0, 1.0]]),
+                             (pnl.AllHaveRun, [[.05, .05]]),
+                             (pnl.Always, [[0.05, 0.05]]),
+                            #  (pnl.AtPass, [[.3, .3]]), #FIXME: Differing result between llvm and python
+                             (pnl.AtTrial,[[0.05, 0.05]]),
+                            #  (pnl.Never), #TODO: Find a good test case for this!
+                            ])
+    def test_scheduler_conditions(self, mode, condition, expected_result):
+        print(mode, condition)
+        decisionMaker = pnl.DDM(
+                        function=pnl.DriftDiffusionIntegrator(starting_point=0,
+                                                              threshold=1,
+                                                              noise=0.0),
+                        reinitialize_when=pnl.AtTrialStart(),
+                        output_ports=[pnl.DECISION_VARIABLE, pnl.RESPONSE_TIME],
+                        name='DDM')
+
+        response = pnl.ProcessingMechanism(size=2, name="GATE")
+
+        comp = pnl.Composition()
+        comp.add_node(decisionMaker)
+        comp.add_node(response)
+        comp.add_projection(pnl.MappingProjection(), sender=decisionMaker, receiver=response)
+
+        if condition is pnl.EveryNCalls:
+            comp.scheduler.add_condition(response, condition(decisionMaker, 5))
+        elif condition is pnl.WhenFinished:
+            comp.scheduler.add_condition(response, condition(decisionMaker))
+        elif condition is pnl.All:
+            comp.scheduler.add_condition(response, condition(pnl.WhenFinished(decisionMaker)))
+        elif condition is pnl.AllHaveRun:
+            comp.scheduler.add_condition(response, condition(decisionMaker))
+        elif condition is pnl.Always:
+            comp.scheduler.add_condition(response, condition())
+        elif condition is pnl.AtPass:
+            comp.scheduler.add_condition(response, condition(5))
+        elif condition is pnl.AtTrial:
+            comp.scheduler.add_condition(response, condition(0))
+        result = comp.run([0.05], bin_execute=mode)
+        result = [x for x in np.array(result).flatten()] #HACK: The result is an object dtype in Python mode for some reason?
+        assert np.allclose(result, np.array(expected_result).flatten())
+
+
 class TestNestedCompositions:
 
     @pytest.mark.composition
diff --git a/tests/mechanisms/test_ddm_mechanism.py b/tests/mechanisms/test_ddm_mechanism.py
index c54ee3ab49..5dac944757 100644
--- a/tests/mechanisms/test_ddm_mechanism.py
+++ b/tests/mechanisms/test_ddm_mechanism.py
@@ -713,3 +713,27 @@ def test_DDM_threshold_modulation(mode):
     val = np.asfarray(val)
     assert np.allclose(val[0], [60.0])
     assert np.allclose(val[1], [60.2])
+
+@pytest.mark.parametrize("mode", ['Python',
+                                    pytest.param('LLVM', marks=pytest.mark.llvm),
+                                    pytest.param('LLVMExec', marks=pytest.mark.llvm),
+                                    pytest.param('LLVMRun', marks=pytest.mark.llvm),
+                                    pytest.param('PTXExec', marks=[pytest.mark.llvm, pytest.mark.cuda]),
+                                    pytest.param('PTXRun', marks=[pytest.mark.llvm, pytest.mark.cuda])
+                                    ])
+@pytest.mark.parametrize(["noise", "threshold", "expected_results"],[
+                            (1.0, 0.0, (0.0, 1.0)),
+                            (1.5, 2, (-2.0, 1.0)),
+                            (10.0, 10.0, (10.0, 29.0)),
+                            (100.0, 100.0, (100.0, 76.0)),
+                        ])
+def test_ddm_is_finished(mode, noise, threshold, expected_results):
+    comp = Composition()
+    ddm = DDM(execute_until_finished=True,
+                function=DriftDiffusionIntegrator(threshold=threshold, noise=noise))
+    comp.add_node(ddm)
+
+    results = comp.run([0], bin_execute=mode)
+
+    results = [x for x in np.array(results).flatten()] #HACK: The result is an object dtype in Python mode for some reason?
+    assert np.allclose(results, np.array(expected_results).flatten())

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-benchmark pytest-cov pytest-helpers-namespace pytest-profiling pytest-pycodestyle pytest-pydocstyle pytest-xdist
apt-get update apt-get install -y graphviz
3.9
requirements.txt dev_requirements.txt tutorial_requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.16
anyio==4.9.0
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==3.0.0
async-lru==2.0.5
attrs==25.3.0
autograd==1.7.0
babel==2.17.0
beautifulsoup4==4.13.3
bleach==6.2.0
certifi==2025.1.31
cffi==1.17.1
charset-normalizer==3.4.1
click==8.1.8
cloudpickle==3.1.1
comm==0.2.2
contourpy==1.3.0
coverage==7.8.0
cycler==0.12.1
Cython==3.0.12
dask==2024.8.0
debugpy==1.8.13
decorator==5.2.1
defusedxml==0.7.1
dill==0.3.9
distributed==2024.8.0
docutils==0.21.2
elfi==0.8.7
exceptiongroup==1.2.2
execnet==2.1.1
executing==2.2.0
fastjsonschema==2.21.1
filelock==3.18.0
fonttools==4.56.0
fqdn==1.5.1
fsspec==2025.3.2
gprof2dot==2024.6.6
GPy==1.13.2
graphviz==0.20.3
h11==0.14.0
httpcore==1.0.7
httpx==0.28.1
idna==3.10
imagesize==1.4.1
importlib_metadata==8.6.1
importlib_resources==6.5.2
iniconfig==2.1.0
ipykernel==6.29.5
ipyparallel==9.0.1
ipython==8.18.1
ipywidgets==8.1.5
isoduration==20.11.0
jedi==0.19.2
Jinja2==3.1.6
joblib==1.4.2
json5==0.10.0
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jupyter==1.1.1
jupyter-console==6.6.3
jupyter-events==0.12.0
jupyter-lsp==2.2.5
jupyter_client==8.6.3
jupyter_core==5.7.2
jupyter_server==2.15.0
jupyter_server_terminals==0.5.3
jupyterlab==4.3.6
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.3
jupyterlab_widgets==3.0.13
kiwisolver==1.4.7
llvmlite==0.43.0
locket==1.0.0
MarkupSafe==3.0.2
matplotlib==3.9.4
matplotlib-inline==0.1.7
mistune==3.1.3
mpmath==1.3.0
msgpack==1.1.0
nbclient==0.10.2
nbconvert==7.16.6
nbformat==5.10.4
nest-asyncio==1.6.0
networkx==3.2.1
notebook==7.3.3
notebook_shim==0.2.4
numdifftools==0.9.41
numpy==1.24.4
nvidia-cublas-cu12==12.4.5.8
nvidia-cuda-cupti-cu12==12.4.127
nvidia-cuda-nvrtc-cu12==12.4.127
nvidia-cuda-runtime-cu12==12.4.127
nvidia-cudnn-cu12==9.1.0.70
nvidia-cufft-cu12==11.2.1.3
nvidia-curand-cu12==10.3.5.147
nvidia-cusolver-cu12==11.6.1.9
nvidia-cusparse-cu12==12.3.1.170
nvidia-cusparselt-cu12==0.6.2
nvidia-nccl-cu12==2.21.5
nvidia-nvjitlink-cu12==12.4.127
nvidia-nvtx-cu12==12.4.127
overrides==7.7.0
packaging==24.2
pandocfilters==1.5.1
paramz==0.9.6
parso==0.8.4
partd==1.4.2
pexpect==4.9.0
pillow==11.1.0
platformdirs==4.3.7
pluggy==1.5.0
prometheus_client==0.21.1
prompt_toolkit==3.0.50
psutil==7.0.0
-e git+https://github.com/PrincetonUniversity/PsyNeuLink.git@bac034eebd3d6aa2e1e29e18f25bf4aa26a83b75#egg=psyneulink
psyneulink-sphinx-theme==1.2.5
ptyprocess==0.7.0
pure_eval==0.2.3
py==1.11.0
py-cpuinfo==9.0.0
pycodestyle==2.13.0
pycparser==2.22
pydocstyle==6.3.0
Pygments==2.19.1
pyparsing==3.2.3
pytest==8.3.5
pytest-benchmark==5.1.0
pytest-cov==6.0.0
pytest-helpers-namespace==2021.12.29
pytest-profiling==1.8.1
pytest-pycodestyle==2.4.1
pytest-pydocstyle==2.4.0
pytest-xdist==3.6.1
python-dateutil==2.9.0.post0
python-json-logger==3.3.0
PyYAML==6.0.2
pyzmq==26.3.0
referencing==0.36.2
requests==2.32.3
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.24.0
scikit-learn==1.6.1
scipy==1.12.0
Send2Trash==1.8.3
six==1.17.0
sniffio==1.3.1
snowballstemmer==2.2.0
sortedcontainers==2.4.0
soupsieve==2.6
Sphinx==7.4.7
sphinx-autodoc-typehints==2.3.0
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
stack-data==0.6.3
sympy==1.13.1
tblib==3.1.0
terminado==0.18.1
threadpoolctl==3.6.0
tinycss2==1.4.0
tomli==2.2.1
toolz==1.0.0
toposort==1.4
torch==2.6.0
tornado==6.4.2
tqdm==4.67.1
traitlets==5.14.3
triton==3.2.0
typecheck-decorator==1.2
types-python-dateutil==2.9.0.20241206
typing_extensions==4.13.0
uri-template==1.3.0
urllib3==2.3.0
wcwidth==0.2.13
webcolors==24.11.1
webencodings==0.5.1
websocket-client==1.8.0
widgetsnbextension==4.0.13
zict==3.0.0
zipp==3.21.0

name: PsyNeuLink
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.16
      - anyio==4.9.0
      - argon2-cffi==23.1.0
      - argon2-cffi-bindings==21.2.0
      - arrow==1.3.0
      - asttokens==3.0.0
      - async-lru==2.0.5
      - attrs==25.3.0
      - autograd==1.7.0
      - babel==2.17.0
      - beautifulsoup4==4.13.3
      - bleach==6.2.0
      - certifi==2025.1.31
      - cffi==1.17.1
      - charset-normalizer==3.4.1
      - click==8.1.8
      - cloudpickle==3.1.1
      - comm==0.2.2
      - contourpy==1.3.0
      - coverage==7.8.0
      - cycler==0.12.1
      - cython==3.0.12
      - dask==2024.8.0
      - debugpy==1.8.13
      - decorator==5.2.1
      - defusedxml==0.7.1
      - dill==0.3.9
      - distributed==2024.8.0
      - docutils==0.21.2
      - elfi==0.8.7
      - exceptiongroup==1.2.2
      - execnet==2.1.1
      - executing==2.2.0
      - fastjsonschema==2.21.1
      - filelock==3.18.0
      - fonttools==4.56.0
      - fqdn==1.5.1
      - fsspec==2025.3.2
      - gprof2dot==2024.6.6
      - gpy==1.13.2
      - graphviz==0.20.3
      - h11==0.14.0
      - httpcore==1.0.7
      - httpx==0.28.1
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==8.6.1
      - importlib-resources==6.5.2
      - iniconfig==2.1.0
      - ipykernel==6.29.5
      - ipyparallel==9.0.1
      - ipython==8.18.1
      - ipywidgets==8.1.5
      - isoduration==20.11.0
      - jedi==0.19.2
      - jinja2==3.1.6
      - joblib==1.4.2
      - json5==0.10.0
      - jsonpointer==3.0.0
      - jsonschema==4.23.0
      - jsonschema-specifications==2024.10.1
      - jupyter==1.1.1
      - jupyter-client==8.6.3
      - jupyter-console==6.6.3
      - jupyter-core==5.7.2
      - jupyter-events==0.12.0
      - jupyter-lsp==2.2.5
      - jupyter-server==2.15.0
      - jupyter-server-terminals==0.5.3
      - jupyterlab==4.3.6
      - jupyterlab-pygments==0.3.0
      - jupyterlab-server==2.27.3
      - jupyterlab-widgets==3.0.13
      - kiwisolver==1.4.7
      - llvmlite==0.43.0
      - locket==1.0.0
      - markupsafe==3.0.2
      - matplotlib==3.9.4
      - matplotlib-inline==0.1.7
      - mistune==3.1.3
      - mpmath==1.3.0
      - msgpack==1.1.0
      - nbclient==0.10.2
      - nbconvert==7.16.6
      - nbformat==5.10.4
      - nest-asyncio==1.6.0
      - networkx==3.2.1
      - notebook==7.3.3
      - notebook-shim==0.2.4
      - numdifftools==0.9.41
      - numpy==1.24.4
      - nvidia-cublas-cu12==12.4.5.8
      - nvidia-cuda-cupti-cu12==12.4.127
      - nvidia-cuda-nvrtc-cu12==12.4.127
      - nvidia-cuda-runtime-cu12==12.4.127
      - nvidia-cudnn-cu12==9.1.0.70
      - nvidia-cufft-cu12==11.2.1.3
      - nvidia-curand-cu12==10.3.5.147
      - nvidia-cusolver-cu12==11.6.1.9
      - nvidia-cusparse-cu12==12.3.1.170
      - nvidia-cusparselt-cu12==0.6.2
      - nvidia-nccl-cu12==2.21.5
      - nvidia-nvjitlink-cu12==12.4.127
      - nvidia-nvtx-cu12==12.4.127
      - overrides==7.7.0
      - packaging==24.2
      - pandocfilters==1.5.1
      - paramz==0.9.6
      - parso==0.8.4
      - partd==1.4.2
      - pexpect==4.9.0
      - pillow==11.1.0
      - platformdirs==4.3.7
      - pluggy==1.5.0
      - prometheus-client==0.21.1
      - prompt-toolkit==3.0.50
      - psutil==7.0.0
      - psyneulink-sphinx-theme==1.2.5
      - ptyprocess==0.7.0
      - pure-eval==0.2.3
      - py==1.11.0
      - py-cpuinfo==9.0.0
      - pycodestyle==2.13.0
      - pycparser==2.22
      - pydocstyle==6.3.0
      - pygments==2.19.1
      - pyparsing==3.2.3
      - pytest==8.3.5
      - pytest-benchmark==5.1.0
      - pytest-cov==6.0.0
      - pytest-helpers-namespace==2021.12.29
      - pytest-profiling==1.8.1
      - pytest-pycodestyle==2.4.1
      - pytest-pydocstyle==2.4.0
      - pytest-xdist==3.6.1
      - python-dateutil==2.9.0.post0
      - python-json-logger==3.3.0
      - pyyaml==6.0.2
      - pyzmq==26.3.0
      - referencing==0.36.2
      - requests==2.32.3
      - rfc3339-validator==0.1.4
      - rfc3986-validator==0.1.1
      - rpds-py==0.24.0
      - scikit-learn==1.6.1
      - scipy==1.12.0
      - send2trash==1.8.3
      - six==1.17.0
      - sniffio==1.3.1
      - snowballstemmer==2.2.0
      - sortedcontainers==2.4.0
      - soupsieve==2.6
      - sphinx==7.4.7
      - sphinx-autodoc-typehints==2.3.0
      - sphinxcontrib-applehelp==2.0.0
      - sphinxcontrib-devhelp==2.0.0
      - sphinxcontrib-htmlhelp==2.1.0
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-qthelp==2.0.0
      - sphinxcontrib-serializinghtml==2.0.0
      - stack-data==0.6.3
      - sympy==1.13.1
      - tblib==3.1.0
      - terminado==0.18.1
      - threadpoolctl==3.6.0
      - tinycss2==1.4.0
      - tomli==2.2.1
      - toolz==1.0.0
      - toposort==1.4
      - torch==2.6.0
      - tornado==6.4.2
      - tqdm==4.67.1
      - traitlets==5.14.3
      - triton==3.2.0
      - typecheck-decorator==1.2
      - types-python-dateutil==2.9.0.20241206
      - typing-extensions==4.13.0
      - uri-template==1.3.0
      - urllib3==2.3.0
      - wcwidth==0.2.13
      - webcolors==24.11.1
      - webencodings==0.5.1
      - websocket-client==1.8.0
      - widgetsnbextension==4.0.13
      - zict==3.0.0
      - zipp==3.21.0
prefix: /opt/conda/envs/PsyNeuLink

tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[100.0-100.0-expected_results3-LLVMExec] tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[10.0-10.0-expected_results2-LLVM] tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[10.0-10.0-expected_results2-LLVMExec] tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[100.0-100.0-expected_results3-LLVMRun] tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[10.0-10.0-expected_results2-LLVMRun] tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[100.0-100.0-expected_results3-LLVM]
tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_grow[Python] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_grow[LLVMExec] tests/composition/test_composition.py::TestAddProjection::test_add_proj_weights_only tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_shrink[Python] tests/composition/test_composition.py::TestAddProjection::test_linear_processing_pathway_weights_only tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_shrink[LLVMExec] tests/composition/test_composition.py::TestAddProjection::test_add_linear_processing_pathway_containing_nodes_with_existing_projections tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_grow[LLVM] tests/composition/test_composition.py::TestAnalyzeGraph::test_controller_objective_mech_not_terminal tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_grow[LLVMRun] tests/composition/test_composition.py::TestAnalyzeGraph::test_controller_objective_mech_not_terminal_fall_back tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_override_control_1_terminal[LLVMExec] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_multi_control_1_terminal[LLVMExec] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_additive_control_1_terminal[LLVMExec] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_multi_control_1_terminal[Python] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_shrink[LLVM] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_override_control_1_terminal[Python] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_additive_control_1_terminal[Python] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_shrink[LLVMRun] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_disable_control_1_terminal[LLVMExec] tests/composition/test_composition.py::TestGraphCycles::test_recurrent_transfer_mechanisms tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_disable_control_1_terminal[Python] tests/composition/test_composition.py::TestAddProjection::test_add_backpropagation_learning_pathway_containing_nodes_with_existing_projections tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_override_control_1_terminal[LLVMRun] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_multi_control_1_terminal[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism[LLVM] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_multi_control_1_terminal[LLVM] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_additive_control_1_terminal[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism[Python] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_override_control_1_terminal[LLVM] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_disable_control_1_terminal[LLVMRun] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_additive_control_1_terminal[LLVM] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_hetero[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_hetero_2[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_hetero_2[LLVM] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_vector_2[LLVMRun] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_2_origins_1_disable_control_1_terminal[LLVM] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_integrator_2[LLVM] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_integrator_2[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_hetero[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_hetero_2[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_vector_2[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_integrator_2[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_vector_2[LLVM] tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[EveryNCalls-expected_result0-LLVMRun] tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[All-expected_result2-LLVMRun] tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[All-expected_result2-Python] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_vector_2[Python] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_hetero_2[Python] tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[AtTrial-expected_result5-LLVMRun] tests/composition/test_composition.py::TestRun::test_run_termination_condition_custom_context tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[Always-expected_result4-Python] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_hetero[Python] tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[AtTrial-expected_result5-Python] tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[WhenFinished-expected_result1-LLVMRun] tests/composition/test_composition.py::TestNestedCompositions::test_nested_run_differing_num_trials[Python] tests/composition/test_composition.py::TestNestedCompositions::test_nested_run_differing_num_trials[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_hetero[LLVM] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_integrator[LLVMExec] tests/composition/test_composition.py::TestNestedCompositions::test_nested_run_differing_num_trials[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_integrator_2[Python] tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[EveryNCalls-expected_result0-Python] tests/composition/test_composition.py::TestReinitializeValues::test_save_state_before_simulations tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[AllHaveRun-expected_result3-LLVMRun] tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[AllHaveRun-expected_result3-Python] tests/composition/test_composition.py::TestNestedCompositions::test_nested_run_differing_num_trials[LLVM] tests/mechanisms/test_ddm_mechanism.py::TestThreshold::test_threshold_stops_accumulation[Python-POSITIVE] tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[WhenFinished-expected_result1-Python] tests/composition/test_composition.py::TestSchedulerConditions::test_scheduler_conditions[Always-expected_result4-LLVMRun] tests/composition/test_composition.py::TestInputSpecifications::test_some_inputs_not_specified_origin_node_is_composition tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_integrator[LLVM] tests/composition/test_composition.py::TestInputSpecifications::test_input_type_equivalence[True-True] tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_integrator[LLVMRun] tests/composition/test_composition.py::TestInputSpecifications::test_some_inputs_not_specified tests/mechanisms/test_ddm_mechanism.py::TestThreshold::test_threshold_stops_accumulation[Python-NEGATIVE] tests/composition/test_composition.py::TestInputSpecsDocumentationExamples::test_example_1 tests/mechanisms/test_ddm_mechanism.py::test_DDM_noise[Python-0] tests/composition/test_composition.py::TestProperties::test_llvm_fallback[Python] tests/mechanisms/test_ddm_mechanism.py::test_DDM_input[list] tests/mechanisms/test_ddm_mechanism.py::test_DDM_input[float] tests/mechanisms/test_ddm_mechanism.py::TestReinitialize::test_valid tests/composition/test_composition.py::TestRun::test_run_recurrent_transfer_mechanism_integrator[Python] tests/mechanisms/test_ddm_mechanism.py::TestInputPorts::test_regular_input_mode tests/mechanisms/test_ddm_mechanism.py::test_DDM_rate[Python-list] tests/mechanisms/test_ddm_mechanism.py::TestThreshold::test_is_finished_stops_system tests/mechanisms/test_ddm_mechanism.py::TestInputPorts::test_array_mode tests/composition/test_composition.py::TestInputSpecsDocumentationExamples::test_example_11 tests/composition/test_composition.py::TestInputSpecifications::test_3_origins tests/mechanisms/test_ddm_mechanism.py::test_DDM_threshold_modulation[LLVMRun] tests/mechanisms/test_ddm_mechanism.py::test_DDM_rate[Python-int] tests/mechanisms/test_ddm_mechanism.py::test_DDM_threshold_modulation[LLVM] tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[1.5-2-expected_results1-Python] tests/mechanisms/test_ddm_mechanism.py::test_DDM_noise[Python-0.5] tests/mechanisms/test_ddm_mechanism.py::test_DDM_threshold_modulation[LLVMExec] tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[10.0-10.0-expected_results2-Python] tests/composition/test_composition.py::TestProperties::test_llvm_fallback[True] tests/mechanisms/test_ddm_mechanism.py::test_DDM_rate[Python-float] tests/mechanisms/test_ddm_mechanism.py::test_DDM_time tests/mechanisms/test_ddm_mechanism.py::TestThreshold::test_threshold_sets_is_finished tests/mechanisms/test_ddm_mechanism.py::test_DDM_noise[Python-2.0] tests/mechanisms/test_ddm_mechanism.py::test_DDM_size_int_inputs tests/composition/test_composition.py::TestNestedCompositions::test_invalid_projection_deletion_when_nesting_comps tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[1.0-0.0-expected_results0-Python] tests/mechanisms/test_ddm_mechanism.py::test_DDM_rate[Python-negative] tests/mechanisms/test_ddm_mechanism.py::test_DDM_input[int] tests/composition/test_composition.py::TestInputSpecifications::test_input_type_equivalence[True-False] tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[100.0-100.0-expected_results3-Python] tests/mechanisms/test_ddm_mechanism.py::test_DDM_in_composition[Python] tests/composition/test_composition.py::TestInputSpecifications::test_input_type_equivalence[False-True] tests/mechanisms/test_ddm_mechanism.py::test_DDM_threshold_modulation[Python]
tests/composition/test_composition.py::TestAnalyzeGraph::test_empty_call tests/composition/test_composition.py::TestAddMechanism::test_add_once tests/composition/test_composition.py::TestAddMechanism::test_add_same_twice tests/composition/test_composition.py::TestConstructor::test_two_calls_no_args tests/composition/test_composition.py::TestAnalyzeGraph::test_singleton tests/composition/test_composition.py::TestAddProjection::test_add_proj_missing_receiver tests/composition/test_composition.py::PYCODESTYLE tests/composition/test_composition.py::TestAddProjection::test_add_twice tests/composition/test_composition.py::TestExecutionOrder::test_transfer_mechanism[Python] tests/composition/test_composition.py::TestGraph::TestProcessingGraph::test_all_mechanisms tests/composition/test_composition.py::TestAddProjection::test_add_once tests/composition/test_composition.py::TestAnalyzeGraph::test_two_in_a_row tests/composition/test_composition.py::TestExecutionOrder::test_transfer_mechanism_split[Python] tests/composition/test_composition.py::TestConstructor::test_no_args tests/composition/test_composition.py::TestExecutionOrder::test_transfer_mechanism[LLVMExec] tests/composition/test_composition.py::TestAddProjection::test_add_proj_sender_and_receiver_only tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_with_scheduling_AAB_integrator[Python] tests/composition/test_composition.py::TestAddMechanism::test_add_multiple_projections_no_sender tests/composition/test_composition.py::TestGetMechanismsByRole::test_multiple_roles tests/composition/test_composition.py::TestAddMechanism::test_add_twice tests/composition/test_composition.py::TestAddProjection::test_add_proj_invalid_projection_spec tests/composition/test_composition.py::TestExecutionOrder::test_2_node_loop tests/composition/test_composition.py::TestExecutionOrder::test_outer_feedback_inner_loop tests/composition/test_composition.py::TestExecutionOrder::test_transfer_mechanism_split[LLVMExec] tests/composition/test_composition.py::TestAddMechanism::test_add_multiple_projections_not_a_proj tests/composition/test_composition.py::TestGraph::TestProcessingGraph::test_x tests/composition/test_composition.py::TestAddProjection::test_add_fully_specified_projection_object tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_5[Python] tests/composition/test_composition.py::TestExecutionOrder::test_feedback_pathway_spec tests/composition/test_composition.py::TestExecutionOrder::test_simple_loop tests/composition/test_composition.py::TestGraph::TestProcessingGraph::test_cycle_x tests/composition/test_composition.py::TestGraph::TestProcessingGraph::test_triangle tests/composition/test_composition.py::TestExecutionOrder::test_two_paths_converge tests/composition/test_composition.py::TestAnalyzeGraph::test_two_independent tests/composition/test_composition.py::TestAddProjection::test_add_proj_missing_sender tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_reuse_input[Python] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_frozen_values[Python] tests/composition/test_composition.py::TestExecutionOrder::test_transfer_mechanism[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_with_scheduling_AAB_transfer[LLVM] tests/composition/test_composition.py::TestAddProjection::test_add_linear_processing_pathway_with_noderole_specified_in_tuple tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_5[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_with_multiple_trials_of_input_values[LLVMRun] tests/composition/test_composition.py::TestExecutionOrder::test_transfer_mechanism[LLVM] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_with_scheduling_AAB_transfer[LLVMRun] tests/composition/test_composition.py::TestAnalyzeGraph::test_two_recursive tests/composition/test_composition.py::TestExecutionOrder::test_two_overlapping_loops tests/composition/test_composition.py::TestExecutionOrder::test_diverge_and_reconverge_2 tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_with_scheduling_AAB_transfer[Python] tests/composition/test_composition.py::TestExecutionOrder::test_transfer_mechanism_split[LLVM] tests/composition/test_composition.py::TestAddProjection::test_add_conflicting_projection_object tests/composition/test_composition.py::TestExecutionOrder::test_transfer_mechanism_split[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_with_multiple_trials_of_input_values[Python] tests/composition/test_composition.py::TestAddMechanism::test_add_multiple_projections_no_receiver tests/composition/test_composition.py::TestRun::test_lpp_invalid_matrix_keyword tests/composition/test_composition.py::TestRun::test_projection_assignment_mistake_swap tests/composition/test_composition.py::TestAddMechanism::test_add_multiple_projections_at_once tests/composition/test_composition.py::TestGraph::TestProcessingGraph::test_cycle_linear tests/composition/test_composition.py::TestRun::test_sender_receiver_not_specified[LLVMRun] tests/composition/test_composition.py::TestExecutionOrder::test_inner_feedback_outer_loop tests/composition/test_composition.py::TestRun::test_sender_receiver_not_specified[Python] tests/composition/test_composition.py::TestRun::test_sender_receiver_not_specified[LLVM] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_frozen_values[LLVMExec] tests/composition/test_composition.py::TestRun::test_execute_composition[Python] tests/composition/test_composition.py::TestRun::test_run_5_mechanisms_2_origins_1_terminal[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_composition[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_double_trial_specs[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_double_trial_specs[Python] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_reuse_input[LLVM] tests/composition/test_composition.py::TestExecutionOrder::test_origin_loop tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_reuse_input[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_composition_vector[1-LLVM] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_5[LLVM] tests/composition/test_composition.py::TestExecutionOrder::test_feedback_projection_spec tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_input_5[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_5_mechanisms_2_origins_1_terminal[Python] tests/composition/test_composition.py::TestRun::test_LPP_two_projections_in_a_row tests/composition/test_composition.py::TestAddMechanism::test_add_multiple_nodes_at_once tests/composition/test_composition.py::TestRun::test_run_composition_vector[1-Python] tests/composition/test_composition.py::TestExecutionOrder::test_loop_with_extra_node tests/composition/test_composition.py::TestRun::test_execute_composition[LLVM] tests/composition/test_composition.py::TestExecutionOrder::test_diverge_and_reconverge tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_with_scheduling_AAB_transfer[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_double_trial_specs[LLVM] tests/composition/test_composition.py::TestExecutionOrder::test_figure_eight tests/composition/test_composition.py::TestGraph::TestProcessingGraph::test_cycle_x_multiple_incoming tests/composition/test_composition.py::TestRun::test_projection_assignment_mistake_swap2 tests/composition/test_composition.py::TestExecutionOrder::test_double_loop tests/composition/test_composition.py::TestRun::test_3_mechanisms_1_origin_2_terminals[Python] tests/composition/test_composition.py::TestRun::test_execute_composition[LLVMRun] tests/composition/test_composition.py::TestRun::test_sender_receiver_not_specified[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_with_multiple_trials_of_input_values[LLVM] tests/composition/test_composition.py::TestRun::test_LPP_start_with_projection tests/composition/test_composition.py::TestRun::test_LPP[Python] tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_composition[Python] tests/composition/test_composition.py::TestRun::test_LPP_with_projections[LLVM] tests/composition/test_composition.py::TestRun::test_run_composition[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_reuse_input[LLVMExec] tests/composition/test_composition.py::TestExecutionOrder::test_two_separate_loops tests/composition/test_composition.py::TestRun::test_LPP_end_with_projection tests/composition/test_composition.py::TestRun::test_run_composition_vector[1-LLVMExec] tests/composition/test_composition.py::TestRun::test_LPP[LLVM] tests/composition/test_composition.py::TestRun::test_LPP_with_projections[Python] tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_frozen_values[LLVM] tests/composition/test_composition.py::TestRun::test_run_composition[LLVM] tests/composition/test_composition.py::TestSystemComposition::test_call_beforeafter_values_twopass tests/composition/test_composition.py::TestCallBeforeAfterTimescale::test_call_beforeafter_values_onepass tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal[LLVMExec] tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal[Python] tests/composition/test_composition.py::TestRun::test_execute_composition[LLVMExec] tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_last[LLVMExec] tests/composition/test_composition.py::TestRun::test_LPP_wrong_component tests/composition/test_composition.py::TestRun::test_LPP_with_projections[LLVMRun] tests/composition/test_composition.py::TestRun::test_LPP_two_origins_one_terminal[Python] tests/composition/test_composition.py::TestRun::test_LPP[LLVMRun] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_double_trial_specs[LLVMExec] tests/composition/test_composition.py::TestExecutionOrder::test_terminal_loop tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal[LLVM] tests/composition/test_composition.py::TestRun::test_run_composition_vector[1-LLVMRun] tests/composition/test_composition.py::TestSystemComposition::test_run_2_mechanisms_input_5 tests/composition/test_composition.py::TestExecutionOrder::test_3_mechanisms_frozen_values[LLVMRun] tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_last[LLVM] tests/composition/test_composition.py::TestRun::test_3_mechanisms_1_origin_2_terminals[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_2_mechanisms_with_multiple_trials_of_input_values[LLVMExec] tests/composition/test_composition.py::TestRun::test_LPP_with_projections[LLVMExec] tests/composition/test_composition.py::TestRun::test_run_5_mechanisms_2_origins_1_terminal[LLVMRun] tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_all_sum[LLVMRun] tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_parallel[LLVMRun] tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_last[Python] tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_parallel[Python] tests/composition/test_composition.py::TestCallBeforeAfterTimescale::test_call_beforeafter_values_twopass tests/composition/test_composition.py::TestRun::test_3_mechanisms_1_origin_2_terminals[LLVMRun] tests/composition/test_composition.py::TestInputSpecifications::test_2_mechanisms_input_5 tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_all_sum[Python] tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_parallel[LLVMExec] tests/composition/test_composition.py::TestRun::test_LPP_two_origins_one_terminal[LLVM] tests/composition/test_composition.py::TestRun::test_LPP_two_origins_one_terminal[LLVMExec] tests/composition/test_composition.py::TestNestedCompositions::test_nested_transfer_mechanism_composition[Python] tests/composition/test_composition.py::TestInputSpecifications::test_generator_as_input_with_num_trials[Python] tests/composition/test_composition.py::TestInputPortSpecifications::test_two_input_ports_created_with_dictionaries tests/composition/test_composition.py::TestInputPortSpecifications::test_two_input_ports_created_first_with_deferred_init tests/mechanisms/test_ddm_mechanism.py::TestThreshold::test_threshold_param tests/composition/test_composition.py::TestCallBeforeAfterTimescale::test_call_before_record_timescale tests/composition/test_composition.py::TestRun::test_run_5_mechanisms_2_origins_1_terminal[LLVM] tests/composition/test_composition.py::TestInputPortSpecifications::test_two_input_ports_created_with_values tests/composition/test_composition.py::TestCompositionInterface::test_output_cim_one_terminal_mechanism_multiple_output_ports tests/composition/test_composition.py::TestRun::test_3_mechanisms_1_origin_2_terminals[LLVM] tests/composition/test_composition.py::TestNodeRoles::test_feedback tests/composition/test_composition.py::TestInputSpecsDocumentationExamples::test_documentation_example_two_mechs[example_5] tests/composition/test_composition.py::TestInputSpecifications::test_function_as_input tests/composition/test_composition.py::TestNestedCompositions::test_nested_transfer_mechanism_composition[LLVM] tests/mechanisms/test_ddm_mechanism.py::test_DDM_Integrator_Bogacz[Python] tests/composition/test_composition.py::TestSystemComposition::test_call_beforeafter_values_onepass tests/composition/test_composition.py::TestAuxComponents::test_aux_component_with_required_role tests/composition/test_composition.py::TestNestedCompositions::test_transfer_mechanism_composition[Python] tests/composition/test_composition.py::TestCompositionInterface::test_default_variable_shape_of_output_CIM tests/composition/test_composition.py::TestOverloadedCompositions::test_mechanism_different_inputs tests/composition/test_composition.py::TestRun::test_LPP_two_origins_one_terminal[LLVMRun] tests/composition/test_composition.py::TestInputSpecifications::test_run_2_mechanisms_reuse_input tests/composition/test_composition.py::TestInputSpecifications::test_generator_as_input[LLVMRun] tests/composition/test_composition.py::TestAuxComponents::test_two_transfer_mechanisms_with_feedback_proj tests/composition/test_composition.py::TestNestedCompositions::test_transfer_mechanism_composition[LLVM] tests/composition/test_composition.py::TestInputSpecifications::test_input_type_equivalence[False-False] tests/composition/test_composition.py::TestNestedCompositions::test_two_paths_converge_one_system tests/composition/test_composition.py::TestInputPortSpecifications::test_two_input_ports_created_with_keyword tests/composition/test_composition.py::TestShadowInputs::test_monitor_input_ports tests/composition/test_composition.py::TestRun::test_LPP[LLVMExec] tests/composition/test_composition.py::TestShadowInputs::test_shadow_internal_projections tests/composition/test_composition.py::TestInputPortSpecifications::test_two_input_ports_created_with_strings tests/composition/test_composition.py::TestAuxComponents::test_two_transfer_mechanisms tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_last[LLVMRun] tests/mechanisms/test_ddm_mechanism.py::test_DDM_Integrator_Bogacz[LLVM] tests/composition/test_composition.py::TestNestedCompositions::test_nested_transfer_mechanism_composition[LLVMExec] tests/composition/test_composition.py::TestNodeRoles::test_internal tests/mechanisms/test_ddm_mechanism.py::test_DDM_noise[LLVM-0.5] tests/composition/test_composition.py::TestInputSpecifications::test_generator_as_input[Python] tests/composition/test_composition.py::TestMisc::test_disable_all_history tests/mechanisms/test_ddm_mechanism.py::test_DDM_input_list_len_2 tests/composition/test_composition.py::TestAuxComponents::test_required_node_roles tests/composition/test_composition.py::TestInputSpecifications::test_generator_as_input_with_num_trials[LLVMRun] tests/mechanisms/test_ddm_mechanism.py::TestOutputPorts::test_selected_input_array tests/mechanisms/test_ddm_mechanism.py::test_DDM_size_int_check_var tests/mechanisms/test_ddm_mechanism.py::test_DDM_noise_invalid[int] tests/mechanisms/test_ddm_mechanism.py::test_DDM_mech_size_zero tests/composition/test_composition.py::TestInputSpecsDocumentationExamples::test_documentation_example_two_mechs[example_4] tests/mechanisms/test_ddm_mechanism.py::test_DDM_size_too_large tests/mechanisms/test_ddm_mechanism.py::test_DDM_rate[LLVM-negative] tests/mechanisms/test_ddm_mechanism.py::test_WhenFinished_DDM_Analytical tests/composition/test_composition.py::TestCompositionInterface::test_updating_input_values_for_second_execution tests/composition/test_composition.py::TestInputSpecsDocumentationExamples::test_documentation_example_two_mechs[example_9] tests/composition/test_composition.py::TestInputSpecifications::test_error_on_malformed_generator tests/mechanisms/test_ddm_mechanism.py::TestThreshold::test_threshold_stops_accumulation[LLVM-NEGATIVE] tests/mechanisms/test_ddm_mechanism.py::test_DDM_input_fn tests/composition/test_composition.py::TestInputSpecsDocumentationExamples::test_documentation_example_two_mechs[example_3] tests/composition/test_composition.py::TestNestedCompositions::test_transfer_mechanism_composition[LLVMRun] tests/composition/test_composition.py::TestNestedCompositions::test_one_pathway_inside_one_system tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_all_sum[LLVM] tests/composition/test_composition.py::TestAuxComponents::test_stateful_nodes tests/composition/test_composition.py::TestInputSpecsDocumentationExamples::test_documentation_example_two_mechs[example_2] tests/mechanisms/test_ddm_mechanism.py::test_DDM_rate[LLVM-list] tests/mechanisms/test_ddm_mechanism.py::test_DDM_noise_invalid[functions] tests/mechanisms/test_ddm_mechanism.py::test_DDM_rate[LLVM-int] tests/mechanisms/test_ddm_mechanism.py::test_DDM_noise[LLVM-2.0] tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_all_sum[LLVMExec] tests/composition/test_composition.py::TestNestedCompositions::test_nested_transfer_mechanism_composition_parallel[LLVM] tests/composition/test_composition.py::TestShadowInputs::test_two_origins tests/composition/test_composition.py::TestInputSpecsDocumentationExamples::test_documentation_example_two_mechs[example_8] tests/mechanisms/test_ddm_mechanism.py::test_DDM_mech_size_negative_one tests/composition/test_composition.py::TestExecutionOrder::test_many_loops tests/composition/test_composition.py::TestReinitializeValues::test_reinitialize_one_mechanism_through_run tests/composition/test_composition.py::TestRun::test_3_mechanisms_2_origins_1_terminal_mimo_parallel[LLVM] tests/composition/test_composition.py::TestCompositionInterface::test_output_cim_many_terminal_mechanisms tests/composition/test_composition.py::TestNestedCompositions::test_nested_transfer_mechanism_composition_parallel[Python] tests/composition/test_composition.py::TestNestedCompositions::test_two_paths_converge_one_system_scheduling_matters tests/composition/test_composition.py::TestReinitializeValues::test_reinitialize_one_mechanism_at_trial_2_condition tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[1.0-0.0-expected_results0-LLVMExec] tests/composition/test_composition.py::TestCompositionInterface::test_two_input_ports_new_inputs_second_trial tests/mechanisms/test_ddm_mechanism.py::test_DDM_in_composition[LLVMExec] tests/composition/test_composition.py::TestNestedCompositions::test_nested_transfer_mechanism_composition[LLVMRun] tests/composition/test_composition.py::TestInputSpecsDocumentationExamples::test_documentation_example_two_mechs[example_6] tests/composition/test_composition.py::TestCompositionInterface::test_one_input_port_per_origin_two_origins tests/mechanisms/test_ddm_mechanism.py::test_DDM_noise[LLVM-0] tests/mechanisms/test_ddm_mechanism.py::TestThreshold::test_threshold_stops_accumulation[LLVM-POSITIVE] tests/composition/test_composition.py::TestCompositionInterface::test_inner_composition_change_before_run tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[1.5-2-expected_results1-LLVMExec] tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[1.5-2-expected_results1-LLVM] tests/composition/test_composition.py::TestNestedCompositions::test_combine_two_disjunct_trees tests/mechanisms/test_ddm_mechanism.py::test_DDM_in_composition[LLVMRun] tests/composition/test_composition.py::TestCompositionInterface::test_two_input_ports_new_origin_second_trial tests/composition/test_composition.py::TestShadowInputs::test_two_origins_two_input_ports tests/composition/test_composition.py::TestCompositionInterface::test_changing_origin_for_second_execution tests/mechanisms/test_ddm_mechanism.py::test_DDM_rate[LLVM-float] tests/composition/test_composition.py::TestNestedCompositions::test_combine_two_overlapping_trees tests/mechanisms/test_ddm_mechanism.py::PYCODESTYLE tests/composition/test_composition.py::TestNodeRoles::test_cycle tests/composition/test_composition.py::TestNestedCompositions::test_transfer_mechanism_composition[LLVMExec] tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[1.5-2-expected_results1-LLVMRun] tests/composition/test_composition.py::TestNestedCompositions::test_two_paths_in_series_one_system tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[1.0-0.0-expected_results0-LLVM] tests/mechanisms/test_ddm_mechanism.py::test_DDM_rate_fn tests/composition/test_composition.py::TestExecutionOrder::test_multiple_projections_along_pathway tests/mechanisms/test_ddm_mechanism.py::test_ddm_is_finished[1.0-0.0-expected_results0-LLVMRun] tests/composition/test_composition.py::TestMisc::test_danglingControlledMech tests/composition/test_composition.py::TestInputSpecsDocumentationExamples::test_documentation_example_two_mechs[example_7] tests/mechanisms/test_ddm_mechanism.py::test_DDM_in_composition[LLVM] tests/composition/test_composition.py::TestNestedCompositions::test_nested_transfer_mechanism_composition_parallel[LLVMRun] tests/mechanisms/test_ddm_mechanism.py::test_DDM_size_too_long tests/composition/test_composition.py::TestNestedCompositions::test_nested_transfer_mechanism_composition_parallel[LLVMExec]
psyneulink/library/components/mechanisms/processing/integrator/ddm.py psyneulink/core/llvm/helpers.py psyneulink/core/llvm/codegen.py psyneulink/core/compositions/composition.py
psyneulink/library/components/mechanisms/processing/integrator/ddm.py psyneulink/core/llvm/helpers.py psyneulink/core/llvm/codegen.py psyneulink/core/compositions/composition.py