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 reimplementation of C++
QuantLib in javascript
language, emscripten is NOT used. it can be used in web browser or node.js environment.
get started
Old home page and
get started
section moved to https://quantlib.js.org/testsuite/
We build a notebook
app for easy use of quantlib.js
, it's hosted on Github pages, after loading, it works offline.
https://quantlib.js.org/notebook/
usage
load from CDN
 latest version: https://cdn.jsdelivr.net/npm/@quantlib/ql@latest/ql.mjs or https://unpkg.com/@quantlib/ql@latest/ql.mjs
 version
x.y.z
: https://cdn.jsdelivr.net/npm/@quantlib/ql@x.y.z/ql.mjs or https://unpkg.com/@quantlib/ql@x.y.z/ql.mjs
install from npm
npm i @quantlib/ql
use 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 { Actual360, AnalyticEuropeanEngine, BlackConstantVol, BlackScholesProcess, DateExt, EuropeanExercise, EuropeanOption, FlatForward, Handle, Option, PlainVanillaPayoff, Settings, SimpleQuote, TARGET } from 'https://cdn.jsdelivr.net/npm/@quantlib/ql@latest/ql.mjs';
const today = DateExt.UTC('7,March,2014');
Settings.evaluationDate.set(today);
const payoff = new PlainVanillaPayoff(Option.Type.Call, 100.0);
const exercise = new EuropeanExercise(DateExt.UTC('7,June,2014'));
const option = new EuropeanOption(payoff, exercise);
const u = new SimpleQuote(100.0);
const r = new SimpleQuote(0.01);
const s = new SimpleQuote(0.2);
const riskFreeCurve = new FlatForward().ffInit3(0, new TARGET(), new Handle(r), new Actual360());
const volatility = new BlackConstantVol().bcvInit4(0, new TARGET(), new Handle(s), new Actual360());
const process = new BlackScholesProcess(new Handle(u), new Handle(riskFreeCurve), new Handle(volatility));
const engine = new AnalyticEuropeanEngine().init1(process);
option.setPricingEngine(engine);
const npv = option.NPV();
console.log(`NPV = ${npv}`); // 4.155543462156206
</script>
UMD
format javascript
ql.js
is published as of 0.3.6
You may also use javascript dynamic import
<script>
import('https://cdn.jsdelivr.net/npm/@quantlib/ql@latest/ql.mjs').then(module=>{
window.ql = module;
test();
});
function test() {
const today = ql.DateExt.UTC('7,March,2014');
ql.Settings.evaluationDate.set(today);
const payoff = new ql.PlainVanillaPayoff(ql.Option.Type.Call, 100.0);
const exercise = new ql.EuropeanExercise(ql.DateExt.UTC('7,June,2014'));
const option = new ql.EuropeanOption(payoff, exercise);
const u = new ql.SimpleQuote(100.0);
const r = new ql.SimpleQuote(0.01);
const s = new ql.SimpleQuote(0.2);
const riskFreeCurve = new ql.FlatForward().ffInit3(0, new ql.TARGET(), new ql.Handle(r), new ql.Actual360());
const volatility = new ql.BlackConstantVol().bcvInit4(0, new ql.TARGET(), new ql.Handle(s), new ql.Actual360());
const process = new ql.BlackScholesProcess(new ql.Handle(u), new ql.Handle(riskFreeCurve), new ql.Handle(volatility));
const engine = new ql.AnalyticEuropeanEngine().init1(process);
option.setPricingEngine(engine);
const npv = option.NPV();
console.log(`NPV = ${npv}`); // 4.155543462156206
}
</script>
use in node.js
quantlib.js
works in node.js
environment. after installing with npm
, pass experimentalmodules
to node
to use ESM javascript file
node experimentalmodules test.mjs
in test.mjs
import { Actual360, AnalyticEuropeanEngine, BlackConstantVol, BlackScholesProcess, DateExt, EuropeanExercise, EuropeanOption, FlatForward, Handle, Option, PlainVanillaPayoff, Settings, SimpleQuote, TARGET } from '@quantlib/ql';
const today = DateExt.UTC('7,March,2014');
Settings.evaluationDate.set(today);
const payoff = new PlainVanillaPayoff(Option.Type.Call, 100.0);
const exercise = new EuropeanExercise(DateExt.UTC('7,June,2014'));
const option = new EuropeanOption(payoff, exercise);
const u = new SimpleQuote(100.0);
const r = new SimpleQuote(0.01);
const s = new SimpleQuote(0.2);
const riskFreeCurve = new FlatForward().ffInit3(0, new TARGET(), new Handle(r), new Actual360());
const volatility = new BlackConstantVol().bcvInit4(0, new TARGET(), new Handle(s), new Actual360());
const process = new BlackScholesProcess(new Handle(u), new Handle(riskFreeCurve), new Handle(volatility));
const engine = new AnalyticEuropeanEngine().init1(process);
option.setPricingEngine(engine);
const npv = option.NPV();
console.log(`NPV = ${npv}`); // 4.155543462156206
typescript
ql.d.ts
is published along with ql.mjs
write code in typescript, then compile with tsc
or run with tsnode
in test.ts
import {Actual360, AnalyticEuropeanEngine, BlackConstantVol, BlackScholesProcess, BlackVolTermStructure, DateExt, EuropeanExercise, EuropeanOption, Exercise, FlatForward, GeneralizedBlackScholesProcess, Handle, Option, PlainVanillaPayoff, PricingEngine, Quote, Real, Settings, SimpleQuote, StrikedTypePayoff, TARGET, YieldTermStructure} from '@quantlib/ql';
const today: Date = DateExt.UTC('7,March,2014');
Settings.evaluationDate.set(today);
const payoff: StrikedTypePayoff =
new PlainVanillaPayoff(Option.Type.Call, 100.0);
const exercise: Exercise = new EuropeanExercise(DateExt.UTC('7,June,2014'));
const option: EuropeanOption = new EuropeanOption(payoff, exercise);
const u: Quote = new SimpleQuote(100.0);
const r: Quote = new SimpleQuote(0.01);
const s: Quote = new SimpleQuote(0.2);
const riskFreeCurve: YieldTermStructure =
new FlatForward().ffInit3(0, new TARGET(), new Handle(r), new Actual360());
const volatility: BlackVolTermStructure = new BlackConstantVol().bcvInit4(
0, new TARGET(), new Handle(s), new Actual360());
const process: GeneralizedBlackScholesProcess = new BlackScholesProcess(
new Handle(u), new Handle(riskFreeCurve), new Handle(volatility));
const engine: PricingEngine = new AnalyticEuropeanEngine().init1(process);
option.setPricingEngine(engine);
const npv: Real = option.NPV();
console.log(`NPV = ${npv}`); // 4.155543462156206
release note
version  notes 

