# Path: dopplr/solr/query/paging.py
# class Paging(BaseQuery):
#     """
#     Query implementing search result paging. Paging is implemented `1` based,
#     i.e. the first page is `1` not `0`!
#     """
#     def __init__(self, page, rows=10):
#         self._page = page
#         self._rows = rows
# 
#     def get_params(self):
#         """
#         Compute the `start` and `rows` parameter.
#         """
#         params = []
#         params.append(('rows', str(self._rows)))
#         if self._page > 1:
#             params.append(('start', str((self._page - 1) * self._rows)))
# 
#         return params


from pyvows import Vows, expect
from dopplr.solr.query.paging import Paging
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#



@Vows.batch
class PagingQueries(Vows.Context):

    class MustBeCalculatedCorrectly(Vows.Context):

        def topic(self):
            test_data = [
                {'rows': 10, 'page': 2, 'expected':{'rows': '10', 'start': '10'}},
                {'rows': 20, 'page': 2, 'expected':{'rows': '20', 'start': '20'}},
                {'rows': 30, 'page': 4, 'expected':{'rows': '30', 'start': '90'}},
                {'rows': 8, 'page': 4, 'expected':{'rows': '8', 'start': '24'}},
            ]
            for data in test_data:
                yield (
                    (data['expected']['rows'], data['expected']['start']),

# Path: dopplr/solr/query/paging.py
# class Paging(BaseQuery):
#     """
#     Query implementing search result paging. Paging is implemented `1` based,
#     i.e. the first page is `1` not `0`!
#     """
#     def __init__(self, page, rows=10):
#         self._page = page
#         self._rows = rows
# 
#     def get_params(self):
#         """
#         Compute the `start` and `rows` parameter.
#         """
#         params = []
#         params.append(('rows', str(self._rows)))
#         if self._page > 1:
#             params.append(('start', str((self._page - 1) * self._rows)))
# 
#         return params


# Path: vows/solr/paging_vows.py
from pyvows import Vows, expect
from dopplr.solr.query.paging import Paging

# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#



@Vows.batch
class PagingQueries(Vows.Context):

    class MustBeCalculatedCorrectly(Vows.Context):

        def topic(self):
            test_data = [
                {'rows': 10, 'page': 2, 'expected':{'rows': '10', 'start': '10'}},
                {'rows': 20, 'page': 2, 'expected':{'rows': '20', 'start': '20'}},
                {'rows': 30, 'page': 4, 'expected':{'rows': '30', 'start': '90'}},
                {'rows': 8, 'page': 4, 'expected':{'rows': '8', 'start': '24'}},
            ]
            for data in test_data:
                yield (
                    (data['expected']['rows'], data['expected']['start']),

                    Paging(data['page'], data['rows']).get_params())