wrote test identifying bug

Calling self_and_descendants causes the object to be modified which is outside expectations.