| 72 | |
| 73 | |
| 74 | class BusinessDaysBetweenTests(unittest.TestCase): |
| 75 | def test_same_day_weekday(self): |
| 76 | d = date(2024, 4, 15) # Monday |
| 77 | self.assertEqual(business_days_between(d, d), 1) |
| 78 | |
| 79 | def test_same_day_weekend(self): |
| 80 | d = date(2024, 4, 13) # Saturday |
| 81 | self.assertEqual(business_days_between(d, d), 0) |
| 82 | |
| 83 | def test_full_workweek(self): |
| 84 | mon = date(2024, 4, 15) |
| 85 | fri = date(2024, 4, 19) |
| 86 | self.assertEqual(business_days_between(mon, fri), 5) |
| 87 | |
| 88 | def test_across_weekend(self): |
| 89 | fri = date(2024, 4, 19) |
| 90 | mon = date(2024, 4, 22) |
| 91 | self.assertEqual(business_days_between(fri, mon), 2) |
| 92 | |
| 93 | def test_two_full_weeks(self): |
| 94 | mon1 = date(2024, 4, 15) |
| 95 | fri2 = date(2024, 4, 26) |
| 96 | self.assertEqual(business_days_between(mon1, fri2), 10) |
| 97 | |
| 98 | def test_direction_insensitive(self): |
| 99 | a = date(2024, 4, 15) |
| 100 | b = date(2024, 4, 22) |
| 101 | self.assertEqual( |
| 102 | business_days_between(a, b), business_days_between(b, a) |
| 103 | ) |
| 104 | |
| 105 | def test_only_saturdays_returns_zero(self): |
| 106 | sat1 = date(2024, 4, 13) |
| 107 | sat2 = date(2024, 4, 20) |
| 108 | self.assertEqual(business_days_between(sat1, sat2), 5) |
nothing calls this directly
no outgoing calls
no test coverage detected