Mercurial > hg > numerics
changeset 188:100697f7c195
fix errors in testing and make exception a better marker
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Fri, 21 Jul 2017 12:58:40 -0700 |
parents | 8aec5ebb2d19 |
children | 637507918c17 |
files | numerics/conformity.py tests/test_conformity.py |
diffstat | 2 files changed, 13 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/numerics/conformity.py Fri Jul 21 12:50:17 2017 -0700 +++ b/numerics/conformity.py Fri Jul 21 12:58:40 2017 -0700 @@ -6,6 +6,12 @@ class NonConformantRowLengths(Exception): """nested arrays have different lengths""" + _msg_tmpl = "Different lengths to array_mean: {}" + + def __init__(self, lengths): + self.lengths = lengths + Exception.__init__(self, + self._msg_tmpl.format(' '.join([str(l) for l in lengths]))) def ensure_row_length(data): """ @@ -13,7 +19,7 @@ If so, return that length. If not, raise NonConformantArrayLengths """ - lengths = [len(i) for i in data] - if len(set(lengths)) != 1: - raise NonConformantRowLengths("Different lengths to array_mean: {}".format(' '.join(lengths))) + lengths = set([len(i) for i in data]) + if len(lengths) != 1: + raise NonConformantRowLengths(lengths) return lengths.pop()
--- a/tests/test_conformity.py Fri Jul 21 12:50:17 2017 -0700 +++ b/tests/test_conformity.py Fri Jul 21 12:58:40 2017 -0700 @@ -13,24 +13,24 @@ def test_equal_lengths(self): data = [[1,2,3], - [4,5,6] + [4,5,6], [7,8,9]] assert conformity.ensure_row_length(data) == 3 def test_nonequal_lengths(self): data = [[1,2,3], - [4,5,6] + [4,5,6], [7,8,9, 10] # oops! ] e = None try: conformity.ensure_row_length(data) - except conformity.NonformantRowLengths as e: + except conformity.NonConformantRowLengths as e: pass assert e is not None - assert isinstance(e, NonConformantRowLengths) + assert isinstance(e, conformity.NonConformantRowLengths) if __name__ == '__main__': unittest.main()