test_iterators.py 709 Bytes
Newer Older
1
# Copyright (c) Facebook, Inc. and its affiliates.
Myle Ott's avatar
Myle Ott committed
2
#
3
4
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
Myle Ott's avatar
Myle Ott committed
5
6
7

import unittest

8
from fairseq.data import iterators
Myle Ott's avatar
Myle Ott committed
9
10


11
class TestIterators(unittest.TestCase):
Myle Ott's avatar
Myle Ott committed
12
13
14

    def test_counting_iterator(self):
        x = list(range(10))
15
        itr = iterators.CountingIterator(x)
Myle Ott's avatar
Myle Ott committed
16
17
18
19
20
21
22
23
24
25
26
27
        self.assertTrue(itr.has_next())
        self.assertEqual(next(itr), 0)
        self.assertEqual(next(itr), 1)
        itr.skip(3)
        self.assertEqual(next(itr), 5)
        itr.skip(3)
        self.assertEqual(next(itr), 9)
        self.assertFalse(itr.has_next())


if __name__ == '__main__':
    unittest.main()