equals tested on transitivity, consistency and null