diff --git a/firanka/ranges.py b/firanka/ranges.py index e9ce0012d251606ae5845a23f78df72520935884..8387735e98e59f706a0ab9bd056d09690823cf83 100644 --- a/firanka/ranges.py +++ b/firanka/ranges.py @@ -55,7 +55,7 @@ class Range(object): def __getargs(self, args): if len(args) == 1: rs, = args - if isinstance(rs, type(self)): + if isinstance(rs, Range): args = self.__fromrange(rs) elif isinstance(rs, slice): args = self.__fromslice(rs) diff --git a/tests/test_range.py b/tests/test_range.py index 3f19e904bf021e115dcd57447d27a24c4026554f..fa286dcaffff2d0596fcb20b5f0772650ab7015e 100644 --- a/tests/test_range.py +++ b/tests/test_range.py @@ -49,6 +49,9 @@ class TestRange(unittest.TestCase): self.assertEqual(Range(1, 2, True, False), Range('<1;2)')) self.assertEqual(Range(1, 2, True, False), '<1;2)') + r = Range(1, 2, True, False) + self.assertEqual(r, Range(r)) + def test_contains(self): self.assertFalse(-1 in Range('<-10;-1)')) self.assertTrue(-10 in Range('<-10;-1)')) @@ -57,6 +60,8 @@ class TestRange(unittest.TestCase): self.assertTrue(-5 in Range('(-10;-1>')) self.assertFalse(-20 in Range('(-10;-1>')) self.assertFalse(1 in Range('(-10;-1>')) + self.assertFalse('<-10;-1>' in Range('(-10;-1)')) + self.assertFalse('<-10;-1)' in Range('(-10;-1>')) self.assertTrue(Range('<-5;5>') in Range('<-10;10>')) self.assertTrue('(-1;6)' in Range(-10.0, 10.0, True, False))