Issue
At this point YT_MUST_CALL_IN_ORDER*, YT_MUST_CALL_ANY_ORDER* and YT_MUST_NEVER_CALL assume arguments to be integers not floating point. Passing a floating point value to YT_V is converted to an integer and matching is done on the converted value.
Possible solution
Have a union to store either an integer or a long double and expectations will match floating point values for a defined precision. A new YT_VF for passing floating point values.