The question is what are you trying to test here? For numerical objects like integers and floats it is very clear what `==`, `>`, `!=`, etc should do. But for a shape what does if mean? If I ask `shape1 > shape2`, should it do anything? Should it figure out which one has a greater volume? If you don't have a planned use for all of these operators on this class, then I wouldn't include the code. If all you want to do is to check to see if two references both point to the exact same object, then you should use `is`.