0.3.6  releaed UMD version: ql.js , minor fix to cashflowvector

0.3.5  minor fix for notebook 
0.3.4  no fix, renamed many symbol names for notebook app 
0.3.3  fixed most asianoption specs 
0.3.2  fixed swaption , most of shortrate models specs and some other pricing specs, and part of bermudanswaption example 
0.3.1  examples code cleanup, fixed 4 examples, global optimizers example DE tests passed 
0.3.0  fixed 40+ pricing specs, started working on model tests 
0.2.7  fixed default probability curves specs 
0.2.6  fixed most european option test, tree engine cleanup 
0.2.5  fixed piecewise zero spreaded term structure, brownian bridge , 4 american options specs, FD engine cleanup 
0.2.4  fixed risk statistics , brownian bridge some piecewise yield curve specs 
0.2.3  fixed termstructure spec, experimental Gaussian quadratures specs 
0.2.2  termstructure constructor cleanup, fixed a few simple ts specs 
0.2.1  add halley , halleysafe , inverseIncompleteGammaFunction from QuantLibnoBoost, fixed blackdeltacalculator

0.2.0  started working on instrument pricing specs, fixed some old test that passed before 
0.1.x  most math specs passed 
0.0.x  date&time, patterns, currency, misc specs passed 
docs
 https://quantlib.js.org/docs
 official c++ quantlib doc: https://www.quantlib.org/reference/
testsuite & example
source code in ESM javascript
:
converted from the c++
quantlib testsuite & Examples
these are the code loaded and executed in https://quantlib.js.org/testsuite/
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, nonexclusive, nocharge, royaltyfree, 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, nonexclusive, nocharge, royaltyfree, 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
crossclaim 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 thirdparty 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, NONINFRINGEMENT, 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 thirdparty 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/LICENSE2.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++ QuantLibnoboost: https://github.com/haozhangphd/QuantLibnoBoost
 mathjs: https://mathjs.org
 phosphor: https://github.com/phosphorjs/phosphor
 js.org: https://github.com/jsorg/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.3.3 specs + examples status report total: 735, passed: 452, failed: 176, pending: 107
LazyObject tests
 [x] Testing that lazy objects discard notifications after the first...
 [x] Testing that lazy objects forward all notifications when told...
Observer tests
 [x] Testing observable settings...
Black delta calculator tests
 [x] Testing delta calculator values...
 [x] Testing premiumadjusted delta price consistency...
 [x] Testing putcall parity for deltas...
 [x] Testing deltaneutral ATM quotations...
Exchangerate tests
 [x] Testing direct exchange rates...
 [x] Testing derived exchange rates...
 [x] Testing lookup of direct exchange rates...
 [x] Testing lookup of triangulated exchange rates...
 [x] Testing lookup of derived exchange rates...
Money tests
 [x] Testing money arithmetic without conversions...
 [ ] Testing money arithmetic with conversion to base currency...
 [ ] Testing money arithmetic with automated conversion...
Rounding tests
 [x] Testing closest decimal rounding...
 [x] Testing upward decimal rounding...
 [x] Testing downward decimal rounding...
 [x] Testing floor decimal rounding...
 [x] Testing ceiling decimal rounding...
Business day convention tests
 [x] Testing business day conventions...
Calendar tests
 [x] Testing calendar modification...
 [x] Testing joint calendars...
 [x] Testing US settlement holiday list...
 [x] Testing US government bond market holiday list...
 [x] Testing New York Stock Exchange holiday list...
 [x] Testing TARGET holiday list...
 [x] Testing Frankfurt Stock Exchange holiday list...
 [x] Testing Eurex holiday list...
 [x] Testing Xetra holiday list...
 [x] Testing UK settlement holiday list...
 [x] Testing London Stock Exchange holiday list...
 [x] Testing London Metals Exchange holiday list...
 [x] Testing Milan Stock Exchange holiday list...
 [x] Testing Russia holiday list...
 [x] Testing Brazil holiday list...
 [x] Testing SouthKorean settlement holiday list...
 [x] Testing Korea Stock Exchange holiday list...
 [x] Testing China Shanghai Stock Exchange holiday list...
 [x] Testing China Inter Bank working weekends list...
 [x] Testing endofmonth calculation...
 [x] Testing calculation of business days between dates...
 [x] Testing bespoke calendars...
Date tests
 [x] Testing ECB dates...
 [x] Testing IMM dates...
 [x] Testing ASX dates...
 [x] Testing dates...
 [x] Testing ISO dates...
 [x] Testing parsing of dates...
 [x] Testing intraday information of dates...
Day counter tests
 [x] Testing actual/actual day counters...
 [x] Testing actual/actual day counter with schedule...
 [x] Testing simple day counter...
 [x] Testing 1/1 day counter...
 [x] Testing business/252 day counter...
 [x] Testing thirty/360 day counter (Bond Basis)...
 [x] Testing thirty/360 day counter (Eurobond Basis)...
 [x] Testing intraday behavior of day counter ...
Period tests
 [x] Testing period algebra on years/months...
 [x] Testing period algebra on weeks/days...
 [x] Testing period parsing...
Schedule tests
 [x] Testing schedule with daily frequency...
 [x] Testing end date for schedule with endofmonth adjustment...
 [x] Testing that no dates are past the end date with EOM adjustment...
 [x] Testing that nexttolast date same as end date is removed...
 [x] Testing that the last date is not adjusted for EOM when termination date convention is unadjusted...
 [x] Testing that the first date is not duplicated due to EOM convention when going backwards...
 [x] Testing CDS2015 semiannual rolling convention...
 [x] Testing the constructor taking a vector of dates and possibly additional meta information...
 [x] Testing that a fourweeks tenor works...
Timegrid tests
 [x] Testing TimeGrid constructor with additional steps...
 [x] Testing TimeGrid constructor with only mandatory points...
 [x] Testing TimeGrid construction with n evenly spaced points...
 [x] Testing if the constructor raises an error for empty iterators...
 [x] Testing if the constructor raises an error for negative time values...
 [x] Testing returned index is closest to the requested time...
 [x] Testing returned time matches to the requested index...
 [x] Testing mandatory times are recalled correctly...
Time series tests
 [x] Testing time series construction...
 [x] Testing time series interval price...
 [ ] Testing time series iterators...
Gaussian quadraturesGaussian quadratures tests
 [x] Testing GaussJacobi integration...
 [x] Testing GaussLaguerre integration...
 [x] Testing GaussHermite integration...
 [x] Testing Gauss hyperbolic integration...
 [x] Testing tabulated GaussLaguerre integration...
