[
{
"name": "£1,000 a month: five weeks is £1,153.84 (rounded down from £1,153.846)",
"args": [
{
"minor": 100000,
"currency": "GBP"
},
"monthly",
"england",
"2026-09-01"
],
"expect": {
"annualRent": {
"minor": 1200000,
"currency": "GBP"
},
"weeklyRent": {
"minor": 23076,
"currency": "GBP"
},
"weeks": 5,
"maximum": {
"minor": 115384,
"currency": "GBP"
}
}
},
{
"name": "£240 a week: five weeks is exactly £1,200 (the guidance's joint-tenancy example)",
"args": [
{
"minor": 24000,
"currency": "GBP"
},
"weekly",
"england",
"2026-09-01"
],
"expect": {
"annualRent": {
"minor": 1248000,
"currency": "GBP"
},
"weeklyRent": {
"minor": 24000,
"currency": "GBP"
},
"weeks": 5,
"maximum": {
"minor": 120000,
"currency": "GBP"
}
}
},
{
"name": "£4,166.66 a month is £49,999.92 a year: still five weeks",
"args": [
{
"minor": 416666,
"currency": "GBP"
},
"monthly",
"england",
"2026-09-01"
],
"expect": {
"annualRent": {
"minor": 4999992,
"currency": "GBP"
},
"weeklyRent": {
"minor": 96153,
"currency": "GBP"
},
"weeks": 5,
"maximum": {
"minor": 480768,
"currency": "GBP"
}
}
},
{
"name": "£4,166.67 a month is £50,000.04 a year: six weeks",
"args": [
{
"minor": 416667,
"currency": "GBP"
},
"monthly",
"england",
"2026-09-01"
],
"expect": {
"annualRent": {
"minor": 5000004,
"currency": "GBP"
},
"weeklyRent": {
"minor": 96153,
"currency": "GBP"
},
"weeks": 6,
"maximum": {
"minor": 576923,
"currency": "GBP"
}
}
},
{
"name": "exactly £50,000 a year is six weeks, not five",
"args": [
{
"minor": 5000000,
"currency": "GBP"
},
"annual",
"england",
"2026-09-01"
],
"expect": {
"annualRent": {
"minor": 5000000,
"currency": "GBP"
},
"weeklyRent": {
"minor": 96153,
"currency": "GBP"
},
"weeks": 6,
"maximum": {
"minor": 576923,
"currency": "GBP"
}
}
},
{
"name": "£49,999.99 a year is five weeks",
"args": [
{
"minor": 4999999,
"currency": "GBP"
},
"annual",
"england",
"2026-09-01"
],
"expect": {
"annualRent": {
"minor": 4999999,
"currency": "GBP"
},
"weeklyRent": {
"minor": 96153,
"currency": "GBP"
},
"weeks": 5,
"maximum": {
"minor": 480769,
"currency": "GBP"
}
}
},
{
"name": "£961.54 a week (£50,000.08 a year): six weeks, exactly 6 × weekly",
"args": [
{
"minor": 96154,
"currency": "GBP"
},
"weekly",
"england",
"2026-09-01"
],
"expect": {
"annualRent": {
"minor": 5000008,
"currency": "GBP"
},
"weeklyRent": {
"minor": 96154,
"currency": "GBP"
},
"weeks": 6,
"maximum": {
"minor": 576924,
"currency": "GBP"
}
}
},
{
"name": "£961.53 a week (£49,999.56 a year): five weeks",
"args": [
{
"minor": 96153,
"currency": "GBP"
},
"weekly",
"england",
"2026-09-01"
],
"expect": {
"annualRent": {
"minor": 4999956,
"currency": "GBP"
},
"weeklyRent": {
"minor": 96153,
"currency": "GBP"
},
"weeks": 5,
"maximum": {
"minor": 480765,
"currency": "GBP"
}
}
},
{
"name": "the cap is not five times the rounded weekly rent: £1,250 a month",
"args": [
{
"minor": 125000,
"currency": "GBP"
},
"monthly",
"england",
"2026-09-01"
],
"expect": {
"annualRent": {
"minor": 1500000,
"currency": "GBP"
},
"weeklyRent": {
"minor": 28846,
"currency": "GBP"
},
"weeks": 5,
"maximum": {
"minor": 144230,
"currency": "GBP"
}
}
},
{
"name": "zero rent: zero deposit",
"args": [
{
"minor": 0,
"currency": "GBP"
},
"monthly",
"england",
"2026-09-01"
],
"expect": {
"annualRent": {
"minor": 0,
"currency": "GBP"
},
"weeklyRent": {
"minor": 0,
"currency": "GBP"
},
"weeks": 5,
"maximum": {
"minor": 0,
"currency": "GBP"
}
}
},
{
"name": "the first day of the cap, 1 June 2019",
"args": [
{
"minor": 100000,
"currency": "GBP"
},
"monthly",
"england",
"2019-06-01"
],
"expect": {
"annualRent": {
"minor": 1200000,
"currency": "GBP"
},
"weeklyRent": {
"minor": 23076,
"currency": "GBP"
},
"weeks": 5,
"maximum": {
"minor": 115384,
"currency": "GBP"
}
}
},
{
"name": "before 1 June 2019 there is no cap to apply",
"args": [
{
"minor": 100000,
"currency": "GBP"
},
"monthly",
"england",
"2019-05-31"
],
"expectError": "no deposit cap rule for england on 2019-05-31"
},
{
"name": "no data for Scotland",
"args": [
{
"minor": 100000,
"currency": "GBP"
},
"monthly",
"scotland",
"2026-09-01"
],
"expectError": "no deposit cap rule for scotland"
},
{
"name": "rent in euros is refused",
"args": [
{
"minor": 100000,
"currency": "EUR"
},
"monthly",
"england",
"2026-09-01"
],
"expectError": "rent must be in GBP"
},
{
"name": "negative rent is refused",
"args": [
{
"minor": -1,
"currency": "GBP"
},
"monthly",
"england",
"2026-09-01"
],
"expectError": "rent must not be negative"
},
{
"name": "an unknown rent period is refused",
"args": [
{
"minor": 100000,
"currency": "GBP"
},
"fortnightly",
"england",
"2026-09-01"
],
"expectError": "unknown rent period"
},
{
"name": "a malformed date is refused",
"args": [
{
"minor": 100000,
"currency": "GBP"
},
"monthly",
"england",
"1/6/2019"
],
"expectError": "onDate must be an ISO date"
},
{
"name": "a trailing newline is not part of an ISO date",
"args": [
{
"minor": 100000,
"currency": "GBP"
},
"monthly",
"england",
"2026-09-01\n"
],
"expectError": "onDate must be an ISO date"
},
{
"name": "Arabic-Indic digits are not an ISO date",
"args": [
{
"minor": 100000,
"currency": "GBP"
},
"monthly",
"england",
"٢٠٢٦-٠٩-٠١"
],
"expectError": "onDate must be an ISO date"
}
]