Header menu logo FSharp.Finance.Personal

Unit-Test Outputs

Each of the following categories contains a number of unit-test outputs along with the parameters used and some statistics. Click on a category to expand it.

Note: load any schedule table into Excel by following these steps:

  1. Click Data > From Web
  2. Paste the URL of the schedule page and click OK
  3. In the Navigator dialog, select the relevant table from HTML tables
  4. Click Load
ActualPayment
TestDescription
ActualPaymentTest000Standard schedule with month-end payments from 4 days and paid off on time
ActualPaymentTest001Standard schedule with month-end payments from 32 days and paid off on time
ActualPaymentTest002Standard schedule with mid-monthly payments from 14 days and paid off on time
ActualPaymentTest003Made 2 payments on early repayment, then one single payment after the full balance is overdue
ActualPaymentTest004Made 2 payments on early repayment, then one single overpayment after the full balance is overdue
ActualPaymentTest005Made 2 payments on early repayment, then one single overpayment after the full balance is overdue, and this is then refunded
ActualPaymentTest0060L-day loan
ActualPaymentTest007Check that charge for late payment is not applied on scheduled payment date when payment has not yet been made
ActualPaymentTest008Made 2 payments on early repayment, then one single overpayment after the full balance is overdue, and this is then refunded (with interest due to the customer on the negative balance)
ActualPaymentTest009Underpayment made should show scheduled payment as net effect while in grace period
ActualPaymentTest010Underpayment made should show scheduled payment as underpayment after grace period has expired
ActualPaymentTest011Settled loan
ActualPaymentTest012Scheduled payment total can be less than principal when early actual payments are made but net effect is never less
ActualPaymentTest013Something TH spotted
ActualPaymentTest014Large overpayment should not result in runaway fee rebates
ActualPaymentTest015Large overpayment should not result in runaway fee rebates (2 actual payments)
ActualPaymentTest016Large overpayment should not result in runaway fee rebates (3 actual payments)
ActualPaymentTest017Pending payments should only apply if not timed out
ActualPaymentTest018Pending payments should only apply if not timed out
ActualPaymentTest019Generated settlement figure is correct
ActualPaymentTest020Late payment
ActualPaymentTestExtra000Simple schedule fully settled on time
ActualPaymentTestExtra001Schedule with a payment on day 0L, seen from a date before scheduled payments are due to start
ActualPaymentTestExtra002Schedule with a payment on day 0L, then all scheduled payments missed, seen from a date after the original settlement date, showing the effect of projected small payments until paid off
ActualPaymentTestExtra003never settles down
ActualPaymentTestExtra004large negative payment
ActualPaymentTestExtra005Schedule with a payment on day 0L, seen from a date after the first unpaid scheduled payment, but within late-payment grace period
ActualPaymentTestExtra006Schedule with a payment on day 0L, then all scheduled payments missed, then loan rolled over (fee rolled over)
ActualPaymentTestExtra007Schedule with a payment on day 0L, then all scheduled payments missed, then loan rolled over (fee not rolled over)
AprUnitedKingdom
TestDescription
AmortisationNoInterestCap_p6_fp23_BeforeAprJumpAmortisation schedule, 6 payments, first payment on day 23, using the add-on interest method with no interest cap (just before APR jump)
AmortisationNoInterestCap_p6_fp24_AfterAprJumpAmortisation schedule, 6 payments, first payment on day 24, using the add-on interest method with no interest cap (just after APR jump)
Amortisation_p6_fp23_BeforeAprJumpAmortisation schedule, 6 payments, first payment on day 23, using the add-on interest method (just before APR jump)
Amortisation_p6_fp24_AfterAprJumpAmortisation schedule, 6 payments, first payment on day 24, using the add-on interest method (just after APR jump)
AprSpreadsheetAddOnRange of APRs for different payment counts and first payment days, using the add-on interest method
AprSpreadsheetAddOnNoInterestCapRange of APRs for different payment counts and first payment days, using the add-on interest method with no interest cap
AprSpreadsheetSimpleRange of APRs for different payment counts and first payment days, using the simple interest method
AprSpreadsheetSimpleNoInterestCapRange of APRs for different payment counts and first payment days, using the simple interest method with no interest cap
AprUkTest_fp03_pc4UK APR test amortisation schedule, first payment day 3, payment count 4
AprUkTest_fp03_pc5UK APR test amortisation schedule, first payment day 3, payment count 5
AprUkTest_fp03_pc6UK APR test amortisation schedule, first payment day 3, payment count 6
AprUkTest_fp04_pc4UK APR test amortisation schedule, first payment day 4, payment count 4
AprUkTest_fp04_pc5UK APR test amortisation schedule, first payment day 4, payment count 5
AprUkTest_fp04_pc6UK APR test amortisation schedule, first payment day 4, payment count 6
AprUkTest_fp05_pc4UK APR test amortisation schedule, first payment day 5, payment count 4
AprUkTest_fp05_pc5UK APR test amortisation schedule, first payment day 5, payment count 5
AprUkTest_fp05_pc6UK APR test amortisation schedule, first payment day 5, payment count 6
AprUkTest_fp06_pc4UK APR test amortisation schedule, first payment day 6, payment count 4
AprUkTest_fp06_pc5UK APR test amortisation schedule, first payment day 6, payment count 5
AprUkTest_fp06_pc6UK APR test amortisation schedule, first payment day 6, payment count 6
AprUkTest_fp07_pc4UK APR test amortisation schedule, first payment day 7, payment count 4
AprUkTest_fp07_pc5UK APR test amortisation schedule, first payment day 7, payment count 5
AprUkTest_fp07_pc6UK APR test amortisation schedule, first payment day 7, payment count 6
AprUkTest_fp08_pc4UK APR test amortisation schedule, first payment day 8, payment count 4
AprUkTest_fp08_pc5UK APR test amortisation schedule, first payment day 8, payment count 5
AprUkTest_fp08_pc6UK APR test amortisation schedule, first payment day 8, payment count 6
AprUkTest_fp09_pc4UK APR test amortisation schedule, first payment day 9, payment count 4
AprUkTest_fp09_pc5UK APR test amortisation schedule, first payment day 9, payment count 5
AprUkTest_fp09_pc6UK APR test amortisation schedule, first payment day 9, payment count 6
AprUkTest_fp10_pc4UK APR test amortisation schedule, first payment day 10, payment count 4
AprUkTest_fp10_pc5UK APR test amortisation schedule, first payment day 10, payment count 5
AprUkTest_fp10_pc6UK APR test amortisation schedule, first payment day 10, payment count 6
AprUkTest_fp11_pc4UK APR test amortisation schedule, first payment day 11, payment count 4
AprUkTest_fp11_pc5UK APR test amortisation schedule, first payment day 11, payment count 5
AprUkTest_fp11_pc6UK APR test amortisation schedule, first payment day 11, payment count 6
AprUkTest_fp12_pc4UK APR test amortisation schedule, first payment day 12, payment count 4
AprUkTest_fp12_pc5UK APR test amortisation schedule, first payment day 12, payment count 5
AprUkTest_fp12_pc6UK APR test amortisation schedule, first payment day 12, payment count 6
AprUkTest_fp13_pc4UK APR test amortisation schedule, first payment day 13, payment count 4
AprUkTest_fp13_pc5UK APR test amortisation schedule, first payment day 13, payment count 5
AprUkTest_fp13_pc6UK APR test amortisation schedule, first payment day 13, payment count 6
AprUkTest_fp14_pc4UK APR test amortisation schedule, first payment day 14, payment count 4
AprUkTest_fp14_pc5UK APR test amortisation schedule, first payment day 14, payment count 5
AprUkTest_fp14_pc6UK APR test amortisation schedule, first payment day 14, payment count 6
AprUkTest_fp15_pc4UK APR test amortisation schedule, first payment day 15, payment count 4
AprUkTest_fp15_pc5UK APR test amortisation schedule, first payment day 15, payment count 5
AprUkTest_fp15_pc6UK APR test amortisation schedule, first payment day 15, payment count 6
AprUkTest_fp16_pc4UK APR test amortisation schedule, first payment day 16, payment count 4
AprUkTest_fp16_pc5UK APR test amortisation schedule, first payment day 16, payment count 5
AprUkTest_fp16_pc6UK APR test amortisation schedule, first payment day 16, payment count 6
AprUkTest_fp17_pc4UK APR test amortisation schedule, first payment day 17, payment count 4
AprUkTest_fp17_pc5UK APR test amortisation schedule, first payment day 17, payment count 5
AprUkTest_fp17_pc6UK APR test amortisation schedule, first payment day 17, payment count 6
AprUkTest_fp18_pc4UK APR test amortisation schedule, first payment day 18, payment count 4
AprUkTest_fp18_pc5UK APR test amortisation schedule, first payment day 18, payment count 5
AprUkTest_fp18_pc6UK APR test amortisation schedule, first payment day 18, payment count 6
AprUkTest_fp19_pc4UK APR test amortisation schedule, first payment day 19, payment count 4
AprUkTest_fp19_pc5UK APR test amortisation schedule, first payment day 19, payment count 5
AprUkTest_fp19_pc6UK APR test amortisation schedule, first payment day 19, payment count 6
AprUkTest_fp20_pc4UK APR test amortisation schedule, first payment day 20, payment count 4
AprUkTest_fp20_pc5UK APR test amortisation schedule, first payment day 20, payment count 5
AprUkTest_fp20_pc6UK APR test amortisation schedule, first payment day 20, payment count 6
AprUkTest_fp21_pc4UK APR test amortisation schedule, first payment day 21, payment count 4
AprUkTest_fp21_pc5UK APR test amortisation schedule, first payment day 21, payment count 5
AprUkTest_fp21_pc6UK APR test amortisation schedule, first payment day 21, payment count 6
AprUkTest_fp22_pc4UK APR test amortisation schedule, first payment day 22, payment count 4
AprUkTest_fp22_pc5UK APR test amortisation schedule, first payment day 22, payment count 5
AprUkTest_fp22_pc6UK APR test amortisation schedule, first payment day 22, payment count 6
AprUkTest_fp23_pc4UK APR test amortisation schedule, first payment day 23, payment count 4
AprUkTest_fp23_pc5UK APR test amortisation schedule, first payment day 23, payment count 5
AprUkTest_fp23_pc6UK APR test amortisation schedule, first payment day 23, payment count 6
AprUkTest_fp24_pc4UK APR test amortisation schedule, first payment day 24, payment count 4
AprUkTest_fp24_pc5UK APR test amortisation schedule, first payment day 24, payment count 5
AprUkTest_fp24_pc6UK APR test amortisation schedule, first payment day 24, payment count 6
AprUkTest_fp25_pc4UK APR test amortisation schedule, first payment day 25, payment count 4
AprUkTest_fp25_pc5UK APR test amortisation schedule, first payment day 25, payment count 5
AprUkTest_fp25_pc6UK APR test amortisation schedule, first payment day 25, payment count 6
AprUkTest_fp26_pc4UK APR test amortisation schedule, first payment day 26, payment count 4
AprUkTest_fp26_pc5UK APR test amortisation schedule, first payment day 26, payment count 5
AprUkTest_fp26_pc6UK APR test amortisation schedule, first payment day 26, payment count 6
AprUkTest_fp27_pc4UK APR test amortisation schedule, first payment day 27, payment count 4
AprUkTest_fp27_pc5UK APR test amortisation schedule, first payment day 27, payment count 5
AprUkTest_fp27_pc6UK APR test amortisation schedule, first payment day 27, payment count 6
AprUkTest_fp28_pc4UK APR test amortisation schedule, first payment day 28, payment count 4
AprUkTest_fp28_pc5UK APR test amortisation schedule, first payment day 28, payment count 5
AprUkTest_fp28_pc6UK APR test amortisation schedule, first payment day 28, payment count 6
AprUkTest_fp29_pc4UK APR test amortisation schedule, first payment day 29, payment count 4
AprUkTest_fp29_pc5UK APR test amortisation schedule, first payment day 29, payment count 5
AprUkTest_fp29_pc6UK APR test amortisation schedule, first payment day 29, payment count 6
AprUkTest_fp30_pc4UK APR test amortisation schedule, first payment day 30, payment count 4
AprUkTest_fp30_pc5UK APR test amortisation schedule, first payment day 30, payment count 5
AprUkTest_fp30_pc6UK APR test amortisation schedule, first payment day 30, payment count 6
AprUkTest_fp31_pc4UK APR test amortisation schedule, first payment day 31, payment count 4
AprUkTest_fp31_pc5UK APR test amortisation schedule, first payment day 31, payment count 5
AprUkTest_fp31_pc6UK APR test amortisation schedule, first payment day 31, payment count 6
AprUkTest_fp32_pc4UK APR test amortisation schedule, first payment day 32, payment count 4
AprUkTest_fp32_pc5UK APR test amortisation schedule, first payment day 32, payment count 5
AprUkTest_fp32_pc6UK APR test amortisation schedule, first payment day 32, payment count 6
Charges
TestDescription
ChargesTest000One charge type per day
ChargesTest001One charge type per schedule
ChargesTest002All charges applied
Compliance
TestDescription
ComplianceTest000Repayments made on time
ComplianceTest001Repayments made early
ComplianceTest002Full repayment made on repayment 3
ComplianceTest003Repayments made late - 3 and 4
ComplianceTest004Repayments made on time
ComplianceTest005Early repayment
ComplianceTest006Late repayment
ComplianceTest007Repayments made on time - no interest cap
ComplianceTest008Early repayment - no interest cap
ComplianceTest009Late repayment - no interest cap
ComplianceTest010Repayments made on time - 0.8% daily interest cap
ComplianceTest011Early repayment - 0.8% daily interest cap
ComplianceTest012Late repayment - 0.8% daily interest cap
ComplianceTest013Repayments made on time - 100% total interest cap - autogenerated schedule
ComplianceTest014Early repayment - 100% total interest cap - autogenerated schedule
ComplianceTest015Late repayment - 100% total interest cap - autogenerated schedule
ComplianceTest016Repayments made on time - 100% total interest cap - custom schedule
ComplianceTest017Early repayment - 100% total interest cap - custom schedule
ComplianceTest018Late repayment - 100% total interest cap - custom schedule
ComplianceTest019Total repayable on interest-first loan of €317.26 with repayments starting on day 19 and total loan length 110 days
ComplianceTest020Total repayable on interest-first loan of £300 with repayments starting on day 19 and total loan length 110 days
ComplianceTest021Total repayable on interest-first loan of £250 with repayments starting on day 19 and total loan length 110 days
ComplianceTest022Add-on-interest loan of $1000 with payments starting after one month and 4 payments in total, for documentation purposes
ComplianceTest023Simple-interest loan of $1000 with payments starting after one month and 4 payments in total, for documentation purposes
EdgeCase
TestDescription
EdgeCaseTest000Quote returning nothing
EdgeCaseTest001Quote returning nothing
EdgeCaseTest002Quote returning nothing
EdgeCaseTest003Quote returning nothing
EdgeCaseTest004Only one insufficient funds charge per day
EdgeCaseTest005Quote returning nothing
EdgeCaseTest006Quote returning nothing
EdgeCaseTest007Quote returning nothing
EdgeCaseTest008Partial write-off
EdgeCaseTest009Negative principal balance accruing interest
Illustrative
TestDescription
IllustrativeTest000Borrowing £400 over 4 months with the loan being taken on 01/03/2025 and the first repayment date/day being 31/03/2025 (30 days) - all paid on time
IllustrativeTest001(no description)
IllustrativeTest002(no description)
IllustrativeTest003(no description)
Interest
TestDescription
Cca2004Test006Initial statement (simple interest) matching total interest amount of £1459.36
Cca2004Test007Initial statement (simple interest, autogenerated payment amounts) matching level payment of £134.57
Cca2004Test008CCA 2004 rebate example using library method (simple interest)
InterestCapTest000Total interest in amortised schedule does not exceed interest cap
InterestCapTest001Total interest in amortised schedule does not exceed interest cap, using unrounded percentages
InterestFirst
TestDescription
InterestFirstTest000Simple interest method initial schedule
InterestFirstTest001Simple interest method
InterestFirstTest002Add-on interest method initial schedule
InterestFirstTest003Add-on interest method
InterestFirstTest004Add-on interest method with early repayment
InterestFirstTest005Add-on interest method with normal but very early repayments
InterestFirstTest006Add-on interest method with normal but with erratic payment timings
InterestFirstTest007Add-on interest method with normal but with erratic payment timings expecting settlement figure on final day
InterestFirstTest008Add-on interest method with normal repayments
InterestFirstTest009Add-on interest method with single early repayment
InterestFirstTest010Add-on interest method with single early repayment then a quote one day later
InterestFirstTest011Add-on interest method with small loan and massive payment leading to a refund needed
InterestFirstTest012Realistic example 501ac58e62a5
InterestFirstTest013Realistic example 0004ffd74fbb
InterestFirstTest015Add-on interest method with big early repayment followed by tiny overpayment
InterestFirstTest016Add-on interest method with interest rate under the daily cap should have a lower initial interest balance than the cap (no cap)
InterestFirstTest017Add-on interest method with interest rate under the daily cap should have a lower initial interest balance than the cap (cap in place)
InterestFirstTest018Realistic test 6045bd0ffc0f with correction on final day
InterestFirstTest019Realistic test 6045bd0ffc0f
InterestFirstTest020Realistic test 6045bd123363 with correction on final day
InterestFirstTest021Realistic test 6045bd123363
InterestFirstTest022Realistic test 0004ffd74fbbn
InterestFirstTest023Realistic test 0003ff008ae5
InterestFirstTest024Realistic test 0003ff00bffb with actuarial method
InterestFirstTest025Realistic test 0003ff00bffb with add-on method
InterestFirstTests014Realistic example 0004ffd74fbb with overpayment
PaymentSchedule
TestDescription
PaymentScheduleTest001If there are no other payments, level payment should equal final payment
PaymentScheduleTest002Term must not exceed maximum duration
PaymentScheduleTest003Term must not exceed maximum duration
PaymentScheduleTest004Payment count must not be exceeded
PaymentScheduleTest005(no description)
PaymentScheduleTest_Biweekly_1200_fp08_r11$1200 with short first period
PaymentScheduleTest_Biweekly_1200_fp14_r11$1200 with first period equal to unit-period length
PaymentScheduleTest_Biweekly_1200_fp15_r11$1200 with long first period
PaymentScheduleTest_Monthly_0100_fp04_r5£0100 with 04 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_0100_fp08_r5£0100 with 08 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_0100_fp12_r4£0100 with 12 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0100_fp16_r4£0100 with 16 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0100_fp20_r4£0100 with 20 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0100_fp24_r4£0100 with 24 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0100_fp28_r4£0100 with 28 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0100_fp32_r4£0100 with 32 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0300_fp04_r5£0300 with 04 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_0300_fp08_r5£0300 with 08 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_0300_fp12_r4£0300 with 12 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0300_fp16_r4£0300 with 16 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0300_fp20_r4£0300 with 20 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0300_fp24_r4£0300 with 24 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0300_fp28_r4£0300 with 28 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0300_fp32_r4£0300 with 32 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0500_fp04_r5£0500 with 04 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_0500_fp08_r5£0500 with 08 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_0500_fp12_r4£0500 with 12 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0500_fp16_r4£0500 with 16 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0500_fp20_r4£0500 with 20 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0500_fp24_r4£0500 with 24 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0500_fp28_r4£0500 with 28 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0500_fp32_r4£0500 with 32 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0700_fp04_r5£0700 with 04 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_0700_fp08_r5£0700 with 08 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_0700_fp12_r4£0700 with 12 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0700_fp16_r4£0700 with 16 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0700_fp20_r4£0700 with 20 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0700_fp24_r4£0700 with 24 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0700_fp28_r4£0700 with 28 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0700_fp32_r4£0700 with 32 days to first payment and 4 repayments
PaymentScheduleTest_Monthly_0900_fp04_r6£0900 with 04 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_0900_fp08_r6£0900 with 08 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_0900_fp12_r6£0900 with 12 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_0900_fp16_r6£0900 with 16 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_0900_fp20_r5£0900 with 20 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_0900_fp24_r5£0900 with 24 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_0900_fp28_r5£0900 with 28 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_0900_fp32_r5£0900 with 32 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_1100_fp04_r6£1100 with 04 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1100_fp08_r6£1100 with 08 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1100_fp12_r6£1100 with 12 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1100_fp16_r6£1100 with 16 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1100_fp20_r5£1100 with 20 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_1100_fp24_r5£1100 with 24 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_1100_fp28_r5£1100 with 28 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_1100_fp32_r5£1100 with 32 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_1300_fp04_r6£1300 with 04 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1300_fp08_r6£1300 with 08 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1300_fp12_r6£1300 with 12 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1300_fp16_r6£1300 with 16 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1300_fp20_r6£1300 with 20 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1300_fp24_r6£1300 with 24 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1300_fp28_r6£1300 with 28 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1300_fp32_r5£1300 with 32 days to first payment and 5 repayments
PaymentScheduleTest_Monthly_1500_fp04_r6£1500 with 04 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1500_fp08_r6£1500 with 08 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1500_fp12_r6£1500 with 12 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1500_fp16_r6£1500 with 16 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1500_fp20_r6£1500 with 20 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1500_fp24_r6£1500 with 24 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1500_fp28_r6£1500 with 28 days to first payment and 6 repayments
PaymentScheduleTest_Monthly_1500_fp32_r5£1500 with 32 days to first payment and 5 repayments
PromotionalRates
TestDescription
PromotionalRatesTest000Baseline with no promotional rates
PromotionalRatesTest001Interest-free October should reduce total interest by 31 days
PromotionalRatesTest002Low-interest December should reduce all interest during December
PromotionalRatesTest004Mortgage quote with a five-year fixed interest deal and a mortgage fee added to the loan
Quote
TestDescription
QuoteTest000Settlement falling on a scheduled payment date
QuoteTest001Settlement not falling on a scheduled payment date
QuoteTest002Settlement not falling on a scheduled payment date but having an actual payment already made on the same day
QuoteTest003Settlement within interest grace period should not accrue interest
QuoteTest004Settlement just outside interest grace period should accrue interest
QuoteTest005Settlement when fee is due in full
QuoteTest006Get next scheduled payment
QuoteTest007Get payment to cover all overdue amounts
QuoteTest008Verified example
QuoteTest009Verified example
QuoteTest010When settling a loan with 3-day late-payment grace period, scheduled payments within the grace period should be treated as missed payments, otherwise the quote balance is too low
QuoteTest011Settlement figure should not be lower than principal
QuoteTest012Loan is settled the day before the last scheduled payment is due
QuoteTest013Loan is settled on the same day as the last scheduled payment is due (but which has not yet been made)
QuoteTest014Loan is settled the day after the final schedule payment was due (and which was not made) but is within grace period so does not incur a late-payment fee
QuoteTest015Loan is settled four days after the final schedule payment was due (and which was not made) and is outside grace period so incurs a late-payment fee
QuoteTest016Loan is settled the day before an overpayment (note: if looked at from a later date the overpayment will cause a refund to be due)
QuoteTest017Loan is settled the same day as an overpayment
QuoteTest018Loan is settled the day after an overpayment
QuoteTest019Loan refund due for a long time, showing interest owed back
QuoteTest020Settlement quote on the same day a loan is closed has 0L payment and 0L principal and interest components
QuoteTest021Generated settlement figure is correct
QuoteTest022Generated settlement figure is correct when an insufficient funds penalty is charged for a failed payment
QuoteTest023Curveball
QuoteTest024Negative interest should accrue to interest balance not principal balance
QuoteTest025Quote with long period of negative interest accruing
Settlement
TestDescription
SettlementTest001Final payment due on Friday: what would I pay if I paid it today?
SettlementTest002Final payment due on Friday: what would I pay if I paid it one week too late?
SettlementTest003Final payment due on Friday: what if I pay £50 on Friday and the rest next week one week too late?
UnitPeriodConfig
TestDescription
UnitPeriodConfigTest000Irregular payment schedule does not break detect function
UnitPeriodConfigTest001Irregular payment schedule does not break APR calculation
UnitPeriodConfigTest002Irregular payment schedule does not break APR calculation
UnitPeriodConfigTest003Irregular payment schedule does not break APR calculation
UnitPeriodConfigTest004Checking that the fee rebate behaves correctly
namespace System
namespace System.IO
namespace System.Text
namespace System.Text.RegularExpressions
val descriptionPattern: Regex
Multiple items
type Regex = interface ISerializable new: pattern: string -> unit + 2 overloads member Count: input: string -> int + 8 overloads member EnumerateMatches: input: ReadOnlySpan<char> -> ValueMatchEnumerator + 4 overloads member EnumerateSplits: input: ReadOnlySpan<char> -> ValueSplitEnumerator + 5 overloads member GetGroupNames: unit -> string array member GetGroupNumbers: unit -> int array member GroupNameFromNumber: i: int -> string member GroupNumberFromName: name: string -> int member IsMatch: input: ReadOnlySpan<char> -> bool + 9 overloads ...
<summary>Represents an immutable regular expression.</summary>

