implemented tests that expose both bad __eq__ and lack of __ne__
added __ne__ where there's an __eq__