| #!/usr/bin/env python3 |
| from gitutils import PeekableIterator, patterns_to_regex |
| from unittest import TestCase, main |
| |
| class TestPeekableIterator(TestCase): |
| def test_iterator(self, input_: str = "abcdef") -> None: |
| iter_ = PeekableIterator(input_) |
| for idx, c in enumerate(iter_): |
| self.assertEqual(c, input_[idx]) |
| |
| def test_is_iterable(self) -> None: |
| from collections.abc import Iterator |
| iter_ = PeekableIterator("") |
| self.assertTrue(isinstance(iter_, Iterator)) |
| |
| def test_peek(self, input_: str = "abcdef") -> None: |
| iter_ = PeekableIterator(input_) |
| for idx, c in enumerate(iter_): |
| if idx + 1 < len(input_): |
| self.assertEqual(iter_.peek(), input_[idx + 1]) |
| else: |
| self.assertTrue(iter_.peek() is None) |
| |
| |
| class TestPattern(TestCase): |
| def test_double_asterisks(self) -> None: |
| allowed_patterns = [ |
| "aten/src/ATen/native/**LinearAlgebra*", |
| ] |
| patterns_re = patterns_to_regex(allowed_patterns) |
| fnames = [ |
| "aten/src/ATen/native/LinearAlgebra.cpp", |
| "aten/src/ATen/native/cpu/LinearAlgebraKernel.cpp"] |
| for filename in fnames: |
| self.assertTrue(patterns_re.match(filename)) |
| |
| |
| if __name__ == '__main__': |
| main() |