Skip to content

Add tests for out of bounds error#84

Open
paxos wants to merge 3 commits into
tonyarnold:mainfrom
paxos:add-out-of-bounds-test
Open

Add tests for out of bounds error#84
paxos wants to merge 3 commits into
tonyarnold:mainfrom
paxos:add-out-of-bounds-test

Conversation

@paxos

@paxos paxos commented Feb 6, 2022

Copy link
Copy Markdown

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] 

@tonyarnold tonyarnold left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests that show the problem are my favourite! Thank you for doing this.

It would be good if you could revert the changes to the Xcode project definition before I merge this in.

Comment thread Differ.xcodeproj/project.pbxproj Outdated
@paxos

paxos commented Feb 6, 2022

Copy link
Copy Markdown
Author

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

@paxos

paxos commented Mar 25, 2022

Copy link
Copy Markdown
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants