get_pit_histogram(): unsorted breaks produce negative densities; num_bins = 1 returns an empty table

Aperta Adatta ai principianti
#1,219 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@nikosbosse ci sta già lavorando.

Dal 8/11/2026.

  • #1244 di @nikosbosse — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
r

Direzione di ricerca

Inizia da get_pit_histogram.forecast_quantile() e riproduci l'esempio con breaks non ordinati e il caso num_bins = 1 dell'issue. Traccia come breaks e present_quantiles determinano le densità e le righe; il lavoro è completato quando i breaks non ordinati non producono più bin negativi o senza senso e num_bins = 1 restituisce una tabella non vuota.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

Two pre-existing problems in get_pit_histogram.forecast_quantile() surfaced during review of #1216 (they exist on main and are unrelated to that PR's changes):

  1. Unsorted breaks produce negative densities and nonsense bins. E.g. get_pit_histogram(fq, breaks = c(0.5, 0.25)) yields a bin [0.5, 0.25) with negative density. The internal present_quantiles is sorted, but the user-supplied quantiles/breaks vector is not — sorting it (or asserting sortedness) would fix this cheaply.

  2. num_bins = 1 silently returns a 0-row table. Quantile levels 0 and 1 are always injected into present_quantiles and therefore considered 'present', so the missing-quantiles fallback never triggers on that path.

Found during the automated review pass over the #1189 bug-audit PRs (directed by @nikosbosse).

Lingua principale
R
Stelle
65
Fork
24
Merge medio
1h 24m
PR unite (30g)
2

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di epiforecasts/scoringutils

Tutte le issue di epiforecasts/scoringutils

Issue simili

Altre issue su R

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.