Gaussian quadratures experimental tests
 [x] Testing Gauss noncentral chisquared integration...
 [x] Testing Gauss noncentral chisquared sum of notes...
Integration tests
 [x] Testing segment integration...
 [x] Testing trapezoid integration...
 [x] Testing midpoint trapezoid integration...
 [x] Testing Simpson integration...
 [x] Testing adaptive GaussKronrod integration...
 [x] Testing adaptive GaussLobatto integration...
 [x] Testing nonadaptive GaussKronrod integration...
 [x] Testing two dimensional adaptive GaussLobatto integration...
 [x] Testing Folin's integral formulae...
 [x] Testing discrete integral formulae...
 [x] Testing discrete integrator formulae...
 [x] Testing piecewise integral...
Numerical differentiation tests
 [x] Testing numerical differentiation using the central scheme...
 [x] Testing numerical differentiation using the backward scheme...
 [x] Testing numerical differentiation using the Forward scheme...
 [x] Testing numerical differentiation of first order using an irregular scheme...
 [x] Testing numerical differentiation of second order using an irregular scheme...
 [x] Testing numerical differentiation of sin function...
 [x] Testing coefficients from numerical differentiation by comparison with results from Vandermonde matrix inversion...
ODE tests
 [x] Testing adaptive Runge Kutta...
 [x] Testing matrix exponential based on ode...
 [x] Testing matrix exponential of a zero matrix based on ode...
1D solver tests
 [x] Testing Brent solver...
 [x] Testing bisection solver...
 [x] Testing falseposition solver...
 [x] Testing Newton solver...
 [x] Testing Newtonsafe solver...
 [x] Testing Halley solver...
 [x] Testing Halleysafe solver...
 [x] Testing finitedifference Newtonsafe solver...
 [x] Testing Ridder solver...
 [x] Testing secant solver...
Array tests
 [x] Testing array construction...
 [x] Testing array functions...
Covariance and correlation tests
 [x] Testing matrix rank reduction salvaging algorithms...
 [x] Testing positive semidefiniteness salvaging algorithms...
 [x] Testing covariance and correlation calculations...
Matrix tests
 [x] Testing eigenvalues and eigenvectors calculation...
 [x] Testing matricial square root...
 [x] Testing Higham matricial square root...
 [x] Testing singular value decomposition...
 [x] Testing QR decomposition...
 [x] Testing QR solve...
 [x] Testing LU inverse calculation...
 [x] Testing LU determinant calculation...
 [x] Testing orthogonal projections...
 [x] Testing Cholesky Decomposition...
 [x] Testing MoorePenrose inverse...
 [x] Testing iterative solvers...
TQR eigen decomposition tests
 [x] Testing TQR eigenvalue decomposition...
 [x] Testing TQR zerooffdiagonal eigenvalues...
 [x] Testing TQR eigenvector decomposition...
Autocovariance tests
 [x] Testing convolutions...
 [x] Testing autocovariances...
 [x] Testing autocorrelations...
Distribution tests
 [x] Testing normal distributions...
 [x] Testing bivariate cumulative normal distribution...
 [x] Testing Poisson distribution...
 [x] Testing cumulative Poisson distribution...
 [x] Testing inverse cumulative Poisson distribution...
 [x] Testing bivariate cumulative Student t distribution...
 [x] Testing bivariate cumulative Student t distribution for large N...
 [x] Testing inverse CDF based on stochastic collocation...
Linear least squares regression tests
 [x] Testing linear leastsquares regression...
 [x] Testing multidimensional linear leastsquares regression...
 [x] Testing 1D simple linear leastsquares regression...
Optimizers tests
 [x] Testing optimizers...
 [x] Testing nested optimizations...
 [x] Testing differential evolution...
Risk statistics tests
 [x] Testing risk measures...
Statistics tests
 [x] Testing statistics...
 [x] Testing sequence statistics...
 [x] Testing convergence statistics...
 [x] Testing incremental statistics...
Lowdiscrepancy sequence tests
 [x] Testing randomseed generator...
 [x] Testing 21200 primitive polynomials modulo two...
 [x] Testing randomized lowdiscrepancy sequences up to dimension 21200...
 [x] Testing randomized lattice sequences...
 [x] Testing Sobol sequences up to dimension 21200...
 [x] Testing Faure sequences...
 [x] Testing Halton sequences...
 [x] Testing Mersennetwister discrepancy...
 [x] Testing plain Halton discrepancy...
 [x] Testing randomstart Halton discrepancy...
 [x] Testing randomshift Halton discrepancy...
 [x] Testing randomstart, randomshift Halton discrepancy...
 [x] Testing JaeckelSobol discrepancy...
 [x] Testing LevitanSobol discrepancy...
 [x] Testing LevitanLemieuxSobol discrepancy...
 [x] Testing unit Sobol discrepancy...
 [x] Testing Sobol sequence skipping...
RNG traits tests
 [x] Testing Gaussian pseudorandom number generation...
 [x] Testing Poisson pseudorandom number generation...
 [x] Testing custom Poisson pseudorandom number generation...
Mersenne twister tests
 [x] Testing Mersenne twister...
Fast fourier transform tests
 [x] Testing complex direct FFT...
 [x] Testing convolution via inverse FFT...
Factorial tests
 [x] Testing factorial numbers...
 [x] Testing Gamma function...
 [x] Testing Gamma values...
 [x] Testing modified Bessel function of first and second kind...
 [x] Testing weighted modified Bessel functions...
Interpolation tests
 [x] Testing spline approximation on Gaussian data sets...
 [x] Testing spline interpolation on a Gaussian data set...
 [x] Testing spline interpolation on RPN15A data set...
 [x] Testing spline interpolation on generic values...
 [x] Testing symmetry of spline interpolation endconditions ...
 [x] Testing derivative endconditions for spline interpolation ...
 [x] Testing nonrestrictive Hyman filter...
 [ ] Testing Ndimensional cubic spline...
 [x] Testing use of interpolations as functors...
 [x] Testing FritschButland interpolation...
 [x] Testing backwardflat interpolation...
 [x] Testing forwardflat interpolation...
 [x] Testing Sabr interpolation...
 [x] Testing kernel 1D interpolation...
 [x] Testing kernel 2D interpolation...
 [x] Testing bicubic spline derivatives...
 [x] Testing that bicubic splines actually update...
 [x] Testing Richardson extrapolation...
 [ ] Testing noarbitrage Sabr interpolation...
 [ ] Testing Sabr calibration single cases...
 [x] Testing Sabr and noarbitrage Sabr transformation functions...
 [x] Testing Lagrange interpolation...
 [x] Testing Lagrange interpolation at supporting points...
 [x] Testing Lagrange interpolation derivatives...
 [x] Testing Lagrange interpolation on Chebyshev points...
 [x] Testing BSplines...
 [x] Testing piecewise constant interpolation on a single point...
