From 541eab3e4027ff0180f94e01e497455399461e80 Mon Sep 17 00:00:00 2001
From: Piotr Maslanka <piotr.maslanka@henrietta.com.pl>
Date: Fri, 8 Dec 2017 21:04:30 +0100
Subject: [PATCH] test

---
 firanka/series/range.py         | 17 ++++++++---------
 tests/test_series/test_range.py |  7 +++++--
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/firanka/series/range.py b/firanka/series/range.py
index 3779a14..9946770 100644
--- a/firanka/series/range.py
+++ b/firanka/series/range.py
@@ -24,12 +24,12 @@ class Range(object):
     """
     def __init__(self, *args):
         if len(args) == 1:
-
-            if isinstance(args[0], type(self)):
-                start = args[0].start
-                stop = args[0].stop
-                lend_inclusive = args[0].lend_inclusive
-                rend_inclusive = args[0].rend_inclusive
+            rs, = args
+            if isinstance(rs, type(self)):
+                start = rs.start
+                stop = rs.stop
+                lend_inclusive = rs.lend_inclusive
+                rend_inclusive = rs.rend_inclusive
             else:
                 rs, = args
 
@@ -40,8 +40,7 @@ class Range(object):
                 lend_inclusive = rs[0] == '<'
                 rend_inclusive = rs[-1] == '>'
 
-                rs = rs[1:-1]
-                start, stop = rs.split(';')
+                start, stop = rs[1:-1].split(';')
                 start = float(start)
                 stop = float(stop)
         else:
@@ -98,7 +97,7 @@ class Range(object):
         if (self.stop < y.start) or (y.stop < y.start):
             return EMPTY_RANGE
 
-        if self.stop == y.start and not (self.rend_inclusive or y.lend_inclusive):
+        if self.stop == y.start and not (self.rend_inclusive and y.lend_inclusive):
             return EMPTY_RANGE
 
         if self.start == y.start:
diff --git a/tests/test_series/test_range.py b/tests/test_series/test_range.py
index 5fa18b7..1966cf8 100644
--- a/tests/test_series/test_range.py
+++ b/tests/test_series/test_range.py
@@ -9,8 +9,10 @@ from firanka.series import Range
 class TestRange(unittest.TestCase):
 
     def do_intersect(self, a, b, val):
-        self.assertEqual(bool(Range(a).intersection(b)), val)
-        self.assertEqual(bool(Range(b).intersection(a)), val)
+        if bool(Range(a).intersection(b)) != val:
+            self.fail('%s ^ %s != %s' % (Range(a), Range(b), val))
+        if bool(Range(b).intersection(a)) != val:
+            self.fail('%s ^ %s != %s' % (Range(b), Range(a), val))
 
     def test_intersection(self):
         self.do_intersect(Range(-10, -1, True, True), '<2;3>', False)
@@ -23,6 +25,7 @@ class TestRange(unittest.TestCase):
     def test_constructor(self):
         self.assertRaises(ValueError, lambda: Range('#2;3>'))
         self.assertRaises(ValueError, lambda: Range('(2;3!'))
+        self.assertEqual(Range(1,2,True,False), Range('<1;2)'))
 
     def test_contains(self):
         self.assertFalse(-1 in Range('<-10;-1)'))
-- 
GitLab