# Description of problem

brian2.test() reports:

TypeError: logical_and() takes from 2 to 3 positional arguments but 1 were given

```
FAILED ../../../../../../opt/anaconda/envs/TheBrianBlank/lib/python3.9/site-packages/brian2/tests/test_units.py::test_numpy_functions_logical
```

# Minimal code to reproduce problem

import brian2

brian2.test()

# What you have aready tried

I first got the error in a pip managed environment (no anaconda).

I installed anaconda and set up a new environment. I followed the installation guide

conda config --add channels conda-forge

conda install matplotlib pytest ipython notebook brian2 sphinx doctest

But i still get the same error

# Expected output

OK

# Actual output

False

# Full traceback of error

Running tests in /opt/anaconda/envs/TheBrianBlank/lib/python3.9/site-packages/brian2 for targets numpy, cython (excluding long tests)

Running Brian version 2.4.2 from ‘/opt/anaconda/envs/TheBrianBlank/lib/python3.9/site-packages/brian2’

Testing codegen-independent code

Resetting to default preferences

Running doctests

… [100%]

=============================== warnings summary ===============================

core/operations.py::brian2.core.operations.network_operation

/opt/anaconda/envs/TheBrianBlank/lib/python3.9/site-packages/brian2/core/clocks.py:95: DeprecationWarning: `np.float`

is a deprecated alias for the builtin `float`

. To silence this warning, use `float`

by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64`

here.

Deprecated in NumPy 1.20; for more details and guidance: (link removed)

dtype=np.float, read_only=True, constant=True,

monitors/spikemonitor.py::brian2.monitors.spikemonitor.EventMonitor.all_values

monitors/spikemonitor.py::brian2.monitors.spikemonitor.EventMonitor.values

monitors/spikemonitor.py::brian2.monitors.spikemonitor.SpikeMonitor

monitors/spikemonitor.py::brian2.monitors.spikemonitor.SpikeMonitor.all_values

monitors/spikemonitor.py::brian2.monitors.spikemonitor.SpikeMonitor.values

/opt/anaconda/envs/TheBrianBlank/lib/python3.9/site-packages/brian2/groups/neurongroup.py:313: DeprecationWarning: `np.bool`

is a deprecated alias for the builtin `bool`

. To silence this warning, use `bool`

by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_`

here.

Deprecated in NumPy 1.20; for more details and guidance: (link removed)

self.variables.add_auxiliary_variable(‘_cond’, dtype=np.bool)

monitors/spikemonitor.py::brian2.monitors.spikemonitor.EventMonitor.all_values

monitors/spikemonitor.py::brian2.monitors.spikemonitor.EventMonitor.all_values

monitors/spikemonitor.py::brian2.monitors.spikemonitor.EventMonitor.values

monitors/spikemonitor.py::brian2.monitors.spikemonitor.SpikeMonitor.all_values

monitors/spikemonitor.py::brian2.monitors.spikemonitor.SpikeMonitor.all_values

monitors/spikemonitor.py::brian2.monitors.spikemonitor.SpikeMonitor.spike_trains

monitors/spikemonitor.py::brian2.monitors.spikemonitor.SpikeMonitor.values

/opt/anaconda/envs/TheBrianBlank/lib/python3.9/site-packages/brian2/groups/group.py:257: DeprecationWarning: `np.bool`

is a deprecated alias for the builtin `bool`

. To silence this warning, use `bool`

by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_`

here.

Deprecated in NumPy 1.20; for more details and guidance: (link removed)

if index_array.dtype == np.bool:

– Docs: (link removed)

41 passed, 13 warnings in 7.26s

Running tests that do not use code generation

…

WARNING The expression “i1 / 1” divides two integer values. In previous versions of Brian, this would have used either an integer (“flooring”) or a floating point division, depending on the Python version and the code generation target. In the current version, it always uses a floating point division. Explicitly ask for an integer division (“//”), or turn one of the operands into a floating point value (e.g. replace “1/2” by “1.0/2”) to no longer receive this warning. [brian2.parsing.bast.floating_point_division]

… [ 19%]

… [ 39%]

…

WARNING The expression “(i + 1) / N” divides two integer values. In previous versions of Brian, this would have used either an integer (“flooring”) or a floating point division, depending on the Python version and the code generation target. In the current version, it always uses a floating point division. Explicitly ask for an integer division (“//”), or turn one of the operands into a floating point value (e.g. replace “1/2” by “1.0/2”) to no longer receive this warning. [brian2.parsing.bast.floating_point_division]

…ss… [ 59%]

…

WARNING The ‘independent’ state updater is deprecated and might be removed in future versions of Brian. [brian2.stateupdaters.exact.deprecated_independent]

… [ 79%]

…F… [ 99%]

… [100%]

=================================== FAILURES ===================================

_________________________ test_numpy_functions_logical _________________________

```
@pytest.mark.codegen_independent
def test_numpy_functions_logical():
'''
Assure that logical numpy functions work on all quantities and return
unitless boolean arrays.
'''
unit_values1 = [3 * mV, np.array([1, 2]) * mV, np.ones((3, 3)) * mV]
unit_values2 = [3 * second, np.array([1, 2]) * second,
np.ones((3, 3)) * second]
for ufunc in UFUNCS_LOGICAL:
for value1, value2 in zip(unit_values1, unit_values2):
try:
# one argument
```

`result_units = eval('np.%s(value1)' % ufunc)`

/opt/anaconda/envs/TheBrianBlank/lib/python3.9/site-packages/brian2/tests/test_units.py:976:

???

E TypeError: logical_and() takes from 2 to 3 positional arguments but 1 were given

:1: TypeError

… Output continues but the rest is Ok. (I had to remove the links in the output since i am a new user)