Derivatives are not w.r.t. basispoints, but w.r.t. the usual unit
BPS is the value of one unit (not one basispoint actually), it has to be divided by 10000.0 to get QL's BPS
Deltas and gammas are produced only for fixed and Ibor coupons without caps or floors, for Ibor coupons they are ignoring convexity adjustments (like in arrears adjustments). It is possible to have different Ibor coupons (with different forward curves) on a leg, but the computed deltas would be aggregated over all underlying curves then.
moving_
member variable of TermStructure had an inspector method, then we could enforce that all underlying curves here are either floating or fixed reference date curves. the given atm vol structure should be strike independent, this is not checked
the given cube must provide smile sections that provide an ATM level
SwaptionVolatilityStructure
object has a fixed reference date equal to asof
and fixed market data regardless of the type of reference date and market data of the original SwaptionVolatilityStructure
that is passed in