Package Exports
- @quantlib/ql
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@quantlib/ql) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
quantlib.js

quantitative finance in javascript
- introduction
- get started
- how to use
- release note
- api document
- test suite & example
- license
- credit
- resource
- test report
introduction
quantlib.js aims to be a COMPLETE re-implementation of C++ QuantLib in javascript language, emscripten is NOT used. it can be used in web browser or node.js environment.
get started
open https://quantlib.js.org with morden web browser, like chrome, firefox, etc...
select a
specorexamplefrom menu.specsource will be displayed on left panel,specwill be run with jasmine by your web browser, and test result will be displayed on right panel
usage
load from cdn
- latest version: https://cdn.jsdelivr.net/npm/@quantlib/ql@latest/ql.mjs
- version
x.y.z: https://cdn.jsdelivr.net/npm/@quantlib/ql@x.y.z/ql.mjs
install from npm
npm install @quantlib/qluse in web page
ql.mjs is ESM format, when using in html script tag, make sure to have script type set to "module"
<script type="module">
import {someclass} from 'https://cdn.jsdelivr.net/npm/@quantlib/ql@latest/ql.mjs'
const obj=new someclass();
obj.dosomething();
</script>use in node.js
quantlib.js works in node.js environment. after installing with npm, pass --experimental-modules to node to use ESM javascript file
node --experimental-modules test.mjsin test.mjs
import {someclass} from '@quantlib/ql'
const obj=new someclass();
obj.dosomething();typescript
ql.d.ts is published along with ql.mjs
import {someclass} from '@quantlib/ql'
const obj:someclass = new someclass();
obj.dosomething();release note
- 0.2.5, fix
piecewise zero spreaded term structure,brownian bridge, 4american optionsspecs,FDengine cleanup - 0.2.4 fix
risk statistics, somepiecewise yield curve
docs
- https://quantlib.js.org/docs
- official c++ quantlib doc: https://www.quantlib.org/reference/
test-suite & example
A static report is updated regularly, so you could see the overall test status. C++ example output for reference
source code in ESM javascript:
converted from the c++ quantlib test-suite & Examples
these are the code loaded and executed in https://quantlib.js.org
license
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.credit
- C++ QuantLib project: https://quantlib.org
- C++ QuantLib-noboost: https://github.com/haozhangphd/QuantLib-noBoost
- mathjs: https://mathjs.org
- phosphor: https://github.com/phosphorjs/phosphor
- js.org: https://github.com/js-org/js.org
resource
- Google group: https://groups.google.com/d/forum/quantlibjs/
- Follow us on Twitter: @quantlibjs
- Facebook page: https://www.facebook.com/quantlibjs/
- blog: https://quantlib.js.org/blog/
- notebook: https://observablehq.com/@quantlib
test report
v0.2.5 total: 379, passed: 363, failed: 10, pending: 6
Exchange-rate tests
- Testing direct exchange rates...
- Testing derived exchange rates...
- Testing lookup of direct exchange rates...
- Testing lookup of triangulated exchange rates...
- Testing lookup of derived exchange rates...
Money tests
- Testing money arithmetic without conversions...
- Testing money arithmetic with conversion to base currency...
- Testing money arithmetic with automated conversion...
Business day convention tests
- Testing business day conventions...
Calendar tests
- Testing calendar modification...
- Testing joint calendars...
- Testing US settlement holiday list...
- Testing US government bond market holiday list...
- Testing New York Stock Exchange holiday list...
- Testing TARGET holiday list...
- Testing Frankfurt Stock Exchange holiday list...
- Testing Eurex holiday list...
- Testing Xetra holiday list...
- Testing UK settlement holiday list...
- Testing London Stock Exchange holiday list...
- Testing London Metals Exchange holiday list...
- Testing Milan Stock Exchange holiday list...
- Testing Russia holiday list...
- Testing Brazil holiday list...
- Testing South-Korean settlement holiday list...
- Testing Korea Stock Exchange holiday list...
- Testing China Shanghai Stock Exchange holiday list...
- Testing China Inter Bank working weekends list...
- Testing end-of-month calculation...
- Testing calculation of business days between dates...
- Testing bespoke calendars...
Date tests
- Testing ECB dates...
- Testing IMM dates...
- Testing ASX dates...
- Testing dates...
- Testing ISO dates...
- Testing parsing of dates...
- Testing intraday information of dates...
Day counter tests
- Testing actual/actual day counters...
- Testing actual/actual day counter with schedule...
- Testing simple day counter...
- Testing 1/1 day counter...
- Testing business/252 day counter...
- Testing thirty/360 day counter (Bond Basis)...
- Testing thirty/360 day counter (Eurobond Basis)...
- Testing intraday behavior of day counter ...
Period tests
- Testing period algebra on years/months...
- Testing period algebra on weeks/days...
- Testing period parsing...
Schedule tests
- Testing schedule with daily frequency...
- Testing end date for schedule with end-of-month adjustment...
- Testing that no dates are past the end date with EOM adjustment...
- Testing that next-to-last date same as end date is removed...
- Testing that the last date is not adjusted for EOM when termination date convention is unadjusted...
- Testing that the first date is not duplicated due to EOM convention when going backwards...
- Testing CDS2015 semi-annual rolling convention...
- Testing the constructor taking a vector of dates and possibly additional meta information...
- Testing that a four-weeks tenor works...
Timegrid tests
- Testing TimeGrid constructor with additional steps...
- Testing TimeGrid constructor with only mandatory points...
- Testing TimeGrid construction with n evenly spaced points...
- Testing if the constructor raises an error for empty iterators...
- Testing if the constructor raises an error for negative time values...
- Testing returned index is closest to the requested time...
- Testing returned time matches to the requested index...
- Testing mandatory times are recalled correctly...
time series tests
- Testing time series construction...
- Testing time series interval price...
- Testing time series iterators...
array tests
- Testing array construction...
- Testing array functions...
auto-covariance tests
- Testing convolutions...
- Testing auto-covariances...
- Testing auto-correlations...
Covariance and correlation tests
- Testing matrix rank reduction salvaging algorithms...
- Testing positive semi-definiteness salvaging algorithms...
- Testing covariance and correlation calculations...
Credit risk plus tests
- Testing extended credit risk plus model against reference values...
fast fourier transform tests
- Testing complex direct FFT...
- Testing convolution via inverse FFT...
Integration tests
- Testing segment integration...
- Testing trapezoid integration...
- Testing mid-point trapezoid integration...
- Testing Simpson integration...
- Testing adaptive Gauss-Kronrod integration...
- Testing adaptive Gauss-Lobatto integration...
- Testing non-adaptive Gauss-Kronrod integration...
- Testing two dimensional adaptive Gauss-Lobatto integration...
- Testing Folin's integral formulae...
- Testing discrete integral formulae...
- Testing discrete integrator formulae...
- Testing piecewise integral...
Low-discrepancy sequence tests
- Testing random-seed generator...
- Testing 21200 primitive polynomials modulo two...
- Testing randomized low-discrepancy sequences up to dimension 21200...
- Testing randomized lattice sequences...
- Testing Sobol sequences up to dimension 21200...
- Testing Faure sequences...
- Testing Halton sequences...
- Testing Mersenne-twister discrepancy...
- Testing plain Halton discrepancy...
- Testing random-start Halton discrepancy...
- Testing random-shift Halton discrepancy...
- Testing random-start, random-shift Halton discrepancy...
- Testing Jaeckel-Sobol discrepancy...
- Testing Levitan-Sobol discrepancy...
- Testing Levitan-Lemieux-Sobol discrepancy...
- Testing unit Sobol discrepancy...
- Testing Sobol sequence skipping...
Matrix tests
- Testing eigenvalues and eigenvectors calculation...
- Testing matricial square root...
- Testing Higham matricial square root...
- Testing singular value decomposition...
- Testing QR decomposition...
- Testing QR solve...
- Testing LU inverse calculation...
- Testing LU determinant calculation...
- Testing orthogonal projections...
- Testing Cholesky Decomposition...
- Testing Moore-Penrose inverse...
- Testing iterative solvers...
Mersenne twister tests
- Testing Mersenne twister...
NumericalDifferentiation tests
- Testing numerical differentiation using the central scheme...
- Testing numerical differentiation using the backward scheme...
- Testing numerical differentiation using the Forward scheme...
- Testing numerical differentiation of first order using an irregular scheme...
- Testing numerical differentiation of second order using an irregular scheme...
- Testing numerical differentiation of sin function...
- Testing coefficients from numerical differentiation by comparison with results from Vandermonde matrix inversion...
ode tests
- Testing adaptive Runge Kutta...
- Testing matrix exponential based on ode...
- Testing matrix exponential of a zero matrix based on ode...
Optimizers tests
- Testing optimizers...
- Testing nested optimizations...
- Testing differential evolution...
RNG traits tests
- Testing Gaussian pseudo-random number generation...
- Testing Poisson pseudo-random number generation...
- Testing custom Poisson pseudo-random number generation...
Rounding tests
- Testing closest decimal rounding...
- Testing upward decimal rounding...
- Testing downward decimal rounding...
- Testing floor decimal rounding...
- Testing ceiling decimal rounding...
sampled curve tests
- Testing sampled curve construction...
1-D solver tests
- Testing Brent solver...
- Testing bisection solver...
- Testing false-position solver...
- Testing Newton solver...
- Testing Newton-safe solver...
- Testing Halley solver...
- Testing Halley-safe solver...
- Testing finite-difference Newton-safe solver...
- Testing Ridder solver...
- Testing secant solver...
Factorial tests
- Testing factorial numbers...
- Testing Gamma function...
- Testing Gamma values...
- Testing modified Bessel function of first and second kind...
- Testing weighted modified Bessel functions...
transformed grid
- Testing transformed grid construction...
Distribution tests
- Testing normal distributions...
- Testing bivariate cumulative normal distribution...
- Testing Poisson distribution...
- Testing cumulative Poisson distribution...
- Testing inverse cumulative Poisson distribution...
- Testing bivariate cumulative Student t distribution...
- Testing bivariate cumulative Student t distribution for large N...
- Testing inverse CDF based on stochastic collocation...
linear least squares regression tests
- Testing linear least-squares regression...
- Testing multi-dimensional linear least-squares regression...
- Testing 1D simple linear least-squares regression...
Statistics tests
- Testing statistics...
- Testing sequence statistics...
- Testing convergence statistics...
- Testing incremental statistics...
Risk statistics tests
- Testing risk measures...
TQR eigendecomposition tests
- Testing TQR eigenvalue decomposition...
- Testing TQR zero-off-diagonal eigenvalues...
- Testing TQR eigenvector decomposition...
Gaussian quadratures tests
- Testing Gauss-Jacobi integration...
- Testing Gauss-Laguerre integration...
- Testing Gauss-Hermite integration...
- Testing Gauss hyperbolic integration...
- Testing tabulated Gauss-Laguerre integration...
Gaussian quadratures experimental tests
- Testing Gauss non-central chi-squared integration...
- Testing Gauss non-central chi-squared sum of notes...
Interpolation tests
- Testing spline approximation on Gaussian data sets...
- Testing spline interpolation on a Gaussian data set...
- Testing spline interpolation on RPN15A data set...
- Testing spline interpolation on generic values...
- Testing symmetry of spline interpolation end-conditions ...
- Testing derivative end-conditions for spline interpolation ...
- Testing non-restrictive Hyman filter...
- Testing N-dimensional cubic spline...
- Testing use of interpolations as functors...
- Testing Fritsch-Butland interpolation...
- Testing backward-flat interpolation...
- Testing forward-flat interpolation...
- Testing Sabr interpolation...
- Testing kernel 1D interpolation...
- Testing kernel 2D interpolation...
- Testing bicubic spline derivatives...
- Testing that bicubic splines actually update...
- Testing Richardson extrapolation...
- Testing no-arbitrage Sabr interpolation...
- Testing Sabr calibration single cases...
- Testing Sabr and no-arbitrage Sabr transformation functions...
- Testing Lagrange interpolation...
- Testing Lagrange interpolation at supporting points...
- Testing Lagrange interpolation derivatives...
- Testing Lagrange interpolation on Chebyshev points...
- Testing B-Splines...
- Testing piecewise constant interpolation on a single point...
Cash flows tests
- Testing cash-flow settings...
- Testing dynamic cast of coupon in Black pricer...
- Testing default evaluation date in cashflows methods...
- Testing ibor leg construction with null fixing days...
- Testing irregular first coupon reference dates with end of month enabled...
- Testing irregular last coupon reference dates with end of month enabled...
- Testing leg construction with partial schedule...
Capped and floored coupon tests
- Testing degenerate collared coupon...
- Testing collared coupon against its decomposition...
Interest Rate tests
- Testing interest-rate conversions...
Black formula tests
- Testing Bachelier implied vol...
- Testing Chambers-Nawalkha implied vol approximation...
- Testing Radoicic-Stefanica implied vol approximation...
- Testing Radoicic-Stefanica lower bound...
- Testing implied volatility calculation via adaptive successive over-relaxation...
Instrument tests
- Testing observability of instruments...
- Testing reaction of composite instrument to date changes...
Swap tests
- Testing vanilla-swap calculation of fair fixed rate...
- Testing vanilla-swap calculation of fair floating spread...
- Testing vanilla-swap dependency on fixed rate...
- Testing vanilla-swap dependency on floating spread...
- Testing in-arrears swap calculation...
- Testing vanilla-swap calculation against cached value...
Term structure tests
- Testing term structure against evaluation date change...
- Testing consistency of implied term structure...
- Testing observability of implied term structure...
- Testing consistency of forward-spreaded term structure...
- Testing observability of forward-spreaded term structure...
- Testing consistency of zero-spreaded term structure...
- Testing observability of zero-spreaded term structure...
- Testing that a zero-spreaded curve can be created with a null underlying curve...
- Testing that an underlying curve can be relinked to a null underlying curve...
- Testing composite zero yield structures...
Amortizing Bond tests
- Testing amortizing fixed rate bond...
Bond tests
- Testing consistency of bond price/yield calculation...
- Testing consistency of bond price/ATM rate calculation...
- Testing consistency of bond price/z-spread calculation...
- Testing theoretical bond price/yield calculation...
- Testing bond price/yield calculation against cached values...
- Testing zero-coupon bond prices against cached values...
- Testing fixed-coupon bond prices against cached values...
- Testing floating-rate bond prices against cached values...
- Testing Brazilian public bond prices against Andima cached values...
- Testing ex-coupon UK Gilt price against market values...
- Testing ex-coupon Australian bond price against market values...
- Testing South African R2048 bond price using Schedule constructor with Date vector...
- Testing Thirty/360 bond with settlement on 31st of the month...
Cap and floor tests
- Testing cap/floor vega...
- Testing cap/floor dependency on strike...
- Testing consistency between cap, floor and collar...
- Testing cap/floor parity...
- Testing cap/floor ATM rate...
- Testing implied term volatility for cap and floor...
- Testing Black cap/floor price against cached values...
forward rate agreement
- Testing forward rate agreement construction...
American option tests
- Testing Barone-Adesi and Whaley approximation for American options...
- Testing Bjerksund and Stensland approximation for American options...
- Testing Ju approximation for American options...
- Testing finite-difference engine for American options...
- Testing finite-differences American option greeks...
- Testing finite-differences shout option greeks...
Quote tests
- Testing observability of quotes...
- Testing observability of quote handles...
- Testing derived quotes...
- Testing composite quotes...
- Testing forward-value and implied-standard-deviation quotes...
Brownian bridge tests
- Testing Brownian-bridge variates...
- Testing Brownian-bridge path generation...
Path generation tests
- Testing 1-D path generation against cached values...
- Testing n-D path generation against cached values...
Curve States tests
- Testing constant-maturity-swap-market-model curve state...
Operator tests
- Testing tridiagonal operator...
- Testing differential operators...
- Testing consistency of BSM operators...
Piecewise yield curve tests
- Testing consistency of piecewise-log-cubic discount curve...
- Testing consistency of piecewise-log-linear discount curve...
- Testing consistency of piecewise-linear discount curve...
- Testing consistency of piecewise-log-linear zero-yield curve...
- Testing consistency of piecewise-linear zero-yield curve...
- Testing consistency of piecewise-cubic zero-yield curve...
- Testing consistency of piecewise-linear forward-rate curve...
- Testing consistency of piecewise-flat forward-rate curve...
- Testing consistency of piecewise-cubic forward-rate curve...
- Testing consistency of convex monotone forward-rate curve...
- Testing consistency of local-bootstrap algorithm...
- Testing observability of piecewise yield curve...
- Testing use of today's LIBOR fixings in swap curve...
- Testing bootstrap over JPY LIBOR swaps...
- Testing copying of discount curve...
- Testing copying of forward-rate curve...
- Testing copying of zero-rate curve...
- Testing SwapRateHelper last relevant date...
- Testing bootstrap starting from bad guess...
Interpolated piecewise zero spreaded yield curve tests
- Testing flat interpolation before the first spreaded date...
- Testing flat interpolation after the last spreaded date...
- Testing linear interpolation with more than two spreaded dates...
- Testing linear interpolation between two dates...
- Testing forward flat interpolation between two dates...
- Testing backward flat interpolation between two dates...
- Testing default interpolation between two dates...
- Testing factory constructor with additional parameters...
- Testing term structure max date...
- Testing quote update...
Chooser option tests
- Testing analytic simple chooser option...
- Testing analytic complex chooser option...
Extensible option tests
- Testing analytic engine for holder-extensible option...
- Testing analytic engine for writer-extensible option...
Credit risk plus tests
- Testing extended credit risk plus model against reference values...