A readings DataFrame has sensor_id, reading_ts, and value (with gaps). Carry the last known value forward within each sensor, ordered by time — without leaking values across sensor boundaries. A leading gap (no prior value) stays missing.
Return the resulting value column (sorted by sensor_id, then reading_ts) as a list, with None for any value that's still missing.
What the tests check
2 on Run · 3 on Submit01ffill within sensor, no cross-sensor leak, leading gap stays missing
02rows arrive out of time order and interleaved across sensors
Submit runs these and one more check you don’t see, so code written for the visible tests alone can still miss.