From 716bdbb7cddfe6588b512c1532308ba34c104e87 Mon Sep 17 00:00:00 2001 From: Jonathan Kamens Date: Thu, 5 Mar 2015 14:23:28 -0500 Subject: [PATCH] BUG: Fix >= comparison for Cythonized Security object The >= comparison for the Cythonized Security object was actually doing <=. Fix this and add unit tests for all the Security object rich comparison operators. --- tests/test_security_object.py | 29 +++++++++++++++++++++++++++++ zipline/assets/_securities.pyx | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 tests/test_security_object.py diff --git a/tests/test_security_object.py b/tests/test_security_object.py new file mode 100644 index 00000000..1c02c822 --- /dev/null +++ b/tests/test_security_object.py @@ -0,0 +1,29 @@ +from unittest import TestCase +from zipline.assets._securities import Security + + +class TestSecurityRichCmp(TestCase): + def test_lt(self): + self.assertTrue(Security(3) < Security(4)) + self.assertFalse(Security(4) < Security(4)) + self.assertFalse(Security(5) < Security(4)) + + def test_le(self): + self.assertTrue(Security(3) <= Security(4)) + self.assertTrue(Security(4) <= Security(4)) + self.assertFalse(Security(5) <= Security(4)) + + def test_eq(self): + self.assertFalse(Security(3) == Security(4)) + self.assertTrue(Security(4) == Security(4)) + self.assertFalse(Security(5) == Security(4)) + + def test_ge(self): + self.assertFalse(Security(3) >= Security(4)) + self.assertTrue(Security(4) >= Security(4)) + self.assertTrue(Security(5) >= Security(4)) + + def test_gt(self): + self.assertFalse(Security(3) > Security(4)) + self.assertFalse(Security(4) > Security(4)) + self.assertTrue(Security(5) > Security(4)) diff --git a/zipline/assets/_securities.pyx b/zipline/assets/_securities.pyx index 6f8f2ebb..3d7cf539 100644 --- a/zipline/assets/_securities.pyx +++ b/zipline/assets/_securities.pyx @@ -120,7 +120,7 @@ cdef class Security: return compared == 1 elif op == 5: # >= - return compared == -1 or compared == 0 + return compared == 1 or compared == 0 def __str__(self): if self.symbol: