I am learning myself out of curiosity and want to become a quant developer. While I was studying constant maturity swap, I found a problem while changing nominal value. The sum of caplet and floorlet price is not equal to swaplet price at a strike rate. The bug is in the calculation of swaplet. It does not account for nominal value while calculating swaplet value. It should be “Real swapletPrice = swaplet.price(vars.termStructure) + nominal * swaplet.accrualPeriod() * strike * discount;” at line 452 of test-suite/cms.cpp file.