Differ icon indicating copy to clipboard operation
Differ copied to clipboard

Add tests for out of bounds error

Open paxos opened this issue 4 years ago • 2 comments

Some patches will cause an out of bounds exception (which would crash if directly applied to any tables). This PR adds two test scenarios that show the behavior.

I am not sure how to fix this, but wanted to share the results of my research.

I also generated a couple of more test cases which will cause the same error:

[0, 7, 3, 7, 4] -> [9, 9, 1, 8, 4, 7, 2, 7, 7, 5] 
[6, 2, 2, 3] -> [10, 4, 8, 3, 6, 2] 
[7, 0, 8, 1, 3, 9, 7] -> [7, 7, 4, 8, 6, 9, 5, 1, 3] 
[7, 0, 0, 2] -> [5, 4, 8, 2, 10, 5, 7, 9, 0, 10] 
[2, 1, 4, 7] -> [10, 7, 4, 3, 2, 0, 5, 1, 5, 8] 
[8, 10, 6, 7, 6, 2] -> [4, 5, 1, 9, 3, 2, 8, 6, 3, 9] 
[10, 1, 5, 8, 3, 7] -> [0, 10, 10, 6, 10, 7, 2, 10, 5, 3] 
[7, 0, 10, 2, 5] -> [9, 9, 7, 9, 5, 0, 10] 
[9, 10, 1, 10] -> [5, 5, 7, 10, 8, 6, 9, 10] 
[10, 2, 4, 10, 6] -> [7, 0, 7, 8, 6, 1, 0, 10, 2] 
[5, 5, 0, 9, 0, 6] -> [1, 4, 10, 1, 2, 6, 0, 3, 0, 9] 
[7, 7, 6, 7, 1] -> [0, 9, 8, 4, 1, 9, 7, 7, 4, 3] 
[1, 2, 10, 7] -> [3, 3, 5, 7, 5, 4, 2, 10, 8] 
[3, 1, 9, 10] -> [5, 0, 2, 10, 0, 1, 9, 9, 0] 
[2, 3, 2, 1, 4] -> [9, 0, 4, 1, 0, 3, 2] 
[7, 1, 6, 6] -> [0, 0, 2, 6, 2, 7, 4, 9, 8, 6] 
[8, 0, 10, 10, 5, 6] -> [3, 8, 1, 8, 4, 6, 10, 2, 5, 4] 
[0, 10, 3, 4, 6] -> [9, 8, 8, 1, 6, 0, 3, 4, 3] 
[6, 1, 4, 3] -> [9, 5, 5, 3, 4, 1, 4] 
[9, 0, 10, 5] -> [1, 2, 7, 5, 6, 5, 10, 6, 9, 10] 
[5, 7, 6, 7, 4] -> [10, 8, 10, 3, 4, 5, 3, 7, 10, 6] 
[4, 5, 1, 0] -> [3, 3, 3, 0, 6, 4, 3, 5, 4] 
[10, 0, 5] -> [7, 7, 5, 10, 7, 0, 6] 
[10, 5, 7, 7] -> [0, 0, 2, 7, 10, 7, 10, 2, 1] 
[9, 2, 1] -> [7, 5, 1, 1, 9, 8, 2] 
[2, 0, 5, 9, 10] -> [4, 4, 10, 9, 4, 0, 7, 5, 3] 
[6, 0, 1] -> [5, 9, 1, 9, 7, 5, 8, 0, 6, 0] 
[3, 9, 8] -> [0, 5, 8, 1, 3, 0, 10, 9] 
[10, 8, 1] -> [5, 0, 1, 6, 4, 10, 9, 8] 
[3, 10, 4, 7] -> [4, 3, 9, 7, 2, 7, 10, 4] 
[2, 10, 6, 4, 0, 8] -> [8, 0, 9, 4, 2, 2, 1, 5, 10] 
[8, 5, 1] -> [7, 9, 1, 2, 2, 8, 5, 8, 0, 7] 
[1, 9, 0] -> [8, 10, 0, 3, 1, 6, 2, 9] 
[2, 4, 0, 5] -> [7, 8, 6, 5, 2, 1, 9, 8, 4, 4] 
[1, 9, 10, 7, 7, 9] -> [6, 8, 0, 7, 9, 9, 10, 2, 0, 7] 
[5, 9, 2] -> [10, 1, 2, 5, 0, 9, 3] 
[0, 9, 5] -> [10, 7, 5, 5, 0, 3, 3, 9] 
[4, 5, 3, 9] -> [0, 4, 0, 9, 7, 5, 4, 3, 8, 7] 
[2, 8, 6, 6] -> [7, 9, 10, 6, 2, 6, 0, 1, 10] 
[7, 4, 7, 6, 1] -> [3, 5, 6, 10, 1, 7, 4, 4, 6] 
[0, 6, 10, 10] -> [8, 7, 7, 10, 5, 0, 3, 10, 4] 
[10, 5, 7] -> [1, 8, 7, 5, 10, 3, 8, 5, 0, 0] 
[0, 7, 1, 8] -> [5, 6, 6, 8, 2, 7, 5, 1] 
[9, 7, 8] -> [1, 6, 8, 6, 2, 9, 9, 7, 5] 
[0, 8, 3] -> [10, 10, 3, 0, 4, 7, 1, 1, 10, 8] 
[0, 3, 2] -> [8, 9, 2, 2, 2, 0, 7, 3, 6] 
[3, 8, 1, 3, 10] -> [6, 4, 2, 4, 10, 7, 3, 3, 3] 
[2, 9, 6, 8, 10] -> [0, 7, 9, 1, 10, 2, 10, 9, 6] 
[6, 2, 9, 0, 10, 2, 8] -> [5, 10, 0, 5, 0, 7, 8, 10, 2, 0] 
[4, 7, 7] -> [5, 3, 7, 6, 4, 7, 1, 6, 8] 
[2, 10, 2, 9] -> [6, 0, 7, 9, 4, 5, 1, 9, 2, 2] 
[3, 8, 8, 7] -> [2, 2, 9, 7, 10, 8, 1, 10, 8, 9] 
[3, 2, 3, 8, 2, 1] -> [0, 9, 4, 3, 5, 1, 3, 3, 2, 5] 
[2, 0, 5] -> [3, 3, 5, 3, 4, 5, 2, 0, 1] 
[2, 3, 6] -> [5, 0, 6, 1, 6, 0, 6, 0, 2, 3] 

paxos avatar Feb 06 '22 23:02 paxos

Pushed an update. Also, many thanks for your work maintaining this library!

paxos avatar Feb 06 '22 23:02 paxos

I start to think this might be caused by duplicates in the target 🤔

paxos avatar Mar 25 '22 04:03 paxos