Sampled curve tests
 [x] Testing sampled curve construction...
Transformed grid
 [x] Testing transformed grid construction...
Cash flows tests
 [x] Testing cashflow settings...
 [x] Testing dynamic cast of coupon in Black pricer...
 [x] Testing default evaluation date in cashflows methods...
 [x] Testing ibor leg construction with null fixing days...
 [x] Testing irregular first coupon reference dates with end of month enabled...
 [x] Testing irregular last coupon reference dates with end of month enabled...
 [x] Testing leg construction with partial schedule...
Capped and floored coupon tests
 [x] Testing degenerate collared coupon...
 [x] Testing collared coupon against its decomposition...
Digital coupon tests
 [x] Testing European assetornothing digital coupon...
 [ ] Testing European deep inthemoney assetornothing digital coupon...
 [ ] Testing European deep outthemoney assetornothing digital coupon...
 [ ] Testing European cashornothing digital coupon...
 [ ] Testing European deep inthemoney cashornothing digital coupon...
 [ ] Testing European deep outthemoney cashornothing digital coupon...
 [ ] Testing call/put parity for European digital coupon...
 [ ] Testing replication type for European digital coupon...
YoY inflation capped and floored coupon tests
 [ ] Testing collared coupon against its decomposition...
 [ ] Testing inflation capped/floored coupon against inflation capfloor instrument...
Interest Rate tests
 [x] Testing interestrate conversions...
Range Accrual tests
 [x] Testing infinite range accrual floaters...
 [x] Testing price monotonicity with respect to the lower strike...
 [x] Testing price monotonicity with respect to the upper strike...
Hybrid HestonHullWhite tests
 [ ] Testing European option pricing for a BSM process with onefactor HullWhite model...
 [ ] Comparing European option pricing for a BSM process with onefactor HullWhite model...
 [ ] Testing MonteCarlo zero bond pricing...
 [ ] Testing MonteCarlo vanilla option pricing...
 [ ] Testing MonteCarlo Heston option pricing...
 [ ] Testing analytic Heston HullWhite option pricing...
Brownian bridge tests
 [x] Testing Brownianbridge variates...
 [x] Testing Brownianbridge path generation...
Path generation tests
 [x] Testing 1D path generation against cached values...
 [x] Testing nD path generation against cached values...
Longstaff Schwartz MC engine tests
 [ ] Testing MonteCarlo pricing of American options...
 [ ] Testing MonteCarlo pricing of American max options...
Curve States tests
 [x] Testing constantmaturityswapmarketmodel curve state...
Finite Difference Heston tests
 [ ] Testing FDM Heston variance mesher ...
 [ ] Testing FDM Heston variance mesher ...
 [ ] Testing FDM with barrier option for Heston model vs BlackScholes model...
 [ ] Testing FDM with American option in Heston model...
 [ ] Testing FDM Heston for Ikonen and Toivanen tests...
 [ ] Testing FDM Heston with Black Scholes model...
 [ ] Testing FDM with European option with dividends in Heston model...
 [ ] Testing FDM Heston convergence...
 [ ] Testing FDM Heston intraday pricing ...
 [ ] Testing method of lines to solve Heston PDEs...
 [ ] Testing for spurious oscillations when solving the Heston PDEs...
Linear operator tests
 [x] Testing indexing of a linear operator...
 [x] Testing uniform grid mesher...
 [ ] Testing application of firstderivatives map...
 [ ] Testing application of secondderivatives map...
 [ ] Testing finite differences coefficients...
 [x] Testing application of secondorder mixedderivatives map...
 [ ] Testing tripleband map solution...
 [ ] Testing FDM with barrier option in Heston model...
 [ ] Testing FDM with American option in Heston model...
 [ ] Testing FDM with express certificate in Heston model...
 [ ] Testing FDM with Heston HullWhite model...
 [ ] Testing biconjugated gradient stabilized algorithm...
 [ ] Testing GMRES algorithm...
 [ ] Testing CrankNicolson with initial implicit damping steps for a digital option...
 [ ] Testing SparseMatrixReference type...
 [ ] Testing assignment to zero in sparse matrix...
 [ ] Testing integrals over meshers functions...
 [x] Testing BlackScholes mesher in a high interest rate scenario...
 [x] Testing BlackScholes mesher in a low volatility and high discrete dividend scenario...
Operator tests
 [x] Testing tridiagonal operator...
 [x] Testing differential operators...
 [x] Testing consistency of BSM operators...
European option extended trees tests
 [x] Testing timedependent JR binomial European engines against analytic results...
 [x] Testing timedependent CRR binomial European engines against analytic results...
 [x] Testing timedependent EQP binomial European engines against analytic results...
 [x] Testing timedependent TGEO binomial European engines against analytic results...
 [x] Testing timedependent TIAN binomial European engines against analytic results...
 [ ] Testing timedependent LR binomial European engines against analytic results...
 [ ] Testing timedependent Joshi binomial European engines against analytic results...
Black formula tests
 [x] Testing Bachelier implied vol...
 [x] Testing ChambersNawalkha implied vol approximation...
 [x] Testing RadoicicStefanica implied vol approximation...
 [x] Testing RadoicicStefanica lower bound...
 [x] Testing implied volatility calculation via adaptive successive overrelaxation...
Amortizing Bond tests
 [x] Testing amortizing fixed rate bond...
Bond tests
 [x] Testing consistency of bond price/yield calculation...
 [x] Testing consistency of bond price/ATM rate calculation...
 [x] Testing consistency of bond price/zspread calculation...
 [x] Testing theoretical bond price/yield calculation...
 [x] Testing bond price/yield calculation against cached values...
 [x] Testing zerocoupon bond prices against cached values...
 [x] Testing fixedcoupon bond prices against cached values...
 [x] Testing floatingrate bond prices against cached values...
 [x] Testing Brazilian public bond prices against Andima cached values...
 [x] Testing excoupon UK Gilt price against market values...
 [x] Testing excoupon Australian bond price against market values...
 [x] Testing South African R2048 bond price using Schedule constructor with Date vector...
 [x] Testing Thirty/360 bond with settlement on 31st of the month...
