Example #1
0
class SimpleModelTest(opus_unittest.OpusTestCase):
    def setUp(self):
        self.data = {
            'id':
            arange(10) + 1,
            'attribute':
            array([3000, 2800, 1000, 550, 600, 1000, 2000, 500, 100, 1000])
        }
        storage = StorageFactory().get_storage('dict_storage')
        storage.write_table(table_name='dataset', table_data=self.data)
        self.dataset = Dataset(in_storage=storage,
                               in_table_name='dataset',
                               id_name=['id'])

    def test_simple_model(self):
        m = SimpleModel()
        m.run(self.dataset,
              'sqrt(dataset.attribute)',
              outcome_attribute='sqrtattr')
        self.assertEqual(
            ma.allclose(self.dataset.get_attribute('sqrtattr'),
                        sqrt(self.data['attribute'])), True)
        self.assertEqual(
            'sqrtattr' in self.dataset.get_primary_attribute_names(), True)

    def test_simple_model_without_outcome_attribute(self):
        m = SimpleModel()
        m.run(self.dataset, 'lattr = ln(dataset.attribute)')
        self.assertEqual(
            ma.allclose(self.dataset.get_attribute('lattr'),
                        log(self.data['attribute'])), True)
        self.assertEqual('lattr' in self.dataset.get_primary_attribute_names(),
                         True)
class SimpleModelTest(opus_unittest.OpusTestCase):
    def setUp(self):
        self.data = {
            'id': arange(10)+1,
            'attribute':  array([3000,2800,1000,550,600,1000,2000,500,100,1000]),
            'sqrt_outcome': zeros(10)
        }
        storage = StorageFactory().get_storage('dict_storage')
        storage.write_table(table_name = 'dataset', table_data = self.data)
        self.dataset = Dataset(in_storage=storage, in_table_name='dataset', id_name=['id'])

    def test_simple_model(self):
        m = SimpleModel()
        m.run(self.dataset, 'sqrt(dataset.attribute)', outcome_attribute='sqrtattr')
        self.assertEqual(ma.allclose(self.dataset.get_attribute('sqrtattr'), sqrt(self.data['attribute'])), True)
        self.assertEqual('sqrtattr' in self.dataset.get_primary_attribute_names(), True)

    def test_simple_model_with_filter(self):
        m = SimpleModel()
        m.run(self.dataset, 'sqrt(dataset.attribute)', outcome_attribute='sqrt_outcome', dataset_filter='dataset.attribute>1000')
        expected = array([1, 1, 0, 0, 0, 0, 1, 0, 0, 0]) * sqrt(self.data['attribute'])
        self.assertEqual(ma.allclose(self.dataset.get_attribute('sqrt_outcome'), 
                                     expected), True)
        self.assertEqual('sqrt_outcome' in self.dataset.get_primary_attribute_names(), True)

    def MASKEDtest_simple_model_with_random_filter(self):
        m = SimpleModel()
        m.run(self.dataset, 'sqrt(dataset.attribute)', 
              outcome_attribute='sqrt_outcome', 
              dataset_filter='(dataset.attribute>=1000) & (random_like(dataset.attribute)<=0.5)',
             )
        con_filter = self.dataset['attribute']>=1000
        results = self.dataset['sqrt_outcome'][con_filter]
        expected = sqrt(self.data['attribute'])[con_filter]
        #test half of the elements passing filter are being sqrt
        self.assertEqual((results==expected).sum(), expected.size/2)
        self.assertEqual((results!=expected).sum(), expected.size/2)
        
    def test_simple_model_without_outcome_attribute(self):
        m = SimpleModel()
        m.run(self.dataset, 'lattr = ln(dataset.attribute)')
        self.assertEqual(ma.allclose(self.dataset.get_attribute('lattr'), log(self.data['attribute'])), True)
        self.assertEqual('lattr' in self.dataset.get_primary_attribute_names(), True)
        
    def test_simple_model_with_outcome_values(self):
        m = SimpleModel()
        m.run(self.dataset,  outcome_attribute='iniattr', outcome_values=zeros(10)-1)
        self.assertEqual(ma.allclose(self.dataset.get_attribute('iniattr'), array(10*[-1])), True)
        self.assertEqual('iniattr' in self.dataset.get_primary_attribute_names(), True)
        # run with filter
        m.run(self.dataset,  outcome_attribute='iniattr', outcome_values=arange(10)+1, dataset_filter='dataset.attribute>1000')
        expected = array([1, 2, -1, -1, -1, -1, 7, -1, -1, -1])
        self.assertEqual(ma.allclose(self.dataset.get_attribute('iniattr'), expected), True)
Example #3
0
class DeleteAttributeModelTest(opus_unittest.OpusTestCase):
    def setUp(self):
        self.data = {
            'id': arange(10)+1,
            'attribute':  array([3000,2800,1000,550,600,1000,2000,500,100,1000]),
        }
        storage = StorageFactory().get_storage('dict_storage')
        storage.write_table(table_name = 'dataset', table_data = self.data)
        self.dataset = Dataset(in_storage=storage, in_table_name='dataset', id_name=['id'])

    def test_delete_attribute_model(self):
        m = DeleteAttributeModel()
        m.run(self.dataset, 'attr')
        self.assertEqual('attribute' in self.dataset.get_primary_attribute_names(), True)
        m.run(self.dataset, 'attribute')
        self.assertEqual('attribute' in self.dataset.get_primary_attribute_names(), False)
