Correct changes to the implementations of differentiate() and simpelify() breaks tests if the order of arguements are changed.
>>> isequal(:(a+b) , :(b+a))
false
The test should use a less strict comparison function for expressions than isequal, so that it wil be easier to write tests and easier to modify the code without having to modify tests. It is very easy to make mistakes when updating tests to new behaviour.