Task.read does not return short reads for multi-channel power
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza ejecutando el caso fallido en tests/component/test_task_read_ai.py y sigue la llamada pwr_multi_channel_task.read(samples_to_read) a través de Task.read. La corrección estará completa cuando la lectura de potencia finita multicanal devuelva cinco muestras por canal al solicitar diez, y las aserciones de tensión y corriente sean correctas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Task.read doesn't slice the array for multi-channel power reads.
Test case (from tests/component/test_task_read_ai.py, under development):
def test___power_multi_channel_finite___read_too_many_sample___returns_valid_2d_channels_samples_truncated(
pwr_multi_channel_task: nidaqmx.Task,
) -> None:
samples_to_acquire = 5
pwr_multi_channel_task.timing.cfg_samp_clk_timing(rate=1000.0, sample_mode=AcquisitionType.FINITE, samps_per_chan=samples_to_acquire)
num_channels = pwr_multi_channel_task.number_of_channels
samples_to_read = 10
data = pwr_multi_channel_task.read(samples_to_read)
_assert_equal_2d(
[[e.voltage for e in d] for d in data],
[
[_get_voltage_setpoint_for_chan(chan_index) for _ in range(samples_to_acquire)]
for chan_index in range(num_channels)
],
abs=POWER_EPSILON,
)
_assert_equal_2d(
[[e.current for e in d] for d in data],
[
[_get_current_setpoint_for_chan(chan_index) for _ in range(samples_to_acquire)]
for chan_index in range(num_channels)
],
abs=POWER_EPSILON,
)
Result:
_ test___power_multi_channel_finite___read_too_many_sample___returns_valid_2d_channels_samples_truncated[library_init_kwargs] _
pwr_multi_channel_task = Task(name=_unnamedTask<F>)
def test___power_multi_channel_finite___read_too_many_sample___returns_valid_2d_channels_samples_truncated(
pwr_multi_channel_task: nidaqmx.Task,
) -> None:
samples_to_acquire = 5
pwr_multi_channel_task.timing.cfg_samp_clk_timing(rate=1000.0, sample_mode=AcquisitionType.FINITE, samps_per_chan=samples_to_acquire)
num_channels = pwr_multi_channel_task.number_of_channels
samples_to_read = 10
data = pwr_multi_channel_task.read(samples_to_read)
> _assert_equal_2d(
[[e.voltage for e in d] for d in data],
[
[_get_voltage_setpoint_for_chan(chan_index) for _ in range(samples_to_acquire)]
for chan_index in range(num_channels)
],
abs=POWER_EPSILON,
)
tests\component\test_task_read_ai.py:317:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
data = [[1.0, 1.0, 1.0, 1.0, 1.0, 2.0, ...], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...]]
expected = [[1.0, 1.0, 1.0, 1.0, 1.0], [2.0, 2.0, 2.0, 2.0, 2.0]], abs = 0.001
def _assert_equal_2d(data: List[List[float]], expected: List[List[float]], abs: float) -> None:
# pytest.approx() does not support nested data structures.
assert len(data) == len(expected)
for i in range(len(data)):
> assert data[i] == pytest.approx(expected[i], abs=abs)
E assert [1.0, 1.0, 1....1.0, 2.0, ...] == approx([1.0 ±....0 ± 1.0e-03])
E
E Impossible to compare lists with different sizes.
E Lengths: 5 and 10
tests\component\test_task_read_ai.py:152: AssertionError
- Lenguaje dominante
- Python
- Estrellas
- 590
- Forks
- 199
- Merge medio
- 1 d 20 h
- PR fusionados (30 d)
- 10
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ni/nidaqmx-python
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ni/nidaqmx-python#1030 ·
Los mantenedores suelen responder en 2 días
-
tech debt
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
ni/nidaqmx-python#945 ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
ni/nidaqmx-python#941 ·
Los mantenedores suelen responder en 2 días
-
Potential typos in the APIPosiblemente ocupada @KostaIlic2 la tomó hace 211 días. Abiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
ni/nidaqmx-python#939 ·
Los mantenedores suelen responder en 2 días
-
Add gRPC examplesAbiertoenhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
ni/nidaqmx-python#917 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 2 días
Todos los issues de ni/nidaqmx-python
Issues similares
-
documentation good first issue
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
sujithputta02/Esapay#13 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Flaky: credential-proxy admission metric test asserts a wall-clock bound it does not establishAbiertoneeds-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
gke-labs/kube-agents#3277 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
jbacalso24/mimry#291 ·
Los mantenedores suelen responder en 1 día
-
good first issue
Dificultad 2/5 Menos de una hora Aptitud para principiantes 82/100
eli-alvarado/us-watchlist-alerts#14 ·
Los mantenedores suelen responder en 1 día