diff --git a/firanka/series/range.py b/firanka/series/range.py index 5f153bf59555f4bb3e9166b76806c0d3009b8bad..ffc085940b19dde12a3f95dc48bcbd186b1dd1dc 100644 --- a/firanka/series/range.py +++ b/firanka/series/range.py @@ -25,8 +25,9 @@ class Range(object): def __init__(self, *args): if len(args) == 1: rs, = args - assert rs[0] in '<(' - assert rs[-1] in '>)' + + if (rs[0] not in '<(') or (rs[-1] not in '>)'): + raise ValueError('Must start with < or ( and end with ) or >') lend_inclusive = rs[0] == '<' rend_inclusive = rs[-1] == '>' diff --git a/tests/test_series/test_range.py b/tests/test_series/test_range.py index 44826992906b5e26c09fd99a645f8a7b92d4e7c4..f0eca7083180a8acd4206dcb83ae47851339edc0 100644 --- a/tests/test_series/test_range.py +++ b/tests/test_series/test_range.py @@ -14,6 +14,10 @@ class TestRange(unittest.TestCase): def test_str(self): self.assertEqual(str(Range(-1, 1, True, True)), '<-1;1>') + def test_constructor(self): + self.assertRaises(ValueError, lambda: Range('#2;3>')) + self.assertRaises(ValueError, lambda: Range('(2;3!')) + def test_contains(self): self.assertFalse(-1 in Range('<-10;-1)')) self.assertTrue(-10 in Range('<-10;-1)'))