At some point, this level of testing has diminishing gains. You don't need to test every month in order to know it works, you need to test the edge case boundaries where your code is likely to fail. For example, since you use `+ 1.month`, Jan 29 might be one such edge case. First day of the month, last day of the month, last month of the year, etc.