class SimpleModelTest(opus_unittest.OpusTestCase):
    def setUp(self):
        self.data = {
            'id': arange(10)+1,
            'attribute':  array([3000,2800,1000,550,600,1000,2000,500,100,1000])
        }
        storage = StorageFactory().get_storage('dict_storage')
        storage.write_table(table_name = 'dataset', table_data = self.data)
        self.dataset = Dataset(in_storage=storage, in_table_name='dataset', id_name=['id'])

    def test_simple_model(self):
        m = SimpleModel()
        m.run(self.dataset, 'sqrt(dataset.attribute)', outcome_attribute='sqrtattr')
        self.assertEqual(ma.allclose(self.dataset.get_attribute('sqrtattr'), sqrt(self.data['attribute'])), True)
        self.assertEqual('sqrtattr' in self.dataset.get_primary_attribute_names(), True)
        
    def test_simple_model_without_outcome_attribute(self):
        m = SimpleModel()
        m.run(self.dataset, 'lattr = ln(dataset.attribute)')
        self.assertEqual(ma.allclose(self.dataset.get_attribute('lattr'), log(self.data['attribute'])), True)
        self.assertEqual('lattr' in self.dataset.get_primary_attribute_names(), True)
Example #5
0
class SimpleModelTest(opus_unittest.OpusTestCase):
    def setUp(self):
        self.data = {
            'id':
            arange(10) + 1,
            'attribute':
            array([3000, 2800, 1000, 550, 600, 1000, 2000, 500, 100, 1000]),
            'sqrt_outcome':
            zeros(10)
        }
        storage = StorageFactory().get_storage('dict_storage')
        storage.write_table(table_name='dataset', table_data=self.data)
        self.dataset = Dataset(in_storage=storage,
                               in_table_name='dataset',
                               id_name=['id'])

    def test_simple_model(self):
        m = SimpleModel()
        m.run(self.dataset,
              'sqrt(dataset.attribute)',
              outcome_attribute='sqrtattr')
        self.assertEqual(
            ma.allclose(self.dataset.get_attribute('sqrtattr'),
                        sqrt(self.data['attribute'])), True)
        self.assertEqual(
            'sqrtattr' in self.dataset.get_primary_attribute_names(), True)

    def test_simple_model_with_filter(self):
        m = SimpleModel()
        m.run(self.dataset,
              'sqrt(dataset.attribute)',
              outcome_attribute='sqrt_outcome',
              dataset_filter='dataset.attribute>1000')
        expected = array([1, 1, 0, 0, 0, 0, 1, 0, 0, 0]) * sqrt(
            self.data['attribute'])
        self.assertEqual(
            ma.allclose(self.dataset.get_attribute('sqrt_outcome'), expected),
            True)
        self.assertEqual(
            'sqrt_outcome' in self.dataset.get_primary_attribute_names(), True)

    def MASKEDtest_simple_model_with_random_filter(self):
        m = SimpleModel()
        m.run(
            self.dataset,
            'sqrt(dataset.attribute)',
            outcome_attribute='sqrt_outcome',
            dataset_filter=
            '(dataset.attribute>=1000) & (random_like(dataset.attribute)<=0.5)',
        )
        con_filter = self.dataset['attribute'] >= 1000
        results = self.dataset['sqrt_outcome'][con_filter]
        expected = sqrt(self.data['attribute'])[con_filter]
        #test half of the elements passing filter are being sqrt
        self.assertEqual((results == expected).sum(), expected.size / 2)
        self.assertEqual((results != expected).sum(), expected.size / 2)

    def test_simple_model_without_outcome_attribute(self):
        m = SimpleModel()
        m.run(self.dataset, 'lattr = ln(dataset.attribute)')
        self.assertEqual(
            ma.allclose(self.dataset.get_attribute('lattr'),
                        log(self.data['attribute'])), True)
        self.assertEqual('lattr' in self.dataset.get_primary_attribute_names(),
                         True)

    def test_simple_model_with_outcome_values(self):
        m = SimpleModel()
        m.run(self.dataset,
              outcome_attribute='iniattr',
              outcome_values=zeros(10) - 1)
        self.assertEqual(
            ma.allclose(self.dataset.get_attribute('iniattr'),
                        array(10 * [-1])), True)
        self.assertEqual(
            'iniattr' in self.dataset.get_primary_attribute_names(), True)
        # run with filter
        m.run(self.dataset,
              outcome_attribute='iniattr',
              outcome_values=arange(10) + 1,
              dataset_filter='dataset.attribute>1000')
        expected = array([1, 2, -1, -1, -1, -1, 7, -1, -1, -1])
        self.assertEqual(
            ma.allclose(self.dataset.get_attribute('iniattr'), expected), True)