CatBond tests
 [X] Testing that catastrophe events are split correctly for periods of whole years...
 [ ] Testing that catastrophe events are split correctly for irregular periods...
 [ ] Testing that catastrophe events are split correctly when there are no simulated events...
 [ ] Testing that beta risk gives correct terminal distribution...
 [ ] Testing floatingrate cat bond against riskfree floatingrate bond...
 [ ] Testing floatingrate cat bond in a doom scenario (certain default)...
 [ ] Testing floatingrate cat bond in a doom once in 10 years scenario...
 [ ] Testing floatingrate cat bond in a doom once in 10 years scenario with proportional notional reduction...
 [ ] Testing floatingrate cat bond in a generated scenario with proportional notional reduction...
Convertible bond tests
 [ ] Testing outofthemoney convertible bonds against vanilla bonds...
 [ ] Testing zerocoupon convertible bonds against vanilla option...
 [x] Testing fixedcoupon convertible bond in known regression case...
Cap and floor tests
 [x] Testing cap/floor vega...
 [x] Testing cap/floor dependency on strike...
 [x] Testing consistency between cap, floor and collar...
 [x] Testing cap/floor parity...
 [x] Testing cap/floor ATM rate...
 [x] Testing implied term volatility for cap and floor...
 [x] Testing Black cap/floor price against cached values...
Inflation (yearonyear) Cap and floor tests
 [ ] Testing consistency between yoy inflation cap, floor and collar...
 [ ] Testing yoy inflation cap/floor parity...
 [ ] Testing Black yoy inflation cap/floor price against cached values...
CPI swaption tests
 [ ] Testing cpi capfloor price surface...
 [ ] Testing cpi capfloor pricer...
Forward rate agreement
 [x] Testing forward rate agreement construction...
Instrument tests
 [x] Testing observability of instruments...
 [x] Testing reaction of composite instrument to date changes...
American option tests
 [x] Testing BaroneAdesi and Whaley approximation for American options...
 [x] Testing Bjerksund and Stensland approximation for American options...
 [x] Testing Ju approximation for American options...
 [ ] Testing finitedifference engine for American options...
 [x] Testing finitedifferences American option greeks...
 [x] Testing finitedifferences shout option greeks...
Asian option tests
 [x] Testing analytic continuous geometric averageprice Asians...
 [x] Testing analytic continuous geometric averageprice Asian greeks...
 [x] Testing analytic discrete geometric averageprice Asians...
 [x] Testing analytic discrete geometric averagestrike Asians...
 [x] Testing Monte Carlo discrete geometric averageprice Asians...
 [ ] Testing Monte Carlo discrete arithmetic averageprice Asians...
 [x] Testing Monte Carlo discrete arithmetic averagestrike Asians...
 [x] Testing discreteaveraging geometric Asian greeks...
 [x] Testing use of past fixings in Asian options...
 [x] Testing Asian options with all fixing dates in the past...
Asian option experimental tests
 [x] Testing Levy engine for Asians options...
 [ ] Testing Vecer engine for Asian options...
Barrier option tests
 [ ] Testing that knockin plus knockout barrier options replicate a European option...
 [ ] Testing barrier options against Haug's values...
 [ ] Testing barrier options against Babsiri's values...
 [ ] Testing barrier options against Beaglehole's values...
 [ ] Testing local volatility and Heston FD engines for barrier options...
 [ ] Testing barrier option pricing with discrete dividends...
Barrier option experimental tests
 [x] Testing perturbative engine for barrier options...
 [ ] Testing barrier FX options against Vanna/Volga values...
Basket option tests
 [ ] Testing twoasset European basket options...
 [ ] Testing threeasset basket options against Barraquand's values...
 [ ] Testing threeasset American basket options against Tavella's values...
 [ ] Testing basket American options against 1D case...
 [ ] Testing antithetic engine using odd sample number...
 [ ] Testing 2D localvolatility spreadoption pricing...
 [ ] Testing Greeks of twodimensional PDE engine...
Cliquet option tests
 [x] Testing Cliquet option values...
 [ ] Testing Cliquet option greeks...
 [ ] Testing performance option greeks...
 [ ] Testing Monte Carlo performance engine against analytic results...
Dividend European option tests
 [x] Testing dividend European option values with no dividends...
 [ ] Testing dividend European option values with known value...
 [x] Testing dividend European option with a dividend on today's date...
 [ ] Testing dividend European option values with end limits...
 [x] Testing dividend European option greeks...
 [ ] Testing finitedifference dividend European option values...
 [ ] Testing finitedifferences dividend European option greeks...
 [ ] Testing finitedifferences dividend American option greeks...
 [ ] Testing degenerate finitedifferences dividend European option...
 [ ] Testing degenerate finitedifferences dividend American option...
European option tests
 [x] Testing European option values...
 [x] Testing European option greek values...
 [x] Testing analytic European option greeks...
 [x] Testing European option implied volatility...
 [x] Testing selfcontainment of implied volatility calculation...
 [x] Testing JR binomial European engines against analytic results...
 [x] Testing CRR binomial European engines against analytic results...
 [x] Testing EQP binomial European engines against analytic results...
 [x] Testing TGEO binomial European engines against analytic results...
 [x] Testing TIAN binomial European engines against analytic results...
 [x] Testing LR binomial European engines against analytic results...
 [x] Testing Joshi binomial European engines against analytic results...
 [x] Testing finitedifference European engines against analytic results...
 [x] Testing integral European engines against analytic results...
 [x] Testing Monte Carlo European engines against analytic results...
 [x] Testing Quasi Monte Carlo European engines against analytic results...
 [x] Testing European price curves...
 [ ] Testing finitedifferences with local volatility...
 [x] Testing separate discount curve for analytic European engine...
 [ ] Testing different PDE schemes to solve BlackScholes PDEs...
 [x] Testing finitedifference European engine with nonconstant parameters...
European option experimental tests
 [ ] Testing FFT European engines against analytic results...
Forward option tests
 [X] Testing forward option values...
 [X] Testing forward performance option values...
 [ ] Testing forward option greeks...
 [ ] Testing forward performance option greeks...
 [ ] Testing forward option greeks initialization...
Quanto option tests
 [X] Testing quanto option values...
 [X] Testing quanto option greeks...
 [X] Testing quantoforward option values...
 [X] Testing quantoforward option greeks...
 [X] Testing quantoforwardperformance option values...
Experimental quanto option tests
 [X] Testing quantodoublebarrier option values...
Quote tests
 [x] Testing observability of quotes...
 [x] Testing observability of quote handles...
 [x] Testing derived quotes...
 [x] Testing composite quotes...
 [x] Testing forwardvalue and impliedstandarddeviation quotes...
