Validation
Checked against QuantLib 1.44 on Windows x64.
- The vectors: 3,348,122 reference outputs in 1,169 vector files, of which four files and 39,887 outputs check QLNet's additions against QLNet 1.13.2. Each output agrees within a relative 1e-10 of the larger of the two values and the output's scale (an amount's is its notional), except 4,854 (0.14%) held to a documented looser tolerance.
- The tests: QuantLib's own tests, ported at QuantLib's tolerances.
- The types: 2,265 of the 2,266 public types with executable code are run by a QuantLib-checked test, QLNet's
additions by a QLNet-checked one. The one apart,
FactorReductionFunctions, every output of which is QuantLib's defect fixed, is checked by its own tests. 319 more are listed apart, 291 with no executable code and 28 own-tested (22 of them extensions, five experimental and one a term structure), and three are equality-only. 89.0% of the ported lines are covered. - The divergences: 738 documented divergences, 722 from QuantLib and 16 from QLNet, each with its own test class.
Measured on commit cf3446031bcfc45ec7e23c2a659cba45287a3758: 8,729 tests, every one passing, and 60,928 vector cases.
These pages are built from commit 6917c37, whose library code and vectors' counts are the same as the measured commit's.
By module
| Module | Public types run | Lines covered | No executable lines | Equality only | Own-tested |
|---|---|---|---|---|---|
NanoQL |
35/35 | 905/1,025 (88.3%) | 11 | 0 | 0 |
NanoQL.Coupons |
83/83 | 4,693/5,117 (91.7%) | 12 | 0 | 0 |
NanoQL.Currencies |
112/112 | 432/444 (97.3%) | 0 | 0 | 0 |
NanoQL.Experimental |
405/405 | 14,196/16,388 (86.6%) | 48 | 1 | 5 |
NanoQL.Extensions |
45/45 | 1,894/4,705 (40.3%) | 7 | 0 | 22 |
NanoQL.Indexes |
129/129 | 2,236/2,263 (98.8%) | 1 | 0 | 0 |
NanoQL.Instruments |
149/149 | 5,386/5,841 (92.2%) | 25 | 1 | 0 |
NanoQL.Methods |
139/139 | 5,804/6,210 (93.5%) | 24 | 0 | 0 |
NanoQL.Models |
194/194 | 9,995/11,005 (90.8%) | 23 | 0 | 0 |
NanoQL.Numerics |
336/337 | 10,371/11,176 (92.8%) | 42 | 1 | 0 |
NanoQL.PricingEngines |
275/275 | 15,429/17,149 (90.0%) | 21 | 0 | 0 |
NanoQL.Processes |
27/27 | 1,349/1,516 (89.0%) | 3 | 0 | 0 |
NanoQL.Quotes |
10/10 | 130/131 (99.2%) | 2 | 0 | 0 |
NanoQL.TermStructures |
240/240 | 9,311/9,997 (93.1%) | 22 | 0 | 1 |
NanoQL.Time |
83/83 | 7,163/7,381 (97.0%) | 50 | 0 | 0 |
NanoQL.Utilities |
3/3 | 108/115 (93.9%) | 0 | 0 | 0 |
NanoQL
- No executable lines: Compounding (enum), ExchangeRateType (enum), ExerciseType (enum), MoneyConversionType (enum), OptionType (enum), PositionType (enum), IntervalPriceType (enum), PriceType (enum), ProtectionSide (enum), StochasticProcess1DDiscretization (class), StochasticProcessDiscretization (class)
NanoQL.Coupons
- No executable lines: GFunctionFactoryYieldCurveModel (enum), NumericHaganPricerIntegrationLimits (record), VanillaOptionPricer (class), BlackIborCouponPricerTimingAdjustment (enum), IMeanRevertingPricer (interface), DurationType (enum), EquityCashFlowPricer (class), InflationCouponPricer (class), LinearTsrPricerSettingsStrategy (enum), RateAveragingType (enum), ReplicationType (enum), StubIndexSelectionConvention (enum)
NanoQL.Experimental
- No executable lines: IDiscretizedDoubleBarrierAsset (interface), TenorOptionletVTSCorrelationStructure (class), CallableBondResults (record), CatBondResults (record), CatRisk (class), EventPaymentOffset (class), PricingErrorLevel (enum), EnergyCommodityDeliverySchedule (enum), EnergyCommodityPaymentSchedule (enum), EnergyCommodityQuantityPeriodicity (enum), EnergyDailyPosition (record), PaymentTermEventType (enum), QuantityConversionType (enum), UnitOfMeasureType (enum), UnitOfMeasureConversionType (enum), AtomicDefaultType (enum), CDOResults (record), CdsOptionResults (record), IBaseCorrelationModel (interface), LossDistResult (record), RestructuringType (enum), RiskyAssetSwapResults (record), Seniority (enum), SyntheticCDOResults (record), FxResetPricer (class), MtMCrossCurrencyBasisSwapType (enum), FdmVPPStepConditionMesher (record), FdmVPPStepConditionParams (record struct), InterpolatedYoYInflationOptionletStripper (class), YoYOptionletStripper (class), GaussianCopulaPolicyInitTraits (record struct), HybridSimulatedAnnealingLocalOptimizeScheme (enum), HybridSimulatedAnnealingResetScheme (enum), IAnnealingProbability (interface), IAnnealingReannealing (interface), IAnnealingSampler (interface), IAnnealingTemperature (interface), ICopulaPolicy (interface), IRandomWalkDistribution (interface), LatentModelIntegrationType (enum), MultidimIntegrand (delegate), MultidimVectorIntegrand (delegate), TCopulaPolicyInitTraits (record struct), PathPayoff (class), ExtendedBlackScholesMertonProcessDiscretization (enum), ExtendedOrnsteinUhlenbeckProcessDiscretization (enum), IrregularSettlementType (enum), ExtendedBlackVarianceSurfaceExtrapolation (enum)
- Equality only: EnergyCommodityResults (equality-tested: tests/NanoQL.Tests/Conventions/CommodityConventionTests.cs)
- Own-tested: AdaptiveInertia (own-tested: Divergences/ParticleSwarmInertiaTests.cs), ClubsTopology (own-tested: Divergences/ParticleSwarmTopologyTests.cs), DecreasingInertia (own-tested: Divergences/ParticleSwarmInertiaTests.cs), GlobalTopology (own-tested: Divergences/ParticleSwarmTopologyTests.cs), KNeighbors (own-tested: Divergences/ParticleSwarmTopologyTests.cs)
NanoQL.Extensions
- No executable lines: ConventionKind (enum), ConventionOrigin (record), ForeignAttribute (record), IborFamilyUnit (record), IborIndexStyle (enum), AmortizingMethod (enum), IPrepayModel (interface)
- Own-tested: BespokeCalendarRecord (own-tested: Extensions/ConventionsXmlTests.cs), CalendarRecord (own-tested: Extensions/ConventionsXmlTests.cs), CommodityIndexRecord (own-tested: Extensions/CommoditySetTests.cs), CommodityTypeRecord (own-tested: Extensions/CommoditySetTests.cs), ConventionProvenance (own-tested: Extensions/ConventionSetTests.cs), ConventionRecords (own-tested: Extensions/ConventionRecordsTests.cs), CrossCurrencyBasisSwapConvention (own-tested: Extensions/InstrumentSetTests.cs), CrossCurrencyBasisSwapConventionRecord (own-tested: Extensions/InstrumentSetTests.cs), CrossCurrencySwapConvention (own-tested: Extensions/InstrumentSetTests.cs), CrossCurrencySwapConventionRecord (own-tested: Extensions/InstrumentSetTests.cs), DayCounterRecord (own-tested: Extensions/ConventionsXmlTests.cs), FxSwapConvention (own-tested: Extensions/InstrumentSetTests.cs), FxSwapConventionRecord (own-tested: Extensions/InstrumentSetTests.cs), JointCalendarRecord (own-tested: Extensions/ConventionsXmlTests.cs), OvernightIndexedSwapIndexRecord (own-tested: Extensions/IndexSetTests.cs), PaymentTermRecord (own-tested: Extensions/CommoditySetTests.cs), ScheduleConvention (own-tested: Extensions/InstrumentSetTests.cs), ScheduleConventionRecord (own-tested: Extensions/InstrumentSetTests.cs), YearOnYearInflationSwapConvention (own-tested: Extensions/InstrumentSetTests.cs), YearOnYearInflationSwapConventionRecord (own-tested: Extensions/InstrumentSetTests.cs), ZeroCouponInflationSwapConvention (own-tested: Extensions/InstrumentSetTests.cs), ZeroCouponInflationSwapConventionRecord (own-tested: Extensions/InstrumentSetTests.cs)
NanoQL.Indexes
- No executable lines: CPIInterpolationType (enum)
NanoQL.Instruments
- No executable lines: AverageType (enum), BarrierType (enum), BondPriceType (enum), BondResults (record), CallabilityType (enum), CapFloorType (enum), Claim (class), CreditDefaultSwapPricingModel (enum), CreditDefaultSwapResults (record), DoubleBarrierType (enum), ForwardResults (record), ForwardRateAgreementResults (record), FuturesType (enum), FxForwardResults (record), YoYInflationCapFloorType (enum), MultiAssetOptionResults (record), OneAssetOptionResults (record), PartialBarrierRange (enum), PerpetualFuturesFundingType (enum), PerpetualFuturesPayoffType (enum), SwapType (enum), SettlementMethod (enum), SettlementType (enum), SwaptionPriceType (enum), VarianceSwapResults (record)
- Equality only: SwapResults (equality-tested: tests/NanoQL.Tests/Conventions/ResultsEqualityTests.cs)
NanoQL.Methods
- No executable lines: BoundaryConditionSide (enum), BoundaryCondition (class), IFdmScheme (interface), FdmSquareRootFwdOpTransformationType (enum), NumericalDifferentiationScheme (enum), ImplicitEulerSchemeSolverType (enum), TrBDF2SchemeSolverType (enum), FdmSchemeDescFdmSchemeType (enum), FdmSolverDesc (record), StepCondition (class), TridiagonalOperatorTimeSetter (class), FdmHestonGreensFctAlgorithm (enum), FdmInnerValueCalculator (class), IBinomialTree (interface), ExerciseStrategy (class), GenericLSRegressionResults (record), IEarlyExercisePathPricer (interface), IPathGenerator (interface), LsmBasisSystemPolynomialType (enum), IMcTraits (interface), NodeData (class), GenericEarlyExerciseOptimizationResults (record), IParametricExercise (interface), Sample (record struct)
NanoQL.Models
- No executable lines: BlackCalibrationHelperCalibrationErrorType (enum), HestonSLVFDMModelLogEntry (record), HestonSLVFokkerPlanckFdmParams (record), SobolBrownianGeneratorBaseOrdering (enum), MarketModelExerciseValue (class), MarketModelNodeDataProvider (class), ConstrainedEvolver (class), HistoricalForwardRatesAnalysis (class), HistoricalForwardRatesAnalysisResults (record), HistoricalRatesAnalysisResults (record), MarketModelMultiProduct (class), MarketModelMultiProductCashFlow (struct), MarketModelPathwiseMultiProduct (class), AbcdCoefficients (record struct), VolatilityBumpInstrumentJacobianCap (record struct), VolatilityBumpInstrumentJacobianSwaption (record struct), IAffineModel (interface), ITermStructureConsistentModel (interface), MarkovFunctionalCustomSmileFactory (class), MarkovFunctionalCustomSmileSection (class), MarkovFunctionalModelSettingsAdjustments (enum), Garch11Calibration (record), Garch11Mode (enum)
NanoQL.Numerics
- No executable lines: FilonIntegralType (enum), IntegrationResult (record struct), ChebyshevInterpolationPointsType (enum), CubicInterpolationBoundaryCondition (enum), CubicInterpolationDerivativeApprox (enum), IInterpolator2D (interface), MixedInterpolationBehavior (enum), IXabrInterpolation (interface), KernelFunction (class), BiCGStabResult (record struct), GMRESResult (record struct), QRDecompositionResult (record), SalvagingAlgorithmType (enum), TqrEigenDecompositionEigenVectorCalculation (enum), TqrEigenDecompositionShiftStrategy (enum), ParametersTransformation (class), DifferentialEvolutionCrossoverType (enum), DifferentialEvolutionStrategy (enum), EndCriteriaCheck (record struct), EndCriteriaType (enum), NonLinearLeastSquareResults (record), LineSearchBasedMethodState (class), IInverseCumulative (interface), IRsg (interface), ISeedableRsg (interface), LatticeRuleType (enum), IInt32Rng (interface), IRng (interface), ISeedableRng (interface), IRngTraits (interface), SobolRsgDirectionIntegers (enum), IInt64Rng (interface), RoundingType (enum), IDerivativeSolver1DFunction (interface), ISolver1DFunction (interface), Solver1DBracket (record), ISecondDerivativeSolver1DFunction (interface), IConvergenceSteps (interface), ISummaryStatistics (interface), IEmpiricalStatistics (interface), IStatistics (interface), HistogramAlgorithm (enum)
- Equality only: ProblemResults (equality-tested: tests/NanoQL.Tests/Conventions/ProblemResultsEqualityTests.cs)
NanoQL.PricingEngines
- No executable lines: IDiscretizedBarrierAsset (interface), OperatorSplittingSpreadEngineOrder (enum), IsdaCdsEngineAccrualBias (enum), IsdaCdsEngineForwardsInCouponPeriod (enum), IsdaCdsEngineNumericalFix (enum), DiscountingPerpetualFuturesEngineInterpolationType (enum), BasketGeneratingEngineCalibrationBasketType (enum), CashAnnuityModel (enum), Gaussian1dFloatFloatSwaptionEngineProbabilities (enum), Gaussian1dNonstandardSwaptionEngineProbabilities (enum), Gaussian1dSwaptionEngineProbabilities (enum), AnalyticHestonEngineComplexLogFormula (enum), AnalyticPTDHestonEngineComplexLogFormula (enum), AnalyticRoughHestonEngineApproximation (enum), CashDividendEuropeanEngineCashDividendModel (enum), FdBlackScholesVanillaEngineCashDividendModel (enum), HestonExpansion (class), HestonExpansionEngineHestonExpansionFormula (enum), QdFpAmericanEngineFixedPointEquation (enum), QdFpIterationScheme (class), QdPlusAmericanEngineSolverType (enum)
NanoQL.Processes
- No executable lines: GJRGARCHProcessDiscretization (enum), HestonProcessDiscretization (enum), HybridHestonHullWhiteProcessDiscretization (enum)
NanoQL.Quotes
- No executable lines: DeltaVolQuoteAtmType (enum), DeltaVolQuoteDeltaType (enum)
NanoQL.TermStructures
- No executable lines: IBootstrapHelper (interface), PillarChoice (enum), AdditionalBootstrapVariables (class), IInterpolatedCurve (interface), IYoYInflationTraits (interface), IZeroInflationTraits (interface), IBootstrap (interface), IBootstrapState (interface), ILocalInterpolator (interface), AndreasenHugeCalibrationError (record struct), AndreasenHugeVolatilityInterplCalibrationType (enum), AndreasenHugeVolatilityInterplInterpolationType (enum), BlackVarianceSurfaceExtrapolation (enum), BlackVolTimeExtrapolationType (enum), BlackVolatilitySurfaceDeltaSmileInterpolationMethod (enum), FixedLocalVolSurfaceExtrapolation (enum), StrippedOptionletBase (class), CmsMarketCalibrationCalibrationType (enum), CmsMarketCalibrationResults (record), VolatilityType (enum), IZabrEvaluation (interface), IYieldTraits (interface)
- Own-tested: IDefaultProbabilityTraits (own-tested: Conventions/AffineCreditCurveConventionTests.cs)
NanoQL.Time
- No executable lines: ASXMonth (enum), BusinessDayConvention (enum), ArgentinaMarket (enum), AustraliaMarket (enum), AustriaMarket (enum), BrazilMarket (enum), CanadaMarket (enum), ChileMarket (enum), ChinaMarket (enum), CroatiaMarket (enum), CzechRepublicMarket (enum), FranceMarket (enum), GermanyMarket (enum), HongKongMarket (enum), IcelandMarket (enum), IndiaMarket (enum), IndonesiaMarket (enum), IsraelMarket (enum), ItalyMarket (enum), JointCalendarRule (enum), MalaysiaMarket (enum), MaltaMarket (enum), MexicoMarket (enum), MontenegroMarket (enum), NewZealandMarket (enum), NorthMacedoniaMarket (enum), PhilippinesMarket (enum), PolandMarket (enum), RomaniaMarket (enum), RussiaMarket (enum), SaudiArabiaMarket (enum), SerbiaMarket (enum), SingaporeMarket (enum), SlovakiaMarket (enum), SloveniaMarket (enum), SouthKoreaMarket (enum), TaiwanMarket (enum), UkraineMarket (enum), UnitedKingdomMarket (enum), UnitedStatesMarket (enum), UzbekistanMarket (enum), Month (enum), DateGenerationRule (enum), Actual365FixedConvention (enum), ActualActualConvention (enum), Thirty360Convention (enum), Frequency (enum), IMMMonth (enum), TimeUnit (enum), Weekday (enum)