From 12db38632134d6b86ee2382a8cf679c399d7abf5 Mon Sep 17 00:00:00 2001 From: Gaurav Dhingra Date: Wed, 4 Nov 2015 22:16:54 +0530 Subject: [PATCH] imageset of first interval of singularities included fixes sympy/sympy#10113 // edited by skirpichev Signed-off-by: Sergey B Kirpichev --- sympy/sets/sets.py | 4 ++-- sympy/sets/tests/test_sets.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/sympy/sets/sets.py b/sympy/sets/sets.py index c95e4e0eca2..600bc5fe2ea 100644 --- a/sympy/sets/sets.py +++ b/sympy/sets/sets.py @@ -978,8 +978,8 @@ def _eval_imageset(self, f): else: return imageset(f, Interval(self.start, sing[0], self.left_open, True)) + \ - Union(*[imageset(f, Interval(sing[i], sing[i + 1]), True, True) - for i in range(1, len(sing) - 1)]) + \ + Union(*[imageset(f, Interval(sing[i], sing[i + 1], True, True)) + for i in range(0, len(sing) - 1)]) + \ imageset(f, Interval(sing[-1], self.end, True, self.right_open)) @property diff --git a/sympy/sets/tests/test_sets.py b/sympy/sets/tests/test_sets.py index 46e1749cc91..754215fc210 100644 --- a/sympy/sets/tests/test_sets.py +++ b/sympy/sets/tests/test_sets.py @@ -862,3 +862,13 @@ def test_issue_9637(): Interval(2, 3, left_open=True)), a, evaluate=False)) assert Complement(a, S.Reals) == Complement(a, S.Reals, evaluate=False) assert Complement(a, Interval(1, 3)) == Complement(a, Interval(1, 3), evaluate=False) + + +def test_issue_10113(): + f = x**2/(x**2 - 4) + assert imageset(x, f, S.Reals) == Union(Interval(-oo, 0, True), + Interval(1, oo, True, True)) + assert imageset(x, f, Interval(-2, 2)) == Interval(-oo, 0, True) + assert imageset(x, f, Interval(-2, 3)) == Union(Interval(-oo, 0, True), + Interval(Rational(9, 5), + oo, False, True))