'Test limited method with different input parameters.
This test includes next test cases:
1) Test offset key works with 0;
2) Test offset key works with a medium sized number;
3) Test offset key works with a number over 1000 (max_limit);
4) Test request with no offset or limit;
5) Test limit of zero;
6) Test limit of 10;
7) Test limit of 3000;'

@ddt.data({'req': '/?offset=0', 'values': ((TINY, TINY), (SMALL, SMALL), (MEDIUM, MEDIUM), (LARGE[:1000], LARGE))}, {'req': '/?offset=10', 'values': (([], TINY), (SMALL[10:], SMALL), (MEDIUM[10:], MEDIUM), (LARGE[10:1010], LARGE))}, {'req': '/?offset=1001', 'values': (([], TINY), ([], SMALL), ([], MEDIUM), (LARGE[1001:2001], LARGE))}, {'req': '/', 'values': ((TINY, TINY), (SMALL, SMALL), (MEDIUM, MEDIUM), (LARGE[:1000], LARGE))}, {'req': '/?limit=0', 'values': ((TINY, TINY), (SMALL, SMALL), (MEDIUM, MEDIUM), (LARGE[:1000], LARGE))}, {'req': '/?limit=10', 'values': ((TINY, TINY), (SMALL, SMALL), (MEDIUM[:10], MEDIUM), (LARGE[:10], LARGE))}, {'req': '/?limit=3000', 'values': ((TINY, TINY), (SMALL, SMALL), (MEDIUM, MEDIUM), (LARGE[:1000], LARGE))})
@ddt.unpack
def test_limiter(self, req, values):

    req = webob.Request.blank(req)
    for (expected, value) in values:
        self.assertEqual(expected, common.limited(value, req))