AssetSwap tests
 [x] Testing consistency between fair price and fair spread...
 [ ] Testing implied bond value against assetswap fair price with null spread...
 [ ] Testing relationship between market asset swap and par asset swap...
 [ ] Testing clean and dirty price with null Zspread against theoretical prices...
 [ ] Testing implied genericbond value against assetswap fair price with null spread...
 [ ] Testing market asset swap against par asset swap with generic bond...
 [ ] Testing clean and dirty price with null Zspread against theoretical prices...
 [ ] Testing clean and dirty prices for specialized bond against equivalent generic bond...
 [ ] Testing assetswap prices and spreads for specialized bond against equivalent generic bond...
Cms tests
 [ ] Testing Haganpricer flatvol equivalence for coupons...
 [ ] Testing Haganpricer flatvol equivalence for swaps...
 [ ] Testing putcall parity for cappedfloored CMS coupons...
Cms spread tests
 [ ] Testing fixings of cms spread indices...
 [ ] Testing pricing of cms spread coupons...
Overnightindexed swap tests
 [X] Testing Eoniaswap calculation of fair fixed rate...
 [X] Testing Eoniaswap calculation of fair floating spread...
 [X] Testing Eoniaswap calculation against cached value...
 [X] Testing Eoniaswap curve building...
 [X] Testing Eoniaswap curve building with telescopic value dates...
 [X] Testing seasoned Eoniaswap calculation...
Swap tests
 [x] Testing vanillaswap calculation of fair fixed rate...
 [x] Testing vanillaswap calculation of fair floating spread...
 [x] Testing vanillaswap dependency on fixed rate...
 [x] Testing vanillaswap dependency on floating spread...
 [x] Testing inarrears swap calculation...
 [x] Testing vanillaswap calculation against cached value...
swapforward mappings tests
 [x] Testing forwardrate coinitialswap Jacobian...
 [ ] Testing forwardrate coterminalswap mappings...
 [ ] Testing implied swaption vol in LMM using HW approximation...
Bermudan swaption tests
 [ ] Testing Bermudan swaption with HW model against cached values...
 [ ] Testing Bermudan swaption with G2 model against cached values...
Swaption tests
 [X] Testing swaption dependency on strike...
 [X] Testing swaption dependency on spread...
 [X] Testing swaption treatment of spread...
 [X] Testing swaption value against cached value...
 [X] Testing swaption vega...
 [X] Testing cash settled swaptions modified annuity...
 [X] Testing implied volatility for swaptions...
Swaption Volatility Cube tests
 [ ] Testing swaption volatility cube (atm vols)...
 [ ] Testing swaption volatility cube (smile)...
 [ ] Testing swaption volatility cube (sabr interpolation)...
 [ ] Testing spreaded swaption volatility cube...
 [ ] Testing volatility cube observability...
Swaption Volatility Matrix tests
 [x] Testing swaption volatility matrix observability...
 [ ] Testing swaption volatility matrix...
Bates model tests
 [ ] Testing analytic Bates engine against Black formula...
 [ ] Testing analytic Bates engine against Merton76 engine...
 [ ] Testing analytic Bates engine against MonteCarlo engine...
 [ ] Testing Bates model calibration using DAX volatility data...
GARCH model tests
 [ ] Testing GARCH model calibration...
 [ ] Testing GARCH model calculation...
GJRGARCH model tests
 [ ] Testing Monte Carlo GJRGARCH engine against analytic GJRGARCH engine...
 [ ] Testing GJRGARCH model calibration using DAX volatility data...
GSR model tests
 [ ] Testing GSR process...
 [ ] Testing GSR model...
Heston model tests
 [x] Testing Heston model calibration using a flat volatility surface...
 [ ] Testing Heston model calibration using DAX volatility data...
 [ ] Testing analytic Heston engine against Black formula...
 [x] Testing analytic Heston engine against cached values...
 [ ] Testing Monte Carlo Heston engine against cached values...
 [ ] Testing FD barrier Heston engine against cached values...
 [ ] Testing FD vanilla Heston engine against cached values...
 [ ] Testing MC and FD Heston engines for the KahlJaeckel example...
 [x] Testing different numerical Heston integration algorithms...
 [ ] Testing multiplestrikes FD Heston engine...
 [ ] Testing analytic piecewise time dependent Heston prices...
 [ ] Testing timedependent Heston model calibration...
 [ ] Testing Alan Lewis reference prices...
 [ ] Testing expansion on Alan Lewis reference prices...
 [x] Testing expansion on Forde reference prices...
 [ ] Testing semianalytic Heston pricing with all integration methods...
 [ ] Testing Heston COS cumulants...
 [ ] Testing Heston pricing via COS method...
 [ ] Testing Heston characteristic function...
 [ ] Testing AndersenPiterbarg method to price under the Heston model...
 [ ] Testing AndersenPiterbarg Integrand with control variate...
 [ ] Testing AndersenPiterbarg pricing convergence...
 [ ] Testing piecewise time dependent ChF vs Heston ChF...
 [ ] Testing piecewise time dependent comparison...
 [ ] Testing piecewise time dependent ChF Asymtotic...
Heston model experimental tests
 [ ] Testing analytic PDF Heston engine...
Heston Stochastic Local Volatility tests
 [ ] Testing FokkerPlanck forward equation for BS process...
 [ ] Testing zeroflow BC for the square root process...
 [ ] Testing zeroflow BC for transformed FokkerPlanck forward equation...
 [ ] Testing FokkerPlanck forward equation for the square root process with stationary density...
 [ ] Testing FokkerPlanck forward equation for the square root log process with stationary density...
 [ ] Testing FokkerPlanck forward equation for the square root process with Dirac start...
 [ ] Testing FokkerPlanck forward equation for the Heston process...
 [ ] Testing FokkerPlanck forward equation for the Heston process Log Transformation with leverage LV limiting case...
 [ ] Testing FokkerPlanck forward equation for BS Local Vol process...
 [ ] Testing local volatility vs SLV model...
 [ ] Testing calibration via vanilla options...
 [ ] Testing Barrier pricing with mixed models...
 [ ] Testing MonteCarlo vs FDM Pricing for Heston SLV models...
 [ ] Testing MonteCarlo Calibration...
 [ ] Testing the implied volatility skew of forward starting options in SLV model...
 [ ] Testing double no touch pricing with SLV and mixing...
Jumpdiffusion tests
 [x] Testing Merton 76 jumpdiffusion model for European options...
Markov functional model tests
 [x] Testing Markov functional state process...
 [x] Testing Kahale smile section...
 [ ] Testing Markov functional calibration to one instrument set...
 [ ] Testing Markov functional vanilla engines...
 [ ] Testing Markov functional calibration to two instrument sets...
 [ ] Testing Markov functional Bermudan swaption engine...
Normal CLV Model tests
 [X] Testing BlackScholes cumulative distribution function with constant volatility...
 [ ] Testing Heston cumulative distribution function...
 [ ] Testing illustrative 1D example of normal CLV model...
 [X] Testing Monte Carlo BS option pricing...
 [ ] Testing double notouch pricing with normal CLV model...
Shortrate model tests
 [X] Testing HullWhite calibration against cached values using swaptions with start delay...
 [X] Testing HullWhite calibration with fixed reversion against cached values...
 [X] Testing HullWhite calibration against cached values using swaptions without start delay...
 [ ] Testing HullWhite swap pricing against known values...
 [X] Testing HullWhite futures convexity bias...
 [X] Testing zero bond pricing for extended CIR model ...
SquareRootCLVModel tests
 [ ] Testing vanilla option pricing with square root kernel process...
 [ ] Testing mapping function of the square root kernel process...
 [ ] Testing forward skew dynamics with square root kernel process...
Marketmodel tests
 [ ] Testing exact repricing of onestep forwards and optionlets in a lognormal forward rate market model...
 [ ] Testing exact repricing of onestep forwards and optionlets in a normal forward rate market model...
 [ ] Testing exact repricing of inverse floater in forward rate market model...
CMS Marketmodel tests
 [ ] Testing exact repricing of multistep constant maturity swaps and swaptions in a lognormal constant maturity swap market model...
SMM Marketmodel tests
 [ ] Testing exact repricing of multistep coterminal swaps and swaptions in a lognormal coterminal swap rate market model...
SMM Caplet alpha calibration test
 [ ] Testing alpha caplet calibration in a lognormal coterminal swap market model...
SMM Caplet calibration test
 [ ] Testing GHLS caplet calibration in a lognormal coterminal swap market model...
SMM Caplet homogeneous calibration test
 [ ] Testing max homogeneity caplet calibration in a lognormal coterminal swap market model...
 [ ] Testing max homogeneity periodic caplet calibration in a lognormal coterminal swap market model...
 [ ] Testing spherecylinder optimization...
volatility models tests
 [X] Testing volatility model construction...
Defaultprobability curve tests
 [x] Testing defaultprobability structure...
 [x] Testing flat hazard rate...
 [x] Testing piecewiseflat hazardrate consistency...
 [x] Testing piecewiseflat defaultdensity consistency...
 [x] Testing piecewiselinear defaultdensity consistency...
 [x] Testing loglinear survivalprobability consistency...
 [x] Testing singleinstrument curve bootstrap...
 [x] Testing bootstrap on upfront quotes...
Inflation tests
 [X] Testing zero inflation indices...
 [ ] Testing zero inflation term structure...
 [X] Testing that zero inflation indices forecast future fixings...
 [ ] Testing yearonyear inflation indices...
 [ ] Testing yearonyear inflation term structure...
 [ ] Testing inflation period...
CPI bond tests
 [ ] Testing clean price...
CPI Swap tests
 [ ] Testing consistency...
 [ ] Testing zciis consistency...
 [ ] Testing cpi bond consistency...
Term structure tests
 [x] Testing term structure against evaluation date change...
 [x] Testing consistency of implied term structure...
 [x] Testing observability of implied term structure...
 [x] Testing consistency of forwardspreaded term structure...
 [x] Testing observability of forwardspreaded term structure...
 [x] Testing consistency of zerospreaded term structure...
 [x] Testing observability of zerospreaded term structure...
 [x] Testing that a zerospreaded curve can be created with a null underlying curve...
 [x] Testing that an underlying curve can be relinked to a null underlying curve...
 [x] Testing composite zero yield structures...
AndreasenHuge volatility interpolation tests
 [ ] Testing AndreasenHuge example with Put calibration...
 [ ] Testing AndreasenHuge example with Call calibration...
 [ ] Testing AndreasenHuge example with instantaneous Call and Put calibration...
 [ ] Testing AndreasenHuge example with linear interpolation...
 [ ] Testing AndreasenHuge example with piecewise constant interpolation...
 [ ] Testing AndreasenHuge volatility interpolation with time dependent interest rates and dividend yield...
 [ ] Testing AndreasenHuge volatility interpolation with a single option...
 [ ] Testing AndreasenHuge volatility interpolation gives arbitrage free prices...
 [ ] Testing Barrier option pricing with AndreasenHuge local volatility surface...
 [ ] Testing Peter's and Fabien's SABR example...
 [ ] Testing different optimizer for AndreasenHuge volatility interpolation...
 [ ] Testing that reference date of adapter surface moves along with evaluation date...
YoY OptionletStripper (yoy inflation vol) tests
 [ ] Testing conversion from YoY price surface to YoY volatility surface...
 [ ] Testing conversion from YoY capfloor surface to YoY inflation term structure...
Optionlet Stripper Tests
 [ ] Testing forward/forward vol stripping from flat term vol surface using OptionletStripper1 class...
 [ ] Testing forward/forward vol stripping from nonflat term vol surface using OptionletStripper1 class...
 [ ] Testing forward/forward vol stripping from nonflat normal vol term vol surface for normal vol setup using OptionletStripper1 class...
 [ ] Testing forward/forward vol stripping from nonflat normal vol term vol surface for normal vol setup using OptionletStripper1 class...
 [ ] Testing forward/forward vol stripping from flat term vol surface using OptionletStripper2 class...
 [ ] Testing forward/forward vol stripping from nonflat term vol surface using OptionletStripper2 class...
 [ ] Testing switch strike level and recalibration of level in case of curve relinking...
Piecewise yield curve tests
 [ ] Testing consistency of piecewiselogcubic discount curve...
 [x] Testing consistency of piecewiseloglinear discount curve...
 [x] Testing consistency of piecewiselinear discount curve...
 [x] Testing consistency of piecewiseloglinear zeroyield curve...
 [x] Testing consistency of piecewiselinear zeroyield curve...
 [ ] Testing consistency of piecewisecubic zeroyield curve...
 [x] Testing consistency of piecewiselinear forwardrate curve...
 [x] Testing consistency of piecewiseflat forwardrate curve...
 [ ] Testing consistency of piecewisecubic forwardrate curve...
 [x] Testing consistency of convex monotone forwardrate curve...
 [ ] Testing consistency of localbootstrap algorithm...
 [x] Testing observability of piecewise yield curve...
 [ ] Testing use of today's LIBOR fixings in swap curve...
 [x] Testing bootstrap over JPY LIBOR swaps...
 [ ] Testing copying of discount curve...
 [ ] Testing copying of forwardrate curve...
 [ ] Testing copying of zerorate curve...
 [x] Testing SwapRateHelper last relevant date...
 [ ] Testing bootstrap starting from bad guess...
