I added some test cases.  * remove attributes  * add attributes  * update attributes  * complex (remove, add, update, order changed)    I also modified the test so that the attributes' order can be ignored when compare result.  