Task.read does not return short reads for multi-channel power
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia eseguendo il caso che fallisce in tests/component/test_task_read_ai.py e segui la chiamata pwr_multi_channel_task.read(samples_to_read) attraverso Task.read. La correzione è completa quando la lettura di potenza finita multicanale restituisce cinque campioni per canale quando ne vengono richiesti dieci e le asserzioni di tensione e corrente passano.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- Python
- Stelle
- 590
- Fork
- 199
- Merge medio
- 1g 20h
- PR unite (30g)
- 10
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ni/nidaqmx-python
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
ni/nidaqmx-python#1030 ·
I maintainer di solito rispondono entro 2 giorni
-
tech debt
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
ni/nidaqmx-python#945 ·
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
ni/nidaqmx-python#941 ·
I maintainer di solito rispondono entro 2 giorni
-
Potential typos in the APIForse già presa @KostaIlic2 l’ha presa 210 giorni fa. Apertabug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 42/100
ni/nidaqmx-python#939 ·
I maintainer di solito rispondono entro 2 giorni
-
Add gRPC examplesApertaenhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
ni/nidaqmx-python#917 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di ni/nidaqmx-python
Issue simili
-
customer-reported question
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Azure/azure-sdk-for-python#49548 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
btclib-org/btclib-wallet#409 ·
I maintainer di solito rispondono entro 1 giorno
-
Phase 2 PSA Capability & Career Profile
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
bcgov/digital-journeys#2310 ·
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
fastmachinelearning/hls4ml#1582 ·
I maintainer di solito rispondono entro 3 giorni
-
Sort modelsApertaenhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno