Exploring cursoring constraints with multiple field ordering. While Ruby's Array#<=> operator does this internally, this was about seeing the internal constraints to port them to various database systems.
Makes all combinations of a=1..3 b=1..3 c=1..3 in a pre-sorted order. Array slicing operations are then used to validate the instance methods results against this ground truth.
Iterating through the array of all Things, we test before?, after?, and the inclusive variations and print a nice table.