see https://regebro.wordpress.com/2010/12/13/python-implementing-rich-comparison-the-correct-way/

def _compare(self, other, method):
        """see https://regebro.wordpress.com/2010/12/13/python-implementing-rich-comparison-the-correct-way/"""
        # This needs to be updated to take uncertainty into account:
        if isinstance(other, abc_mapping_primitives.Coordinate):
            if self.get_dimensions() != other.get_dimensions():
                return False
            other_values = other.get_values()
            for index in range(self._dimensions):
                if not method(self._values[index], other_values[index]):
                    return False
            return True
        return NotImplemented