Merge sort uses cmp (a, b) < 0 for its first test branch, and insertion
sort cmp (a, b) > 0 ; which means the 0 boundary goes in one case in one
branch, and in the other sort function in the other branch.
We keep the semantics of the insertion sort, it makes it possible to
support compare function that return true/false instead of a distance
between items.
Add a test that was previously failing for merge sort, but working with
insertion sort, although the function is not exposed, it only triggers
at > 43 elements.
The main difference is the test function that sends true/false instead
of a difference between two integers.
Detailed description
Merge sort uses cmp (a, b) < 0 for its first test branch, and insertion sort cmp (a, b) > 0 ; which means the 0 boundary goes in one case in one branch, and in the other sort function in the other branch.
We keep the semantics of the insertion sort, it makes it possible to support compare function that return true/false instead of a distance between items.
Add a test that was previously failing for merge sort, but working with insertion sort, although the function is not exposed, it only triggers at > 43 elements.
The main difference is the test function that sends true/false instead of a difference between two integers.
Test plan
See included test
Closing issues
N/A