calc_adc_params can produce off-by-one problems, crashing wrsamp
@Ivorforce y travaille déjà.
Depuis le 24/7/2025.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
Piste de recherche
Commencez par calc_adc_params tel qu’il est appelé par wfdb.wrsamp, en utilisant le fichier data.float32 joint et l’extrait de reproduction pour déclencher l’échec. Examinez comment chmin et chmax sont dérivés pour fmt 32 et comparez-les à la plage autorisée. C’est terminé lorsque la reproduction s’exécute jusqu’au bout sans IndexError, tandis que les valeurs restent dans les limites du format.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I have some data that crashes wrsamp because calc_adc_params produces values that don't fit the data (off by one):
chmin = -2147483648
chmax = 2147483648
IndexError: Channel 0 contain values outside allowed range [-2147483648, 2147483647] for fmt 32
As you can see, chmax is just above the dmax of 2147483647 for 32.
This is some data for reproduction:
data.float32.zip
You can try it with:
data = np.reshape(np.fromfile("data.float32", dtype=np.float32), [-1, 12])
wfdb.wrsamp(
record_name="test",
sig_name=[f"d{x}" for x in range(12)],
units=["mv"] * 12,
fs=500,
# fmt=["16"] * 12,
p_signal=data
)
Note how passing fmt=16 fixes the problem in this particular case, probably by chance because it happens to not trigger the bug.
- Langage dominant
- Jupyter Notebook
- Étoiles
- 853
- Forks
- 323
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de MIT-LCP/wfdb-python
-
`find_local_peaks` ignores the sample at `i + radius`, so points on a rising slope are returned as peaksPeut-être pris @rmz-oz l’a pris il y a 8 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
MIT-LCP/wfdb-python#572 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
MIT-LCP/wfdb-python#568 ·
-
Add validation of segments when writing a `MultiRecord`Peut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
MIT-LCP/wfdb-python#557 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 58/100
MIT-LCP/wfdb-python#554 ·
-
WFDB path ignoredOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
MIT-LCP/wfdb-python#545 ·
Toutes les issues de MIT-LCP/wfdb-python
Issues similaires
-
[BUG] flatten_keys(inplace=True) deletes the leaves at the root of the tensordictPeut-être pris @peterdsharpe l’a pris aujourd’hui. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
pytorch/tensordict#2300 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
PolicyEngine/policyengine-uk#2296 ·
Les mainteneurs répondent en général sous 1 jour
-
new contributor
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
OpenMS/OpenMS#10512 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
huggingface/huggingface_hub#5137 ·
Les mainteneurs répondent en général sous 1 jour
-
Component: R
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour