Fatal error in test suite "QuantLib test suite" in QuantLib 0.9.6

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Fatal error in test suite "QuantLib test suite" in QuantLib 0.9.6

Georgy Jikia
I did not see this error being posted yet:
 
./optionletstripper.cpp(361): fatal error in "QuantLib::detail::quantlib_test_case(&OptionletStripperTest::testTermVolatilityStripping1)":
option tenor:       20Y
strike:             4.000000 %
stripped vol price: 8.178939 %
constant vol price: 8.180508 %
error:              0.001569 %
tolerance:          0.001500 %
 
I think the error was not present in QuantLib 0.9.5.
 
Regards,
Georgy

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Fatal error in test suite "QuantLib test suite" in QuantLib 0.9.6

Dirk Eddelbuettel

On 24 August 2008 at 10:14, Georgy Jikia wrote:
| I did not see this error being posted yet:
|
| ./optionletstripper.cpp(361): fatal error in
| "QuantLib::detail::quantlib_test_case(&OptionletStripperTest::testTermVolatilityStripping1)":
|
| option tenor:       20Y
| strike:             4.000000 %
| stripped vol price: 8.178939 %
| constant vol price: 8.180508 %
| error:              0.001569 %
| tolerance:          0.001500 %
|
| I think the error was not present in QuantLib 0.9.5.

What platform / compiler / settings / ... ?  

For the Debian builds (which I do on x86 using gcc/g++, currently at upstream
version 4.3.1), the standard 0.9.6 release also showed this (and similar "is
past max curve time" messages in more places) :

[...]
Testing nested optimizations...
Testing forward/forward vol stripping from flat term vol surface using optionletstripper1...
Testing forward/forward vol stripping from non-flat term vol surface using optionletstripper1...
Testing forward/forward vol stripping from flat term vol surface using optionletstripper2...
unknown location(0): fatal error in "OptionletStripperTest::testFlatTermVolatilityStripping2": std::exception: time (10.0055) is past max curve time (10.0055)
nthtodefault.cpp(296): last checkpoint
Testing forward/forward vol stripping from non-flat term vol surface using optionletstripper2...
unknown location(0): fatal error in "OptionletStripperTest::testTermVolatilityStripping2": std::exception: time (30.0192) is past max curve time (30.0192)
nthtodefault.cpp(296): last checkpoint
[...]

whereas after applying a patch (see below) from Luigi

[...]
Testing nested optimizations...
Testing forward/forward vol stripping from flat term vol surface using optionletstripper1...
Testing forward/forward vol stripping from non-flat term vol surface using optionletstripper1...
Testing forward/forward vol stripping from flat term vol surface using optionletstripper2...
Testing forward/forward vol stripping from non-flat term vol surface using optionletstripper2...
Testing 1-D path generation against cached values...
[...]

things are more peachy.  The simple patch is below, see if that helps. Thanks
as always to Luigi for a quick response when I reported that earlier in an
off-list email, and thanks to you for reporting this too -- looks like it may
be a more generally relevant issue.

Cheers, Dirk


--- quantlib-0.9.6.orig/ql/termstructure.cpp
+++ quantlib-0.9.6/ql/termstructure.cpp
@@ -18,6 +18,7 @@
 */
 
 #include <ql/termstructure.hpp>
+#include <ql/math/comparison.hpp>
 
 namespace QuantLib {
 
@@ -77,7 +78,7 @@
                                    bool extrapolate) const {
         QL_REQUIRE(t >= 0.0,
                    "negative time (" << t << ") given");
-        QL_REQUIRE(extrapolate || allowsExtrapolation() || t <= maxTime(),
+        QL_REQUIRE(extrapolate || allowsExtrapolation() || t <= maxTime() || close_enough(t, maxTime()),
                    "time (" << t << ") is past max curve time ("
                             << maxTime() << ")");
     }



--
Three out of two people have difficulties with fractions.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Fatal error in test suite "QuantLib test suite" in QuantLib 0.9.6

Luigi Ballabio
On Sun, 2008-08-24 at 12:54 -0500, Dirk Eddelbuettel wrote:

> On 24 August 2008 at 10:14, Georgy Jikia wrote:
> | I did not see this error being posted yet:
> |
> | ./optionletstripper.cpp(361): fatal error in
> | "QuantLib::detail::quantlib_test_case(&OptionletStripperTest::testTermVolatilityStripping1)":
> |
> | option tenor:       20Y
> | strike:             4.000000 %
> | stripped vol price: 8.178939 %
> | constant vol price: 8.180508 %
> | error:              0.001569 %
> | tolerance:          0.001500 %
> |
> | I think the error was not present in QuantLib 0.9.5.
>
> What platform / compiler / settings / ... ?  
>
> For the Debian builds (which I do on x86 using gcc/g++, currently at upstream
> version 4.3.1), the standard 0.9.6 release also showed this (and similar "is
> past max curve time" messages in more places) :

No, the "is past max curve time" messages are not related---they were
some kind of compiler issue with Debian unstable which I haven't seen on
other compilers.  On the other hand, I did see the error reported by
Georgy---on some dates (the test passed in the past weeks and started
failing recently) the stripping error goes slightly above the tolerance
set in the test.  We'll have to see how the input accuracy is used and
whether the tolerance is too small.

Luigi



--

Poets have been mysteriously silent on the subject of cheese.
-- Gilbert K. Chesterton



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev