Пример #1
0
    def test_asset_comparisons(self):

        s_23 = Asset(23)
        s_24 = Asset(24)

        self.assertEqual(s_23, s_23)
        self.assertEqual(s_23, 23)
        self.assertEqual(23, s_23)
        self.assertEqual(int32(23), s_23)
        self.assertEqual(int64(23), s_23)
        self.assertEqual(s_23, int32(23))
        self.assertEqual(s_23, int64(23))
        # Check all int types (includes long on py2):
        for int_type in integer_types:
            self.assertEqual(int_type(23), s_23)
            self.assertEqual(s_23, int_type(23))

        self.assertNotEqual(s_23, s_24)
        self.assertNotEqual(s_23, 24)
        self.assertNotEqual(s_23, "23")
        self.assertNotEqual(s_23, 23.5)
        self.assertNotEqual(s_23, [])
        self.assertNotEqual(s_23, None)
        # Compare to a value that doesn't fit into a platform int:
        self.assertNotEqual(s_23, sys.maxsize + 1)

        self.assertLess(s_23, s_24)
        self.assertLess(s_23, 24)
        self.assertGreater(24, s_23)
        self.assertGreater(s_24, s_23)
Пример #2
0
 def test_type_mismatch(self):
     if sys.version_info.major < 3:
         self.assertIsNotNone(Asset(3) < 'a')
         self.assertIsNotNone('a' < Asset(3))
     else:
         with self.assertRaises(TypeError):
             Asset(3) < 'a'
         with self.assertRaises(TypeError):
             'a' < Asset(3)
Пример #3
0
 def test_to_and_from_dict(self):
     asset_from_dict = Asset.from_dict(self.asset.to_dict())
     for attr in self.asset_attrs:
         self.assertEqual(
             getattr(self.asset, attr),
             getattr(asset_from_dict, attr),
         )
Пример #4
0
    def test_asset_is_pickleable(self):

        # Very wow
        s = Asset(
            1337,
            symbol="DOGE",
            asset_name="DOGECOIN",
            start_date=pd.Timestamp('2013-12-08 9:31AM', tz='UTC'),
            end_date=pd.Timestamp('2014-06-25 11:21AM', tz='UTC'),
            first_traded=pd.Timestamp('2013-12-08 9:31AM', tz='UTC'),
            exchange='THE MOON',
        )
        s_unpickled = pickle.loads(pickle.dumps(s))

        attrs_to_check = ['end_date',
                          'exchange',
                          'first_traded',
                          'end_date',
                          'asset_name',
                          'start_date',
                          'sid',
                          'start_date',
                          'symbol']

        for attr in attrs_to_check:
            self.assertEqual(getattr(s, attr), getattr(s_unpickled, attr))
Пример #5
0
    def test_non_existent_asset(self):
        """
        Test that indexing into a term with a non-existent asset raises the
        proper exception.
        """
        my_asset = Asset(
            0,
            exchange_info=ExchangeInfo('TEST FULL', 'TEST', 'US'),
        )
        returns = Returns(window_length=2, inputs=[self.col])
        returns_slice = returns[my_asset]

        class UsesSlicedInput(CustomFactor):
            window_length = 2
            inputs = [returns_slice]

            def compute(self, today, assets, out, returns_slice):
                pass

        with self.assertRaises(NonExistentAssetInTimeFrame):
            self.run_pipeline(
                Pipeline(columns={'uses_sliced_input': UsesSlicedInput()}),
                self.pipeline_start_date,
                self.pipeline_end_date,
            )
Пример #6
0
    def test_asset_object(self):
        self.assertEquals({5061: 'foo'}[Asset(5061)], 'foo')
        self.assertEquals(Asset(5061), 5061)
        self.assertEquals(5061, Asset(5061))

        self.assertEquals(Asset(5061), Asset(5061))
        self.assertEquals(int(Asset(5061)), 5061)

        self.assertEquals(str(Asset(5061)), 'Asset(5061)')
Пример #7
0
    def test_asset_object(self):
        the_asset = Asset(5061, exchange="bar")

        self.assertEquals({5061: 'foo'}[the_asset], 'foo')
        self.assertEquals(the_asset, 5061)
        self.assertEquals(5061, the_asset)

        self.assertEquals(the_asset, the_asset)
        self.assertEquals(int(the_asset), 5061)

        self.assertEquals(str(the_asset), 'Asset(5061)')
Пример #8
0
    def test_asset_comparisons(self):

        s_23 = Asset(23)
        s_24 = Asset(24)

        self.assertEqual(s_23, s_23)
        self.assertEqual(s_23, 23)
        self.assertEqual(23, s_23)

        self.assertNotEqual(s_23, s_24)
        self.assertNotEqual(s_23, 24)
        self.assertNotEqual(s_23, "23")
        self.assertNotEqual(s_23, 23.5)
        self.assertNotEqual(s_23, [])
        self.assertNotEqual(s_23, None)

        self.assertLess(s_23, s_24)
        self.assertLess(s_23, 24)
        self.assertGreater(24, s_23)
        self.assertGreater(s_24, s_23)
Пример #9
0
    def test_instance_caching_of_slices(self):
        my_asset = Asset(1, exchange="TEST")

        f = GenericCustomFactor()
        f_slice = f[my_asset]
        self.assertIs(f_slice, Slice(GenericCustomFactor(), my_asset))

        f = GenericFilter()
        f_slice = f[my_asset]
        self.assertIs(f_slice, Slice(GenericFilter(), my_asset))

        c = GenericClassifier()
        c_slice = c[my_asset]
        self.assertIs(c_slice, Slice(GenericClassifier(), my_asset))
Пример #10
0
    def test_asset_object(self):
        the_asset = Asset(5061,
                          real_sid='5061',
                          exchange_info=ExchangeInfo('bar', 'bar', '??'),
                          currency='USD')

        self.assertEqual({5061: 'foo'}[the_asset], 'foo')
        self.assertEqual(the_asset, 5061)
        self.assertEqual(5061, the_asset)

        self.assertEqual(the_asset, the_asset)
        self.assertEqual(int(the_asset), 5061)

        self.assertEqual(str(the_asset), 'Asset(5061)')
Пример #11
0
    def test_asset_comparisons(self):

        s_23 = Asset(23,
                     real_sid='23',
                     exchange_info=self.test_exchange,
                     currency='USD')
        s_24 = Asset(24,
                     real_sid='24',
                     exchange_info=self.test_exchange,
                     currency='USD')

        self.assertEqual(s_23, s_23)
        self.assertEqual(s_23, 23)
        self.assertEqual(23, s_23)
        self.assertEqual(int32(23), s_23)
        self.assertEqual(int64(23), s_23)
        self.assertEqual(s_23, int32(23))
        self.assertEqual(s_23, int64(23))
        # Check all int types:
        for int_type in integer_types:
            self.assertEqual(int_type(23), s_23)
            self.assertEqual(s_23, int_type(23))

        self.assertNotEqual(s_23, s_24)
        self.assertNotEqual(s_23, 24)
        self.assertNotEqual(s_23, "23")
        self.assertNotEqual(s_23, 23.5)
        self.assertNotEqual(s_23, [])
        self.assertNotEqual(s_23, None)
        # Compare to a value that doesn't fit into a platform int:
        self.assertNotEqual(s_23, sys.maxsize + 1)

        self.assertLess(s_23, s_24)
        self.assertLess(s_23, 24)
        self.assertGreater(24, s_23)
        self.assertGreater(s_24, s_23)
Пример #12
0
    def test_instance_caching_of_slices(self):
        my_asset = Asset(
            1,
            exchange_info=ExchangeInfo("TEST FULL", "TEST", "US"),
        )

        f = GenericCustomFactor()
        f_slice = f[my_asset]
        self.assertIs(f_slice, type(f_slice)(GenericCustomFactor(), my_asset))

        filt = GenericFilter()
        filt_slice = filt[my_asset]
        self.assertIs(filt_slice, type(filt_slice)(GenericFilter(), my_asset))

        c = GenericClassifier()
        c_slice = c[my_asset]
        self.assertIs(c_slice, type(c_slice)(GenericClassifier(), my_asset))
Пример #13
0
    def test_instance_caching_of_slices(self):
        my_asset = Asset(1,
                         real_sid='1',
                         exchange_info=ExchangeInfo('TEST FULL', 'TEST', 'US'),
                         currency='USD')

        f = GenericCustomFactor()
        f_slice = f[my_asset]
        self.assertIs(f_slice, type(f_slice)(GenericCustomFactor(), my_asset))

        filt = GenericFilter()
        filt_slice = filt[my_asset]
        self.assertIs(filt_slice, type(filt_slice)(GenericFilter(), my_asset))

        c = GenericClassifier()
        c_slice = c[my_asset]
        self.assertIs(c_slice, type(c_slice)(GenericClassifier(), my_asset))
Пример #14
0
    def test_instance_caching_of_slices(self):
        my_asset = Asset(
            1,
            exchange_info=ExchangeInfo('TEST FULL', 'TEST', 'US'),
        )

        f = GenericCustomFactor()
        f_slice = f[my_asset]
        self.assertIs(f_slice, Slice(GenericCustomFactor(), my_asset))

        f = GenericFilter()
        f_slice = f[my_asset]
        self.assertIs(f_slice, Slice(GenericFilter(), my_asset))

        c = GenericClassifier()
        c_slice = c[my_asset]
        self.assertIs(c_slice, Slice(GenericClassifier(), my_asset))
Пример #15
0
 def test_to_and_from_dict(self):
     asset_from_dict = Asset.from_dict(self.asset.to_dict())
     for attr in self.asset_attrs:
         self.assertEqual(
             getattr(self.asset, attr), getattr(asset_from_dict, attr),
         )
Пример #16
0
 def test_gt(self):
     self.assertFalse(Asset(3) > Asset(4))
     self.assertFalse(Asset(4) > Asset(4))
     self.assertTrue(Asset(5) > Asset(4))
Пример #17
0
 def test_eq(self):
     self.assertFalse(Asset(3) == Asset(4))
     self.assertTrue(Asset(4) == Asset(4))
     self.assertFalse(Asset(5) == Asset(4))
Пример #18
0
 def test_le(self):
     self.assertTrue(Asset(3) <= Asset(4))
     self.assertTrue(Asset(4) <= Asset(4))
     self.assertFalse(Asset(5) <= Asset(4))
Пример #19
0
class AssetTestCase(TestCase):

    # Dynamically list the Asset properties we want to test.
    asset_attrs = [
        name for name, value in vars(Asset).items()
        if isinstance(value, GetSetDescriptorType)
    ]

    # Very wow
    asset = Asset(
        1337,
        real_sid='1337',
        exchange_info=ExchangeInfo('THE MOON', 'MOON', '??'),
        currency='USD',
        symbol="DOGE",
        asset_name="DOGECOIN",
        start_date=pd.Timestamp('2013-12-08 9:31', tz='UTC'),
        end_date=pd.Timestamp('2014-06-25 11:21', tz='UTC'),
        first_traded=pd.Timestamp('2013-12-08 9:31', tz='UTC'),
        auto_close_date=pd.Timestamp('2014-06-26 11:21', tz='UTC'),
    )

    test_exchange = ExchangeInfo('test full', 'test', '??')
    asset3 = Asset(3,
                   real_sid='3',
                   exchange_info=test_exchange,
                   currency='USD')
    asset4 = Asset(4,
                   real_sid='4',
                   exchange_info=test_exchange,
                   currency='USD')
    asset5 = Asset(5,
                   real_sid='5',
                   exchange_info=ExchangeInfo('still testing', 'still testing',
                                              '??'),
                   currency='USD')

    def test_asset_object(self):
        the_asset = Asset(5061,
                          real_sid='5061',
                          exchange_info=ExchangeInfo('bar', 'bar', '??'),
                          currency='USD')

        self.assertEqual({5061: 'foo'}[the_asset], 'foo')
        self.assertEqual(the_asset, 5061)
        self.assertEqual(5061, the_asset)

        self.assertEqual(the_asset, the_asset)
        self.assertEqual(int(the_asset), 5061)

        self.assertEqual(str(the_asset), 'Asset(5061)')

    def test_to_and_from_dict(self):
        asset_from_dict = Asset.from_dict(self.asset.to_dict())
        for attr in self.asset_attrs:
            self.assertEqual(
                getattr(self.asset, attr),
                getattr(asset_from_dict, attr),
            )

    def test_asset_is_pickleable(self):
        asset_unpickled = pickle.loads(pickle.dumps(self.asset))
        for attr in self.asset_attrs:
            self.assertEqual(
                getattr(self.asset, attr),
                getattr(asset_unpickled, attr),
            )

    def test_asset_comparisons(self):

        s_23 = Asset(23,
                     real_sid='23',
                     exchange_info=self.test_exchange,
                     currency='USD')
        s_24 = Asset(24,
                     real_sid='24',
                     exchange_info=self.test_exchange,
                     currency='USD')

        self.assertEqual(s_23, s_23)
        self.assertEqual(s_23, 23)
        self.assertEqual(23, s_23)
        self.assertEqual(int32(23), s_23)
        self.assertEqual(int64(23), s_23)
        self.assertEqual(s_23, int32(23))
        self.assertEqual(s_23, int64(23))
        # Check all int types:
        for int_type in integer_types:
            self.assertEqual(int_type(23), s_23)
            self.assertEqual(s_23, int_type(23))

        self.assertNotEqual(s_23, s_24)
        self.assertNotEqual(s_23, 24)
        self.assertNotEqual(s_23, "23")
        self.assertNotEqual(s_23, 23.5)
        self.assertNotEqual(s_23, [])
        self.assertNotEqual(s_23, None)
        # Compare to a value that doesn't fit into a platform int:
        self.assertNotEqual(s_23, sys.maxsize + 1)

        self.assertLess(s_23, s_24)
        self.assertLess(s_23, 24)
        self.assertGreater(24, s_23)
        self.assertGreater(s_24, s_23)

    def test_lt(self):
        self.assertTrue(self.asset3 < self.asset4)
        self.assertFalse(self.asset4 < self.asset4)
        self.assertFalse(self.asset5 < self.asset4)

    def test_le(self):
        self.assertTrue(self.asset3 <= self.asset4)
        self.assertTrue(self.asset4 <= self.asset4)
        self.assertFalse(self.asset5 <= self.asset4)

    def test_eq(self):
        self.assertFalse(self.asset3 == self.asset4)
        self.assertTrue(self.asset4 == self.asset4)
        self.assertFalse(self.asset5 == self.asset4)

    def test_ge(self):
        self.assertFalse(self.asset3 >= self.asset4)
        self.assertTrue(self.asset4 >= self.asset4)
        self.assertTrue(self.asset5 >= self.asset4)

    def test_gt(self):
        self.assertFalse(self.asset3 > self.asset4)
        self.assertFalse(self.asset4 > self.asset4)
        self.assertTrue(self.asset5 > self.asset4)

    def test_type_mismatch(self):
        if sys.version_info.major < 3:
            self.assertIsNotNone(self.asset3 < 'a')
            self.assertIsNotNone('a' < self.asset3)
        else:
            with self.assertRaises(TypeError):
                self.asset3 < 'a'
            with self.assertRaises(TypeError):
                'a' < self.asset3
Пример #20
0
class AssetTestCase(TestCase):

    # Dynamically list the Asset properties we want to test.
    asset_attrs = [
        name for name, value in vars(Asset).items()
        if isinstance(value, GetSetDescriptorType)
    ]

    # Very wow
    asset = Asset(
        1337,
        symbol="DOGE",
        asset_name="DOGECOIN",
        start_date=pd.Timestamp('2013-12-08 9:31AM', tz='UTC'),
        end_date=pd.Timestamp('2014-06-25 11:21AM', tz='UTC'),
        first_traded=pd.Timestamp('2013-12-08 9:31AM', tz='UTC'),
        auto_close_date=pd.Timestamp('2014-06-26 11:21AM', tz='UTC'),
        exchange='THE MOON',
    )

    def test_asset_object(self):
        self.assertEquals({5061: 'foo'}[Asset(5061)], 'foo')
        self.assertEquals(Asset(5061), 5061)
        self.assertEquals(5061, Asset(5061))

        self.assertEquals(Asset(5061), Asset(5061))
        self.assertEquals(int(Asset(5061)), 5061)

        self.assertEquals(str(Asset(5061)), 'Asset(5061)')

    def test_to_and_from_dict(self):
        asset_from_dict = Asset.from_dict(self.asset.to_dict())
        for attr in self.asset_attrs:
            self.assertEqual(
                getattr(self.asset, attr),
                getattr(asset_from_dict, attr),
            )

    def test_asset_is_pickleable(self):
        asset_unpickled = pickle.loads(pickle.dumps(self.asset))
        for attr in self.asset_attrs:
            self.assertEqual(
                getattr(self.asset, attr),
                getattr(asset_unpickled, attr),
            )

    def test_asset_comparisons(self):

        s_23 = Asset(23)
        s_24 = Asset(24)

        self.assertEqual(s_23, s_23)
        self.assertEqual(s_23, 23)
        self.assertEqual(23, s_23)
        self.assertEqual(int32(23), s_23)
        self.assertEqual(int64(23), s_23)
        self.assertEqual(s_23, int32(23))
        self.assertEqual(s_23, int64(23))
        # Check all int types (includes long on py2):
        for int_type in integer_types:
            self.assertEqual(int_type(23), s_23)
            self.assertEqual(s_23, int_type(23))

        self.assertNotEqual(s_23, s_24)
        self.assertNotEqual(s_23, 24)
        self.assertNotEqual(s_23, "23")
        self.assertNotEqual(s_23, 23.5)
        self.assertNotEqual(s_23, [])
        self.assertNotEqual(s_23, None)
        # Compare to a value that doesn't fit into a platform int:
        self.assertNotEqual(s_23, sys.maxsize + 1)

        self.assertLess(s_23, s_24)
        self.assertLess(s_23, 24)
        self.assertGreater(24, s_23)
        self.assertGreater(s_24, s_23)

    def test_lt(self):
        self.assertTrue(Asset(3) < Asset(4))
        self.assertFalse(Asset(4) < Asset(4))
        self.assertFalse(Asset(5) < Asset(4))

    def test_le(self):
        self.assertTrue(Asset(3) <= Asset(4))
        self.assertTrue(Asset(4) <= Asset(4))
        self.assertFalse(Asset(5) <= Asset(4))

    def test_eq(self):
        self.assertFalse(Asset(3) == Asset(4))
        self.assertTrue(Asset(4) == Asset(4))
        self.assertFalse(Asset(5) == Asset(4))

    def test_ge(self):
        self.assertFalse(Asset(3) >= Asset(4))
        self.assertTrue(Asset(4) >= Asset(4))
        self.assertTrue(Asset(5) >= Asset(4))

    def test_gt(self):
        self.assertFalse(Asset(3) > Asset(4))
        self.assertFalse(Asset(4) > Asset(4))
        self.assertTrue(Asset(5) > Asset(4))

    def test_type_mismatch(self):
        if sys.version_info.major < 3:
            self.assertIsNotNone(Asset(3) < 'a')
            self.assertIsNotNone('a' < Asset(3))
        else:
            with self.assertRaises(TypeError):
                Asset(3) < 'a'
            with self.assertRaises(TypeError):
                'a' < Asset(3)