Pointer comparators and difference match the C standard.

Fixed two issues with pointer operations.
C11 6.5.6.9: Ptr subtraction have type ptrdiff_t.
C11 6.5.8.6, 6.5.9.3: Ptr comparisons have type int.
There are a few ways to check for signedness. If you know a value is small positive number, say 1, you can subtract 2 and then verify the number is still above 0 (unsigned) or below zero (signed). Or you can use C11 _Generic(). But I feel you are overthinking. These tests look fine.