--------------------
Regex([<StringSyntaxAttribute ("Regex")>] pattern: string) : Regex
Regex([<StringSyntaxAttribute ("Regex", [|"options"|])>] pattern: string, options: RegexOptions) : Regex
Regex([<StringSyntaxAttribute ("Regex", [|"options"|])>] pattern: string, options: RegexOptions, matchTimeout: System.TimeSpan) : Regex
type Path = static member ChangeExtension: path: string * extension: string -> string static member Combine: path1: string * path2: string -> string + 4 overloads static member EndsInDirectorySeparator: path: ReadOnlySpan<char> -> bool + 1 overload static member Exists: path: string -> bool static member GetDirectoryName: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetExtension: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetFileName: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetFileNameWithoutExtension: path: ReadOnlySpan<char> -> ReadOnlySpan<char> + 1 overload static member GetFullPath: path: string -> string + 1 overload static member GetInvalidFileNameChars: unit -> char array ...
<summary>Performs operations on <see cref="T:System.String" /> instances that contain file or directory path information. These operations are performed in a cross-platform manner.</summary>
Path.Combine(paths: System.ReadOnlySpan<string>) : string
Path.Combine([<System.ParamArray>] paths: string array) : string
Path.Combine(path1: string, path2: string) : string
Path.Combine(path1: string, path2: string, path3: string) : string
Path.Combine(path1: string, path2: string, path3: string, path4: string) : string
type Directory = static member CreateDirectory: path: string -> DirectoryInfo + 1 overload static member CreateSymbolicLink: path: string * pathToTarget: string -> FileSystemInfo static member CreateTempSubdirectory: ?prefix: string -> DirectoryInfo static member Delete: path: string -> unit + 1 overload static member EnumerateDirectories: path: string -> IEnumerable<string> + 3 overloads static member EnumerateFileSystemEntries: path: string -> IEnumerable<string> + 3 overloads static member EnumerateFiles: path: string -> IEnumerable<string> + 3 overloads static member Exists: path: string -> bool static member GetCreationTime: path: string -> DateTime static member GetCreationTimeUtc: path: string -> DateTime ...
<summary>Exposes static methods for creating, moving, and enumerating through directories and subdirectories. This class cannot be inherited.</summary>
Directory.EnumerateDirectories(path: string) : System.Collections.Generic.IEnumerable<string>
Directory.EnumerateDirectories(path: string, searchPattern: string) : System.Collections.Generic.IEnumerable<string>
Directory.EnumerateDirectories(path: string, searchPattern: string, searchOption: SearchOption) : System.Collections.Generic.IEnumerable<string>
Directory.EnumerateDirectories(path: string, searchPattern: string, enumerationOptions: EnumerationOptions) : System.Collections.Generic.IEnumerable<string>
module Seq from Microsoft.FSharp.Collections
val sort: source: 'T seq -> 'T seq (requires comparison)
val map: mapping: ('T -> 'U) -> source: 'T seq -> 'U seq
val directoryPath: string
val directoryName: string
[<return:NotNullIfNotNullAttribute ("path")>] Path.GetFileName(path: string) : string
Path.GetFileName(path: System.ReadOnlySpan<char>) : System.ReadOnlySpan<char>
val filesRows: string
Directory.EnumerateFiles(path: string) : System.Collections.Generic.IEnumerable<string>
Directory.EnumerateFiles(path: string, searchPattern: string) : System.Collections.Generic.IEnumerable<string>
Directory.EnumerateFiles(path: string, searchPattern: string, searchOption: SearchOption) : System.Collections.Generic.IEnumerable<string>
Directory.EnumerateFiles(path: string, searchPattern: string, enumerationOptions: EnumerationOptions) : System.Collections.Generic.IEnumerable<string>
val filePath: string
val fileName: string
[<return:NotNullIfNotNullAttribute ("path")>] Path.GetFileNameWithoutExtension(path: string) : string
Path.GetFileNameWithoutExtension(path: System.ReadOnlySpan<char>) : System.ReadOnlySpan<char>
val description: string
val m: Match
type File = static member AppendAllBytes: path: string * bytes: byte array -> unit + 1 overload static member AppendAllBytesAsync: path: string * bytes: byte array * ?cancellationToken: CancellationToken -> Task + 1 overload static member AppendAllLines: path: string * contents: IEnumerable<string> -> unit + 1 overload static member AppendAllLinesAsync: path: string * contents: IEnumerable<string> * encoding: Encoding * ?cancellationToken: CancellationToken -> Task + 1 overload static member AppendAllText: path: string * contents: string -> unit + 3 overloads static member AppendAllTextAsync: path: string * contents: string * encoding: Encoding * ?cancellationToken: CancellationToken -> Task + 3 overloads static member AppendText: path: string -> StreamWriter static member Copy: sourceFileName: string * destFileName: string -> unit + 1 overload static member Create: path: string -> FileStream + 2 overloads static member CreateSymbolicLink: path: string * pathToTarget: string -> FileSystemInfo ...
<summary>Provides static methods for the creation, copying, deletion, moving, and opening of a single file, and aids in the creation of <see cref="T:System.IO.FileStream" /> objects.</summary>
File.ReadAllText(path: string) : string
File.ReadAllText(path: string, encoding: System.Text.Encoding) : string
Regex.Match(input: string) : Match
Regex.Match(input: string, startat: int) : Match
Regex.Match(input: string, beginning: int, length: int) : Match
property Group.Success: bool with get
<summary>Gets a value indicating whether the match is successful.</summary>
<returns><see langword="true" /> if the match is successful; otherwise, <see langword="false" />.</returns>
property Match.Groups: GroupCollection with get
<summary>Gets a collection of groups matched by the regular expression.</summary>
<returns>The character groups matched by the pattern.</returns>
module String from Microsoft.FSharp.Core
val concat: sep: string -> strings: string seq -> string

Type something to start searching.