Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Running average starts evicting one sample late · case 01
The first full window contains W+1 samples summed but divided by W.
Running average starts evicting one sample late · case 02
The first full window contains W+1 samples summed but divided by W.
Running average starts evicting one sample late · case 03
The first full window contains W+1 samples summed but divided by W.
Running average starts evicting one sample late · case 04
The first full window contains W+1 samples summed but divided by W.
Running average starts evicting one sample late · case 05
The first full window contains W+1 samples summed but divided by W.
Running average divides warm-up sums by the full window · case 01
The first W-1 outputs are biased toward zero.
Running average divides warm-up sums by the full window · case 02
The first W-1 outputs are biased toward zero.
Running average divides warm-up sums by the full window · case 03
The first W-1 outputs are biased toward zero.
Running average divides warm-up sums by the full window · case 04
The first W-1 outputs are biased toward zero.
Running average divides warm-up sums by the full window · case 05
The first W-1 outputs are biased toward zero.
Centered average mirrors with the edge sample repeated · case 01
At the edges the first sample is counted twice, over-weighting endpoints.
Centered average mirrors with the edge sample repeated · case 02
At the edges the first sample is counted twice, over-weighting endpoints.
Centered average mirrors with the edge sample repeated · case 03
At the edges the first sample is counted twice, over-weighting endpoints.
Centered average mirrors with the edge sample repeated · case 04
At the edges the first sample is counted twice, over-weighting endpoints.
Centered average mirrors with the edge sample repeated · case 05
At the edges the first sample is counted twice, over-weighting endpoints.
Centered average drops zero padding from the divisor · case 01
In zero mode the edge outputs equal the shrink-mode averages instead of being pulled toward zero.
Centered average drops zero padding from the divisor · case 02
In zero mode the edge outputs equal the shrink-mode averages instead of being pulled toward zero.
Centered average drops zero padding from the divisor · case 03
In zero mode the edge outputs equal the shrink-mode averages instead of being pulled toward zero.
Centered average drops zero padding from the divisor · case 04
In zero mode the edge outputs equal the shrink-mode averages instead of being pulled toward zero.
Centered average drops zero padding from the divisor · case 05
In zero mode the edge outputs equal the shrink-mode averages instead of being pulled toward zero.
Centered average accepts an even window · case 01
K = 2 silently produces a three-sample window instead of "bad-window".
Centered average accepts an even window · case 02
K = 2 silently produces a three-sample window instead of "bad-window".
Centered average accepts an even window · case 03
K = 2 silently produces a three-sample window instead of "bad-window".
Centered average accepts an even window · case 04
K = 2 silently produces a three-sample window instead of "bad-window".
Centered average accepts an even window · case 05
K = 2 silently produces a three-sample window instead of "bad-window".
CIC keeps the first sample of each block · case 01
The decimator output lags a full block behind and includes a sample from an incomplete block.
CIC keeps the first sample of each block · case 02
The decimator output lags a full block behind and includes a sample from an incomplete block.
CIC keeps the first sample of each block · case 03
The decimator output lags a full block behind and includes a sample from an incomplete block.
CIC keeps the first sample of each block · case 04
The decimator output lags a full block behind and includes a sample from an incomplete block.
CIC keeps the first sample of each block · case 05
The decimator output lags a full block behind and includes a sample from an incomplete block.
CIC integrators all integrate the raw input · case 01
A multi-stage CIC behaves like a single-stage one with a scaled gain.
CIC integrators all integrate the raw input · case 02
A multi-stage CIC behaves like a single-stage one with a scaled gain.
CIC integrators all integrate the raw input · case 03
A multi-stage CIC behaves like a single-stage one with a scaled gain.
CIC integrators all integrate the raw input · case 04
A multi-stage CIC behaves like a single-stage one with a scaled gain.
CIC integrators all integrate the raw input · case 05
A multi-stage CIC behaves like a single-stage one with a scaled gain.
CIC combs ignore the differential delay · case 01
With M = 2 the comb subtracts the previous low-rate sample instead of the one two samples back.
CIC combs ignore the differential delay · case 02
With M = 2 the comb subtracts the previous low-rate sample instead of the one two samples back.
CIC combs ignore the differential delay · case 03
With M = 2 the comb subtracts the previous low-rate sample instead of the one two samples back.
CIC combs ignore the differential delay · case 04
With M = 2 the comb subtracts the previous low-rate sample instead of the one two samples back.
CIC combs ignore the differential delay · case 05
With M = 2 the comb subtracts the previous low-rate sample instead of the one two samples back.
CIC normalizes by R^N only · case 01
With M = 2 the output of a unit step settles at 2^N instead of 1.
CIC normalizes by R^N only · case 02
With M = 2 the output of a unit step settles at 2^N instead of 1.
CIC normalizes by R^N only · case 03
With M = 2 the output of a unit step settles at 2^N instead of 1.
CIC normalizes by R^N only · case 04
With M = 2 the output of a unit step settles at 2^N instead of 1.
CIC normalizes by R^N only · case 05
With M = 2 the output of a unit step settles at 2^N instead of 1.
CIC comb subtracts the new sample from the delayed one · case 01
Outputs have the opposite sign for odd N.
CIC comb subtracts the new sample from the delayed one · case 02
Outputs have the opposite sign for odd N.
CIC comb subtracts the new sample from the delayed one · case 03
Outputs have the opposite sign for odd N.
CIC comb subtracts the new sample from the delayed one · case 04
Outputs have the opposite sign for odd N.
CIC comb subtracts the new sample from the delayed one · case 05
Outputs have the opposite sign for odd N.
Median filter takes the middle sample without sorting · case 01
The output is the centre sample of the window, i.e. no filtering at all.
Median filter takes the middle sample without sorting · case 02
The output is the centre sample of the window, i.e. no filtering at all.
Median filter takes the middle sample without sorting · case 03
The output is the centre sample of the window, i.e. no filtering at all.
Median filter takes the middle sample without sorting · case 04
The output is the centre sample of the window, i.e. no filtering at all.
Median filter takes the middle sample without sorting · case 05
The output is the centre sample of the window, i.e. no filtering at all.
Median filter window stops one sample early · case 01
The window is asymmetric and lags the signal by half a sample.
Median filter window stops one sample early · case 02
The window is asymmetric and lags the signal by half a sample.
Median filter window stops one sample early · case 03
The window is asymmetric and lags the signal by half a sample.
Median filter window stops one sample early · case 04
The window is asymmetric and lags the signal by half a sample.
Median filter window stops one sample early · case 05
The window is asymmetric and lags the signal by half a sample.
Median filter lets the window start wrap to the end · case 01
At the start of the signal the window slice is empty or picks samples from the end.
Median filter lets the window start wrap to the end · case 02
At the start of the signal the window slice is empty or picks samples from the end.
Median filter lets the window start wrap to the end · case 03
At the start of the signal the window slice is empty or picks samples from the end.
Median filter lets the window start wrap to the end · case 04
At the start of the signal the window slice is empty or picks samples from the end.
Median filter lets the window start wrap to the end · case 05
At the start of the signal the window slice is empty or picks samples from the end.
Median filter uses the upper middle for even counts · case 01
Shrunken edge windows report the larger middle value instead of the mean of the two.
Median filter uses the upper middle for even counts · case 02
Shrunken edge windows report the larger middle value instead of the mean of the two.
Median filter uses the upper middle for even counts · case 03
Shrunken edge windows report the larger middle value instead of the mean of the two.
Median filter uses the upper middle for even counts · case 04
Shrunken edge windows report the larger middle value instead of the mean of the two.
Median filter uses the upper middle for even counts · case 05
Shrunken edge windows report the larger middle value instead of the mean of the two.
Median filter accepts even kernels · case 01
K = 4 filters with an asymmetric five-sample window instead of returning "bad-kernel".
Median filter accepts even kernels · case 02
K = 4 filters with an asymmetric five-sample window instead of returning "bad-kernel".
Median filter accepts even kernels · case 03
K = 4 filters with an asymmetric five-sample window instead of returning "bad-kernel".
Median filter accepts even kernels · case 04
K = 4 filters with an asymmetric five-sample window instead of returning "bad-kernel".
Median filter accepts even kernels · case 05
K = 4 filters with an asymmetric five-sample window instead of returning "bad-kernel".
Q15 smoother truncates the product without a rounding offset · case 01
Negative steps settle one LSB short of the input; the filter has a persistent downward bias.
Q15 smoother truncates the product without a rounding offset · case 02
Negative steps settle one LSB short of the input; the filter has a persistent downward bias.
Q15 smoother truncates the product without a rounding offset · case 03
Negative steps settle one LSB short of the input; the filter has a persistent downward bias.
Q15 smoother truncates the product without a rounding offset · case 04
Negative steps settle one LSB short of the input; the filter has a persistent downward bias.
Q15 smoother truncates the product without a rounding offset · case 05
Negative steps settle one LSB short of the input; the filter has a persistent downward bias.
Q15 smoother divides with truncation toward zero · case 01
Negative updates round differently from positive ones, producing an asymmetric limit cycle.
Q15 smoother divides with truncation toward zero · case 02
Negative updates round differently from positive ones, producing an asymmetric limit cycle.
Q15 smoother divides with truncation toward zero · case 03
Negative updates round differently from positive ones, producing an asymmetric limit cycle.
Q15 smoother divides with truncation toward zero · case 04
Negative updates round differently from positive ones, producing an asymmetric limit cycle.
Q15 smoother divides with truncation toward zero · case 05
Negative updates round differently from positive ones, producing an asymmetric limit cycle.
Q15 smoother passes out-of-range inputs through · case 01
An input of 40000 drives the state above 32767.
Q15 smoother passes out-of-range inputs through · case 02
An input of 40000 drives the state above 32767.
Q15 smoother passes out-of-range inputs through · case 03
An input of 40000 drives the state above 32767.
Q15 smoother passes out-of-range inputs through · case 04
An input of 40000 drives the state above 32767.
Q15 smoother passes out-of-range inputs through · case 05
An input of 40000 drives the state above 32767.
Q15 smoother rejects alpha = 1.0 · case 01
alpha = 32768 (pass-through) returns "bad-alpha".
Q15 smoother rejects alpha = 1.0 · case 02
alpha = 32768 (pass-through) returns "bad-alpha".
Q15 smoother rejects alpha = 1.0 · case 03
alpha = 32768 (pass-through) returns "bad-alpha".
Q15 smoother rejects alpha = 1.0 · case 04
alpha = 32768 (pass-through) returns "bad-alpha".
Q15 smoother rejects alpha = 1.0 · case 05
alpha = 32768 (pass-through) returns "bad-alpha".
Windowed sinc centres even-length filters on a sample · case 01
Even-length designs are not symmetric and lose linear phase.
Windowed sinc centres even-length filters on a sample · case 02
Even-length designs are not symmetric and lose linear phase.
Windowed sinc centres even-length filters on a sample · case 03
Even-length designs are not symmetric and lose linear phase.
Windowed sinc centres even-length filters on a sample · case 04
Even-length designs are not symmetric and lose linear phase.
Windowed sinc centres even-length filters on a sample · case 05
Even-length designs are not symmetric and lose linear phase.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