why? I see two independent properties. (but I admit I might be missing something)
 
btw: I think the current logic fails to test the point no. 1 anyway: if someone adds an extra field to eg. c.h.n.s.Data, but forgets to update the getHeapCost() then the test would still pass despite returning a wrong cost.