[
{"name": "two weeks: A twice (days 0-4 and 5-9), B once over ten days, C never", "args": [[{"sku": "B3", "abcClass": "B"}, {"sku": "A2", "abcClass": "A"}, {"sku": "C1", "abcClass": "C"}, {"sku": "B1", "abcClass": "B"}, {"sku": "A1", "abcClass": "A"}, {"sku": "B2", "abcClass": "B"}], {"A": 2, "B": 1, "C": 0}, "2026-09-21", "2026-10-02", []], "expect": [{"date": "2026-09-21", "skus": ["A1", "B1"]}, {"date": "2026-09-22", "skus": []}, {"date": "2026-09-23", "skus": ["A2"]}, {"date": "2026-09-24", "skus": ["B2"]}, {"date": "2026-09-25", "skus": []}, {"date": "2026-09-28", "skus": ["A1"]}, {"date": "2026-09-29", "skus": ["B3"]}, {"date": "2026-09-30", "skus": ["A2"]}, {"date": "2026-10-01", "skus": []}, {"date": "2026-10-02", "skus": []}]},
{"name": "Christmas: weekends and the 25th, 28th (Boxing Day substitute) and 1st are skipped, leaving 7 days in windows of 2, 2 and 3", "args": [[{"sku": "A4", "abcClass": "A"}, {"sku": "A3", "abcClass": "A"}, {"sku": "A2", "abcClass": "A"}, {"sku": "A1", "abcClass": "A"}], {"A": 3}, "2026-12-21", "2027-01-01", ["2026-12-25", "2026-12-28", "2027-01-01"]], "expect": [{"date": "2026-12-21", "skus": ["A1", "A2"]}, {"date": "2026-12-22", "skus": ["A3", "A4"]}, {"date": "2026-12-23", "skus": ["A1", "A2"]}, {"date": "2026-12-24", "skus": ["A3", "A4"]}, {"date": "2026-12-29", "skus": ["A1", "A2"]}, {"date": "2026-12-30", "skus": ["A3"]}, {"date": "2026-12-31", "skus": ["A4"]}]},
{"name": "counted as often as there are working days: every day", "args": [[{"sku": "X", "abcClass": "A"}], {"A": 3}, "2026-09-23", "2026-09-25", []], "expect": [{"date": "2026-09-23", "skus": ["X"]}, {"date": "2026-09-24", "skus": ["X"]}, {"date": "2026-09-25", "skus": ["X"]}]},
{"name": "skus sort by character code, so B10 comes before B2", "args": [[{"sku": "B2", "abcClass": "B"}, {"sku": "B10", "abcClass": "B"}], {"B": 1}, "2026-09-21", "2026-09-22", []], "expect": [{"date": "2026-09-21", "skus": ["B10"]}, {"date": "2026-09-22", "skus": ["B2"]}]},
{"name": "a class sorts before another on a shared day whatever the map order", "args": [[{"sku": "Z", "abcClass": "B"}, {"sku": "Y", "abcClass": "A"}], {"B": 1, "A": 1}, "2026-09-21", "2026-09-21", []], "expect": [{"date": "2026-09-21", "skus": ["Y", "Z"]}]},
{"name": "a holiday that falls on a weekend changes nothing, and a one-day period works", "args": [[{"sku": "A1", "abcClass": "A"}], {"A": 1}, "2026-09-25", "2026-09-27", ["2026-09-26"]], "expect": [{"date": "2026-09-25", "skus": ["A1"]}]},
{"name": "no items: every working day, all empty", "args": [[], {"A": 12}, "2026-09-24", "2026-09-28", []], "expect": [{"date": "2026-09-24", "skus": []}, {"date": "2026-09-25", "skus": []}, {"date": "2026-09-28", "skus": []}]},
{"name": "a weekend-only period with nothing to count is an empty schedule", "args": [[{"sku": "C1", "abcClass": "C"}], {"C": 0}, "2026-09-26", "2026-09-27", []], "expect": []},
{"name": "across a leap day: 2028-02-28 to 2028-03-01 is three working days", "args": [[{"sku": "A1", "abcClass": "A"}, {"sku": "A2", "abcClass": "A"}, {"sku": "A3", "abcClass": "A"}], {"A": 1}, "2028-02-28", "2028-03-01", []], "expect": [{"date": "2028-02-28", "skus": ["A1"]}, {"date": "2028-02-29", "skus": ["A2"]}, {"date": "2028-03-01", "skus": ["A3"]}]},
{"name": "a class counted more often than there are working days is an error", "args": [[{"sku": "A1", "abcClass": "A"}], {"A": 4}, "2026-09-23", "2026-09-25", []], "expectError": "class \"A\" is counted 4 times but the period has only 3 working days"},
{"name": "something to count in a weekend-only period is an error", "args": [[{"sku": "A1", "abcClass": "A"}], {"A": 1}, "2026-09-26", "2026-09-27", []], "expectError": "the period has only 0 working days"},
{"name": "an item whose class has no frequency is an error", "args": [[{"sku": "D1", "abcClass": "D"}], {"A": 1}, "2026-09-21", "2026-09-25", []], "expectError": "no count frequency for class \"D\" (sku \"D1\")"},
{"name": "a duplicate sku is an error", "args": [[{"sku": "A1", "abcClass": "A"}, {"sku": "A1", "abcClass": "B"}], {"A": 1, "B": 1}, "2026-09-21", "2026-09-25", []], "expectError": "duplicate sku \"A1\""},
{"name": "a negative frequency is an error", "args": [[], {"A": -1}, "2026-09-21", "2026-09-25", []], "expectError": "countsPerPeriod for class \"A\" must be a whole number, not negative"},
{"name": "a fractional frequency is an error", "args": [[], {"A": 1.5}, "2026-09-21", "2026-09-25", []], "expectError": "countsPerPeriod for class \"A\" must be a whole number, not negative"},
{"name": "a period that ends before it starts is an error", "args": [[], {"A": 1}, "2026-09-25", "2026-09-21", []], "expectError": "endDate 2026-09-21 is before startDate 2026-09-25"},
{"name": "an impossible holiday is an error", "args": [[], {"A": 1}, "2026-09-21", "2026-09-25", ["2026-02-30"]], "expectError": "is not a real calendar date"}
]