add assert{HasFields,HasDeclaredFields} and some tests