Interpolated piecewise zero spreaded yield curve tests
 [x] Testing flat interpolation before the first spreaded date...
 [x] Testing flat interpolation after the last spreaded date...
 [x] Testing linear interpolation with more than two spreaded dates...
 [x] Testing linear interpolation between two dates...
 [x] Testing forward flat interpolation between two dates...
 [x] Testing backward flat interpolation between two dates...
 [x] Testing default interpolation between two dates...
 [x] Testing factory constructor with additional parameters...
 [x] Testing term structure max date...
 [x] Testing quote update...
CDO tests
 [ ] Testing CDO premiums against HullWhite values for data set
CDS Option tests
 [x] Testing CDSoption value against cached values...
Creditdefault swap tests
 [x] Testing creditdefault swap against cached values...
 [x] Testing creditdefault swap against cached market values...
 [x] Testing implied hazardrate for creditdefault swaps...
 [x] Testing fairspread calculation for creditdefault swaps...
 [x] Testing fairupfront calculation for creditdefault swaps...
 [ ] Testing ISDA engine calculations for creditdefault swaps...
Nthtodefault tests
 [ ] Testing nthtodefault against HullWhite values with Gaussian copula...
 [ ] Testing nthtodefault against HullWhite values with Gaussian and Student copula...
NthOrderDerivativeOp tests
 [ ] Testing sparse matrix apply......
Commodity Unit Of Measure tests
 [ ] Testing direct commodity unit of measure conversions...
Binary Option tests
 [x] Testing cashornothing barrier options against Haug's values...
 [x] Testing assetornothing barrier options against Haug's values...
Chooser option tests
 [x] Testing analytic simple chooser option...
 [x] Testing analytic complex chooser option...
Compound option tests
 [ ] Testing compoundoption putcall parity...
 [ ] Testing compoundoption values and greeks...
DoubleBarrier tests
 [ ] Testing double barrier european options against Haug's values...
DoubleBarrier experimental tests
 [ ] Testing doublebarrier FX options against Vanna/Volga values...
DoubleBinary tests
 [ ] Testing cashornothing double barrier options against Haug's values...
Digital option tests
 [x] Testing European cashornothing digital option...
 [x] Testing European assetornothing digital option...
 [x] Testing European gap digital option...
 [x] Testing American cash(athit)ornothing digital option...
 [x] Testing American asset(athit)ornothing digital option...
 [x] Testing American cash(atexpiry)ornothing digital option...
 [x] Testing American asset(atexpiry)ornothing digital option...
 [x] Testing American cash(athit)ornothing digital option greeks...
 [ ] Testing Monte Carlo cash(athit)ornothing American engine...
Extensible option tests
 [x] Testing analytic engine for holderextensible option...
 [x] Testing analytic engine for writerextensible option...
Everestoption tests
 [x] Testing Everest option against cached values...
Himalayaoption tests
 [x] Testing Himalaya option against cached values...
Lookback option tests
 [x] Testing analytic continuous floatingstrike lookback options...
 [X] Testing analytic continuous fixedstrike lookback options...
 [x] Testing analytic continuous partial floatingstrike lookback options...
 [X] Testing analytic continuous fixedstrike lookback options...
Exchange option tests
 [X] Testing European oneassetforanother option...
 [X] Testing analytic European exchange option greeks...
 [X] Testing American oneassetforanother option...
Pagodaoption tests
 [X] Testing pagoda option against cached values...
Partialtime barrier option tests
 [X] Testing analytic engine for partialtime barrier option...
Spread option tests
 [X] Testing Kirk approximation for spread options...
SwingOption Test
 [ ] Testing extended OrnsteinUhlenbeck process...
 [ ] Testing finite difference mesher for the Kluge model...
 [ ] Testing finite difference pricer for the Kluge model...
 [ ] Testing BlackScholes vanilla swing option pricing...
 [ ] Testing simple swing option pricing for Kluge model...
 [ ] Testing simple swing option pricing for Kluge model...
Twoasset barrier option tests
 [X] Testing twoasset barrier options against Haug's values...
Twoasset correlation option tests
 [X] Testing analytic engine for twoasset correlation option...
Credit risk plus tests
 [x] Testing extended credit risk plus model against reference values...
Risk neutral density calculator tests
 [x] Testing density against option prices...
 [ ] Testing BlackScholesMerton and Heston densities...
 [ ] Testing FokkerPlanck forward equation for local volatility process to calculate risk neutral densities...
 [ ] Testing probability density for a square root process...
 [ ] Testing probability density for a BSM process with strike dependent volatility vs local volatility...
Variance Gamma tests
 [ ] Testing variancegamma model for European options...
 [X] Testing variancegamma model integration around zero...
Variance option tests
 [ ] Testing variance option with integral Heston engine...
Variance swap tests
 [ ] Testing variance swap with replicating cost engine...
 [ ] Testing variance swap with Monte Carlo engine...
VPP Test
 [X] Testing GemanRoncoroni process...
 [ ] Testing simplestorage option based on ext. OU model...
 [ ] Testing simple Kluge extOrnsteinUhlenbeck spread option...
 [ ] Testing VPP step condition...
 [ ] Testing VPP pricing using perfect foresight or FDM...
 [ ] Testing KlugeExtOU matrix decomposition...
Zabr model tests
 [ ] Testing Consistency ...
NoArbSabrModel tests
 [ ] Testing noarbitrage Sabr absorption matrix...
 [ ] Testing consistency of noarbsabr with Hagan et al (2002)
Libor market model tests
 [ ] Testing simple covariance models...
 [ ] Testing caplet pricing...
 [ ] Testing calibration of a Libor forward model...
 [ ] Testing forward swap and swaption pricing...
Libor market model process tests
 [ ] Testing caplet LMM process initialisation...
 [ ] Testing caplet LMM lambda bootstrapping...
 [ ] Testing caplet LMM MonteCarlo caplet pricing...
Examples:
 [ ] Basket Losses
 [ ] Bermudan Swaption
 [X] Bonds
 [ ] Callable bonds
 [X] CDS
 [ ] Convertable bonds
 [ ] CVAIRS
 [X] Discrete hedging
 [ ] Equity Option
 [X] Fitted bond curve
 [X] FRA
 [ ] Gaussian 1D models
 [ ] Global Optimizer
 [ ] Latent Model
 [ ] Market models
 [X] Multidim Integral
 [X] Replication
 [X] Repo
 [X] Swap valuation