> It doesn't look like anyone is addressing this failure in the tests.
> Hi Matt
>
> glad you cannot live with error in the test-suite. Me too!
>
> I fixed an existing bug and introduced a new one: use the latest
> release in the meantime please.
> Take it for granted I'll get back to this issue as I'm working on
> related subjects... or I might leave the fix as exercise to you ;-)
>
>
> On Mon, Oct 3, 2011 at 5:45 PM, Luigi Ballabio <
[hidden email]> wrote:
>> On Mon, 2011-10-03 at 09:36 -0600, Matt Fair wrote:
>>> It doesn't look like anyone is addressing this failure in the tests.
>>
>> True. Last week I reported it to the author, but he's busy with his
>> real work at the moment so it will be a few days before the test is
>> fixed. I'm afraid it happens in the best families...
>>
>> Later,
>> Luigi
>>
>>
>>> The test failure was introduced in revision 18001. It alters the way
>>> the price values are computed and therefore doesn't pass the test that
>>> existed. If the test is wrong, then fix it so the tests pass,
>>> otherwise the asset swap code needs to be fixed.
>>> I don't know too much about this code, so I don't know what is right
>>> or wrong, just know when the test that existed started to fail.
>>>
>>> Index: ql/instruments/assetswap.cpp
>>> ===================================================================
>>> --- ql/instruments/assetswap.cpp (revision 18000)
>>> +++ ql/instruments/assetswap.cpp (revision 18001)
>>> @@ -243,12 +243,12 @@
>>> // backpayment on the floating leg
>>> // (accounts for non-par redemption, if any)
>>> Real backPayment = notional;
>>> - shared_ptr<CashFlow> backPaymentCashFlow (new
>>> + shared_ptr<CashFlow> backPaymentCashFlow(new
>>> SimpleCashFlow(backPayment, finalDate));
>>> legs_[1].push_back(backPaymentCashFlow);
>>> } else {
>>> // final notional exchange
>>> - shared_ptr<CashFlow> finalCashFlow (new
>>> + shared_ptr<CashFlow> finalCashFlow(new
>>> SimpleCashFlow(notional, finalDate));
>>> legs_[1].push_back(finalCashFlow);
>>> }
>>> @@ -349,12 +349,12 @@
>>> "fair clean price not available for seasoned deal");
>>> Real notional = bond_->notional(upfrontDate_);
>>> if (parSwap_) {
>>> - fairCleanPrice_ = bondCleanPrice_ -
>>> + fairCleanPrice_ = bondCleanPrice_ - payer_[0] *
>>> NPV_*npvDateDiscount_/startDiscounts_[1]/(notional/100.0);
>>> } else {
>>> Real accruedAmount = bond_->accruedAmount(upfrontDate_);
>>> Real dirtyPrice = bondCleanPrice_ + accruedAmount;
>>> - Real fairDirtyPrice = - legNPV_[0]/legNPV_[1] * dirtyPrice;
>>> + Real fairDirtyPrice = - payer_[0] *
>>> legNPV_[0]/legNPV_[1] * dirtyPrice;
>>> fairCleanPrice_ = fairDirtyPrice - accruedAmount;
>>> }
>>>
>>> @@ -370,7 +370,7 @@
>>> QL_REQUIRE(endDiscounts_[1]!=Null<DiscountFactor>(),
>>> "fair non par repayment not available for expired leg");
>>> Real notional = bond_->notional(upfrontDate_);
>>> - fairNonParRepayment_ = nonParRepayment_ -
>>> + fairNonParRepayment_ = nonParRepayment_ + payer_[0] *
>>> NPV_*npvDateDiscount_/endDiscounts_[1]/(notional/100.0);
>>> return fairNonParRepayment_;
>>> }
>>>
>>>
>>> On Sat, Sep 17, 2011 at 3:49 PM, Matt Fair <
[hidden email]> wrote:
>>> > I noticed this in the tests:
>>> >
>>> > Testing consistency between fair price and fair spread...
>>> > assetswap.cpp(181): fatal error in
>>> > "QuantLib::detail::quantlib_test_case(&AssetSwapTest::testConsistency)":
>>> > par asset swap fair clean price doesn't zero the NPV:
>>> > clean price: 95.0000
>>> > fair clean price: 107.0805
>>> > NPV: 24.1511
>>> > tolerance: 0.0000
>>> >
>>> > This is the only test that fails.
>>> >
>>> > Matt
>>>
>>> ------------------------------------------------------------------------------
>>> All the data continuously generated in your IT infrastructure contains a
>>> definitive record of customers, application performance, security
>>> threats, fraudulent activity and more. Splunk takes this data and makes
>>> sense of it. Business sense. IT sense. Common sense.
>>>
http://p.sf.net/sfu/splunk-d2dcopy1>>> _______________________________________________
>>> QuantLib-dev mailing list
>>>
[hidden email]
>>>
https://lists.sourceforge.net/lists/listinfo/quantlib-dev>>
>> --
>>
>> Present to inform, not to impress; if you inform, you will impress.
>> -- Fred Brooks
>>
>>
>>
>> ------------------------------------------------------------------------------
>> All the data continuously generated in your IT infrastructure contains a
>> definitive record of customers, application performance, security
>> threats, fraudulent activity and more. Splunk takes this data and makes
>> sense of it. Business sense. IT sense. Common sense.
>>
http://p.sf.net/sfu/splunk-d2dcopy1>> _______________________________________________
>> QuantLib-dev mailing list
>>
[hidden email]
>>
https://lists.sourceforge.net/lists/listinfo/quantlib-dev>>
>
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.