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:
- Click Data > From Web
- Paste the URL of the schedule page and click OK
- In the Navigator dialog, select the relevant table from HTML tables
- Click Load
ActualPayment
Test | Description |
ActualPaymentTest000 | Standard schedule with month-end payments from 4 days and paid off on time |
ActualPaymentTest001 | Standard schedule with month-end payments from 32 days and paid off on time |
ActualPaymentTest002 | Standard schedule with mid-monthly payments from 14 days and paid off on time |
ActualPaymentTest003 | Made 2 payments on early repayment, then one single payment after the full balance is overdue |
ActualPaymentTest004 | Made 2 payments on early repayment, then one single overpayment after the full balance is overdue |
ActualPaymentTest005 | Made 2 payments on early repayment, then one single overpayment after the full balance is overdue, and this is then refunded |
ActualPaymentTest006 | 0L |
ActualPaymentTest007 | Check that charge for late payment is not applied on scheduled payment date when payment has not yet been made |
ActualPaymentTest008 | Made 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) |
ActualPaymentTest009 | Underpayment made should show scheduled payment as net effect while in grace period |
ActualPaymentTest010 | Underpayment made should show scheduled payment as underpayment after grace period has expired |
ActualPaymentTest011 | Settled loan |
ActualPaymentTest012 | Scheduled payment total can be less than principal when early actual payments are made but net effect is never less |
ActualPaymentTest013 | Something TH spotted |
ActualPaymentTest014 | Large overpayment should not result in runaway fee rebates |
ActualPaymentTest015 | Large overpayment should not result in runaway fee rebates (2 actual payments) |
ActualPaymentTest016 | Large overpayment should not result in runaway fee rebates (3 actual payments) |
ActualPaymentTest017 | Pending payments should only apply if not timed out |
ActualPaymentTest018 | Pending payments should only apply if not timed out |
ActualPaymentTest019 | Generated settlement figure is correct |
ActualPaymentTest020 | Late payment |
ActualPaymentTestExtra000 | Simple schedule fully settled on time |
ActualPaymentTestExtra001 | Schedule with a payment on day 0L |
ActualPaymentTestExtra002 | Schedule with a payment on day 0L |
ActualPaymentTestExtra003 | never settles down |
ActualPaymentTestExtra004 | large negative payment |
ActualPaymentTestExtra005 | Schedule with a payment on day 0L |
ActualPaymentTestExtra006 | Schedule with a payment on day 0L |
ActualPaymentTestExtra007 | Schedule with a payment on day 0L |
AprUnitedKingdom
Test | Description |
AmortisationNoInterestCap_p6_fp23_BeforeAprJump | Amortisation 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_AfterAprJump | Amortisation 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_BeforeAprJump | Amortisation schedule, 6 payments, first payment on day 23, using the add-on interest method (just before APR jump) |
Amortisation_p6_fp24_AfterAprJump | Amortisation schedule, 6 payments, first payment on day 24, using the add-on interest method (just after APR jump) |
AprSpreadsheetAddOn | Range of APRs for different payment counts and first payment days, using the add-on interest method |
AprSpreadsheetAddOnNoInterestCap | Range of APRs for different payment counts and first payment days, using the add-on interest method with no interest cap |
AprSpreadsheetSimple | Range of APRs for different payment counts and first payment days, using the simple interest method |
AprSpreadsheetSimpleNoInterestCap | Range of APRs for different payment counts and first payment days, using the simple interest method with no interest cap |
AprUkTest_fp03_pc4 | UK APR test amortisation schedule, first payment day 3, payment count 4 |
AprUkTest_fp03_pc5 | UK APR test amortisation schedule, first payment day 3, payment count 5 |
AprUkTest_fp03_pc6 | UK APR test amortisation schedule, first payment day 3, payment count 6 |
AprUkTest_fp04_pc4 | UK APR test amortisation schedule, first payment day 4, payment count 4 |
AprUkTest_fp04_pc5 | UK APR test amortisation schedule, first payment day 4, payment count 5 |
AprUkTest_fp04_pc6 | UK APR test amortisation schedule, first payment day 4, payment count 6 |
AprUkTest_fp05_pc4 | UK APR test amortisation schedule, first payment day 5, payment count 4 |
AprUkTest_fp05_pc5 | UK APR test amortisation schedule, first payment day 5, payment count 5 |
AprUkTest_fp05_pc6 | UK APR test amortisation schedule, first payment day 5, payment count 6 |
AprUkTest_fp06_pc4 | UK APR test amortisation schedule, first payment day 6, payment count 4 |
AprUkTest_fp06_pc5 | UK APR test amortisation schedule, first payment day 6, payment count 5 |
AprUkTest_fp06_pc6 | UK APR test amortisation schedule, first payment day 6, payment count 6 |
AprUkTest_fp07_pc4 | UK APR test amortisation schedule, first payment day 7, payment count 4 |
AprUkTest_fp07_pc5 | UK APR test amortisation schedule, first payment day 7, payment count 5 |
AprUkTest_fp07_pc6 | UK APR test amortisation schedule, first payment day 7, payment count 6 |
AprUkTest_fp08_pc4 | UK APR test amortisation schedule, first payment day 8, payment count 4 |
AprUkTest_fp08_pc5 | UK APR test amortisation schedule, first payment day 8, payment count 5 |
AprUkTest_fp08_pc6 | UK APR test amortisation schedule, first payment day 8, payment count 6 |
AprUkTest_fp09_pc4 | UK APR test amortisation schedule, first payment day 9, payment count 4 |
AprUkTest_fp09_pc5 | UK APR test amortisation schedule, first payment day 9, payment count 5 |
AprUkTest_fp09_pc6 | UK APR test amortisation schedule, first payment day 9, payment count 6 |
AprUkTest_fp10_pc4 | UK APR test amortisation schedule, first payment day 10, payment count 4 |
AprUkTest_fp10_pc5 | UK APR test amortisation schedule, first payment day 10, payment count 5 |
AprUkTest_fp10_pc6 | UK APR test amortisation schedule, first payment day 10, payment count 6 |
AprUkTest_fp11_pc4 | UK APR test amortisation schedule, first payment day 11, payment count 4 |
AprUkTest_fp11_pc5 | UK APR test amortisation schedule, first payment day 11, payment count 5 |
AprUkTest_fp11_pc6 | UK APR test amortisation schedule, first payment day 11, payment count 6 |
AprUkTest_fp12_pc4 | UK APR test amortisation schedule, first payment day 12, payment count 4 |
AprUkTest_fp12_pc5 | UK APR test amortisation schedule, first payment day 12, payment count 5 |
AprUkTest_fp12_pc6 | UK APR test amortisation schedule, first payment day 12, payment count 6 |
AprUkTest_fp13_pc4 | UK APR test amortisation schedule, first payment day 13, payment count 4 |
AprUkTest_fp13_pc5 | UK APR test amortisation schedule, first payment day 13, payment count 5 |
AprUkTest_fp13_pc6 | UK APR test amortisation schedule, first payment day 13, payment count 6 |
AprUkTest_fp14_pc4 | UK APR test amortisation schedule, first payment day 14, payment count 4 |
AprUkTest_fp14_pc5 | UK APR test amortisation schedule, first payment day 14, payment count 5 |
AprUkTest_fp14_pc6 | UK APR test amortisation schedule, first payment day 14, payment count 6 |
AprUkTest_fp15_pc4 | UK APR test amortisation schedule, first payment day 15, payment count 4 |
AprUkTest_fp15_pc5 | UK APR test amortisation schedule, first payment day 15, payment count 5 |
AprUkTest_fp15_pc6 | UK APR test amortisation schedule, first payment day 15, payment count 6 |
AprUkTest_fp16_pc4 | UK APR test amortisation schedule, first payment day 16, payment count 4 |
AprUkTest_fp16_pc5 | UK APR test amortisation schedule, first payment day 16, payment count 5 |
AprUkTest_fp16_pc6 | UK APR test amortisation schedule, first payment day 16, payment count 6 |
AprUkTest_fp17_pc4 | UK APR test amortisation schedule, first payment day 17, payment count 4 |
AprUkTest_fp17_pc5 | UK APR test amortisation schedule, first payment day 17, payment count 5 |
AprUkTest_fp17_pc6 | UK APR test amortisation schedule, first payment day 17, payment count 6 |
AprUkTest_fp18_pc4 | UK APR test amortisation schedule, first payment day 18, payment count 4 |
AprUkTest_fp18_pc5 | UK APR test amortisation schedule, first payment day 18, payment count 5 |
AprUkTest_fp18_pc6 | UK APR test amortisation schedule, first payment day 18, payment count 6 |
AprUkTest_fp19_pc4 | UK APR test amortisation schedule, first payment day 19, payment count 4 |
AprUkTest_fp19_pc5 | UK APR test amortisation schedule, first payment day 19, payment count 5 |
AprUkTest_fp19_pc6 | UK APR test amortisation schedule, first payment day 19, payment count 6 |
AprUkTest_fp20_pc4 | UK APR test amortisation schedule, first payment day 20, payment count 4 |
AprUkTest_fp20_pc5 | UK APR test amortisation schedule, first payment day 20, payment count 5 |
AprUkTest_fp20_pc6 | UK APR test amortisation schedule, first payment day 20, payment count 6 |
AprUkTest_fp21_pc4 | UK APR test amortisation schedule, first payment day 21, payment count 4 |
AprUkTest_fp21_pc5 | UK APR test amortisation schedule, first payment day 21, payment count 5 |
AprUkTest_fp21_pc6 | UK APR test amortisation schedule, first payment day 21, payment count 6 |
AprUkTest_fp22_pc4 | UK APR test amortisation schedule, first payment day 22, payment count 4 |
AprUkTest_fp22_pc5 | UK APR test amortisation schedule, first payment day 22, payment count 5 |
AprUkTest_fp22_pc6 | UK APR test amortisation schedule, first payment day 22, payment count 6 |
AprUkTest_fp23_pc4 | UK APR test amortisation schedule, first payment day 23, payment count 4 |
AprUkTest_fp23_pc5 | UK APR test amortisation schedule, first payment day 23, payment count 5 |
AprUkTest_fp23_pc6 | UK APR test amortisation schedule, first payment day 23, payment count 6 |
AprUkTest_fp24_pc4 | UK APR test amortisation schedule, first payment day 24, payment count 4 |
AprUkTest_fp24_pc5 | UK APR test amortisation schedule, first payment day 24, payment count 5 |
AprUkTest_fp24_pc6 | UK APR test amortisation schedule, first payment day 24, payment count 6 |
AprUkTest_fp25_pc4 | UK APR test amortisation schedule, first payment day 25, payment count 4 |
AprUkTest_fp25_pc5 | UK APR test amortisation schedule, first payment day 25, payment count 5 |
AprUkTest_fp25_pc6 | UK APR test amortisation schedule, first payment day 25, payment count 6 |
AprUkTest_fp26_pc4 | UK APR test amortisation schedule, first payment day 26, payment count 4 |
AprUkTest_fp26_pc5 | UK APR test amortisation schedule, first payment day 26, payment count 5 |
AprUkTest_fp26_pc6 | UK APR test amortisation schedule, first payment day 26, payment count 6 |
AprUkTest_fp27_pc4 | UK APR test amortisation schedule, first payment day 27, payment count 4 |
AprUkTest_fp27_pc5 | UK APR test amortisation schedule, first payment day 27, payment count 5 |
AprUkTest_fp27_pc6 | UK APR test amortisation schedule, first payment day 27, payment count 6 |
AprUkTest_fp28_pc4 | UK APR test amortisation schedule, first payment day 28, payment count 4 |
AprUkTest_fp28_pc5 | UK APR test amortisation schedule, first payment day 28, payment count 5 |
AprUkTest_fp28_pc6 | UK APR test amortisation schedule, first payment day 28, payment count 6 |
AprUkTest_fp29_pc4 | UK APR test amortisation schedule, first payment day 29, payment count 4 |
AprUkTest_fp29_pc5 | UK APR test amortisation schedule, first payment day 29, payment count 5 |
AprUkTest_fp29_pc6 | UK APR test amortisation schedule, first payment day 29, payment count 6 |
AprUkTest_fp30_pc4 | UK APR test amortisation schedule, first payment day 30, payment count 4 |
AprUkTest_fp30_pc5 | UK APR test amortisation schedule, first payment day 30, payment count 5 |
AprUkTest_fp30_pc6 | UK APR test amortisation schedule, first payment day 30, payment count 6 |
AprUkTest_fp31_pc4 | UK APR test amortisation schedule, first payment day 31, payment count 4 |
AprUkTest_fp31_pc5 | UK APR test amortisation schedule, first payment day 31, payment count 5 |
AprUkTest_fp31_pc6 | UK APR test amortisation schedule, first payment day 31, payment count 6 |
AprUkTest_fp32_pc4 | UK APR test amortisation schedule, first payment day 32, payment count 4 |
AprUkTest_fp32_pc5 | UK APR test amortisation schedule, first payment day 32, payment count 5 |
AprUkTest_fp32_pc6 | UK APR test amortisation schedule, first payment day 32, payment count 6 |
Charges
Test | Description |
ChargesTest000 | One charge type per day |
ChargesTest001 | One charge type per schedule |
ChargesTest002 | All charges applied |
Compliance
Test | Description |
ComplianceTest000 | Repayments made on time |
ComplianceTest001 | Repayments made early |
ComplianceTest002 | Full repayment made on repayment 3 |
ComplianceTest003 | Repayments made late - 3 and 4 |
ComplianceTest004 | Repayments made on time |
ComplianceTest005 | Early repayment |
ComplianceTest006 | Late repayment |
ComplianceTest007 | Repayments made on time - no interest cap |
ComplianceTest008 | Early repayment - no interest cap |
ComplianceTest009 | Late repayment - no interest cap |
ComplianceTest010 | Repayments made on time - 0.8% daily interest cap |
ComplianceTest011 | Early repayment - 0.8% daily interest cap |
ComplianceTest012 | Late repayment - 0.8% daily interest cap |
ComplianceTest013 | Repayments made on time - 100% total interest cap - autogenerated schedule |
ComplianceTest014 | Early repayment - 100% total interest cap - autogenerated schedule |
ComplianceTest015 | Late repayment - 100% total interest cap - autogenerated schedule |
ComplianceTest016 | Repayments made on time - 100% total interest cap - custom schedule |
ComplianceTest017 | Early repayment - 100% total interest cap - custom schedule |
ComplianceTest018 | Late repayment - 100% total interest cap - custom schedule |
ComplianceTest019 | Total repayable on interest-first loan of €317.26 with repayments starting on day 19 and total loan length 110 days |
ComplianceTest020 | Total repayable on interest-first loan of £300 with repayments starting on day 19 and total loan length 110 days |
ComplianceTest021 | Total repayable on interest-first loan of £250 with repayments starting on day 19 and total loan length 110 days |
ComplianceTest022 | Add-on-interest loan of $1000 with payments starting after one month and 4 payments in total, for documentation purposes |
ComplianceTest023 | Simple-interest loan of $1000 with payments starting after one month and 4 payments in total, for documentation purposes |
EdgeCase
Test | Description |
EdgeCaseTest000 | Quote returning nothing |
EdgeCaseTest001 | Quote returning nothing |
EdgeCaseTest002 | Quote returning nothing |
EdgeCaseTest003 | Quote returning nothing |
EdgeCaseTest004 | Only one insufficient funds charge per day |
EdgeCaseTest005 | Quote returning nothing |
EdgeCaseTest006 | Quote returning nothing |
EdgeCaseTest007 | Quote returning nothing |
EdgeCaseTest008 | Partial write-off |
EdgeCaseTest009 | Negative principal balance accruing interest |
Illustrative
Test | Description |
IllustrativeTest000 | Borrowing £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
Test | Description |
Cca2004Test006 | Initial statement (simple interest) matching total interest amount of £1459.36 |
Cca2004Test007 | Initial statement (simple interest, autogenerated payment amounts) matching level payment of £134.57 |
Cca2004Test008 | CCA 2004 rebate example using library method (simple interest) |
InterestCapTest000 | Total interest in amortised schedule does not exceed interest cap |
InterestCapTest001 | Total interest in amortised schedule does not exceed interest cap, using unrounded percentages |
InterestFirst
Test | Description |
InterestFirstTest000 | Simple interest method initial schedule |
InterestFirstTest001 | Simple interest method |
InterestFirstTest002 | Add-on interest method initial schedule |
InterestFirstTest003 | Add-on interest method |
InterestFirstTest004 | Add-on interest method with early repayment |
InterestFirstTest005 | Add-on interest method with normal but very early repayments |
InterestFirstTest006 | Add-on interest method with normal but with erratic payment timings |
InterestFirstTest007 | Add-on interest method with normal but with erratic payment timings expecting settlement figure on final day |
InterestFirstTest008 | Add-on interest method with normal repayments |
InterestFirstTest009 | Add-on interest method with single early repayment |
InterestFirstTest010 | Add-on interest method with single early repayment then a quote one day later |
InterestFirstTest011 | Add-on interest method with small loan and massive payment leading to a refund needed |
InterestFirstTest012 | Realistic example 501ac58e62a5 |
InterestFirstTest013 | Realistic example 0004ffd74fbb |
InterestFirstTest015 | Add-on interest method with big early repayment followed by tiny overpayment |
InterestFirstTest016 | Add-on interest method with interest rate under the daily cap should have a lower initial interest balance than the cap (no cap) |
InterestFirstTest017 | Add-on interest method with interest rate under the daily cap should have a lower initial interest balance than the cap (cap in place) |
InterestFirstTest018 | Realistic test 6045bd0ffc0f with correction on final day |
InterestFirstTest019 | Realistic test 6045bd0ffc0f |
InterestFirstTest020 | Realistic test 6045bd123363 with correction on final day |
InterestFirstTest021 | Realistic test 6045bd123363 |
InterestFirstTest022 | Realistic test 0004ffd74fbbn |
InterestFirstTest023 | Realistic test 0003ff008ae5 |
InterestFirstTest024 | Realistic test 0003ff00bffb with actuarial method |
InterestFirstTest025 | Realistic test 0003ff00bffb with add-on method |
InterestFirstTests014 | Realistic example 0004ffd74fbb with overpayment |
PaymentSchedule
Test | Description |
PaymentScheduleTest001 | If there are no other payments, level payment should equal final payment |
PaymentScheduleTest002 | Term must not exceed maximum duration |
PaymentScheduleTest003 | Term must not exceed maximum duration |
PaymentScheduleTest004 | Payment 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
Test | Description |
PromotionalRatesTest000 | Baseline with no promotional rates |
PromotionalRatesTest001 | Interest-free October should reduce total interest by 31 days |
PromotionalRatesTest002 | Low-interest December should reduce all interest during December |
PromotionalRatesTest004 | Mortgage quote with a five-year fixed interest deal and a mortgage fee added to the loan |
Quote
Test | Description |
QuoteTest000 | Settlement falling on a scheduled payment date |
QuoteTest001 | Settlement not falling on a scheduled payment date |
QuoteTest002 | Settlement not falling on a scheduled payment date but having an actual payment already made on the same day |
QuoteTest003 | Settlement within interest grace period should not accrue interest |
QuoteTest004 | Settlement just outside interest grace period should accrue interest |
QuoteTest005 | Settlement when fee is due in full |
QuoteTest006 | Get next scheduled payment |
QuoteTest007 | Get payment to cover all overdue amounts |
QuoteTest008 | Verified example |
QuoteTest009 | Verified example |
QuoteTest010 | When 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 |
QuoteTest011 | Settlement figure should not be lower than principal |
QuoteTest012 | Loan is settled the day before the last scheduled payment is due |
QuoteTest013 | Loan is settled on the same day as the last scheduled payment is due (but which has not yet been made) |
QuoteTest014 | Loan 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 |
QuoteTest015 | Loan 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 |
QuoteTest016 | Loan is settled the day before an overpayment (note: if looked at from a later date the overpayment will cause a refund to be due) |
QuoteTest017 | Loan is settled the same day as an overpayment |
QuoteTest018 | Loan is settled the day after an overpayment |
QuoteTest019 | Loan refund due for a long time, showing interest owed back |
QuoteTest020 | Settlement quote on the same day a loan is closed has 0L |
QuoteTest021 | Generated settlement figure is correct |
QuoteTest022 | Generated settlement figure is correct when an insufficient funds penalty is charged for a failed payment |
QuoteTest023 | Curveball |
QuoteTest024 | Negative interest should accrue to interest balance not principal balance |
QuoteTest025 | Quote with long period of negative interest accruing |
Settlement
Test | Description |
SettlementTest001 | Final payment due on Friday: what would I pay if I paid it today? |
SettlementTest002 | Final payment due on Friday: what would I pay if I paid it one week too late? |
SettlementTest003 | Final payment due on Friday: what if I pay £50 on Friday and the rest next week one week too late? |
UnitPeriodConfig
Test | Description |
UnitPeriodConfigTest000 | Irregular payment schedule does not break detect function |
UnitPeriodConfigTest001 | Irregular payment schedule does not break APR calculation |
UnitPeriodConfigTest002 | Irregular payment schedule does not break APR calculation |
UnitPeriodConfigTest003 | Irregular payment schedule does not break APR calculation |
UnitPeriodConfigTest004 | Checking 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 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>
<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
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>
<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>
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>
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>
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>
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>
<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
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
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>
<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>
<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