| #!/usr/bin/env python3 |
| |
| import os |
| |
| # Parses a single repacking test file. The first line of the file is |
| # the name of the font to use and the remaining lines define the set of |
| # codepoints in the subset. |
| class RepackTest: |
| |
| def __init__(self, test_path, definition): |
| self.test_path = test_path |
| self.font_name = None |
| self.codepoints = set () |
| self._parse(definition) |
| |
| def font_path(self): |
| return os.path.join (self._base_path (), "fonts", self.font_name) |
| |
| def codepoints_string (self): |
| return ",".join (self.codepoints) |
| |
| def _base_path(self): |
| return os.path.join( |
| os.path.dirname(self.test_path), |
| "../") |
| |
| |
| def _parse(self, definition): |
| lines = definition.splitlines () |
| self.font_name = lines.pop (0) |
| for line in lines: |
| line = line.strip() |
| if not line: |
| continue |
| |
| self.codepoints.add (line) |