Added tests for generate_date method.

Added tests for the ``generate_date`` method. Also decided that
MAX_YEARS should be 1000 instead of what datetime.MAXYEARS due to
``value out of range`` error calculating future time:

```python
In [1]: datetime.MAXYEAR
Out[1]: 9999

In [2]: datetime.date.today() + datetime.timedelta(365 * datetime.MAXYEAR)
---------------------------------------------------------------------------
OverflowError                             Traceback (most recent call last)
<ipython-input-16-94e9a1b70f5f> in <module>()
----> 1 datetime.date.today() + datetime.timedelta(365 * datetime.MAXYEAR)

OverflowError: date value out of range
```