def test_same_distribution_after_business_subtraction_control_for_business(self): """Removes 1,750 sector_1 businesses and 500 sector 15 businesses. Test that the distribution (in %) of sector 1 businesses and sector 15 businesses across buildings before and after the subtraction are relatively equal. """ storage = StorageFactory().get_storage('dict_storage') business_table_name = 'business_set' storage.write_table(table_name=business_table_name, table_data=self.business_data) business_set = BusinessDataset(in_storage=storage, in_table_name=business_table_name) ect_set_table_name = 'ect_set' storage.write_table(table_name=ect_set_table_name, table_data=self.annual_business_control_totals_data) ect_set = EmploymentControlTotalDataset(in_storage=storage, in_table_name=ect_set_table_name) # unplace half of the businesses business_set.modify_attribute(name="building_id", data=zeros(int(business_set.size()/2)), index=arange(int(business_set.size()/2))) #run model model = BusinessTransitionModel() model.run(year=2000, business_set=business_set, control_totals=ect_set) results = business_set.size() should_be = [10750] self.assertEqual(ma.allequal(should_be, results), True, "Error in total number of businesses.") def run_model(): storage = StorageFactory().get_storage('dict_storage') business_set_table_name = 'business_set' storage.write_table( table_name=business_set_table_name, table_data=self.business_data, ) business_set = BusinessDataset(in_storage=storage, in_table_name=business_set_table_name) model = BusinessTransitionModel() model.run(year=2000, business_set=business_set, control_totals=ect_set) # check that the distribution of businesses is the same before and after subtracting businesses results = self.get_count_all_sectors_and_buildings(business_set) return results expected_results = array([4000.0/7000.0*5250.0, 1000, 1000.0/3000.0*2500, 2000.0/7000.0*5250.0, 1000, 1000/3000.0*2500, 1000.0/7000.0*5250.0, 1000, 1000/3000.0*2500]) self.run_stochastic_test(__file__, run_model, expected_results, 10)
def test_same_distribution_after_business_subtraction_control_for_business( self): """Removes 1,750 sector_1 businesses and 500 sector 15 businesses. Test that the distribution (in %) of sector 1 businesses and sector 15 businesses across buildings before and after the subtraction are relatively equal. """ storage = StorageFactory().get_storage('dict_storage') business_table_name = 'business_set' storage.write_table(table_name=business_table_name, table_data=self.business_data) business_set = BusinessDataset(in_storage=storage, in_table_name=business_table_name) ect_set_table_name = 'ect_set' storage.write_table( table_name=ect_set_table_name, table_data=self.annual_business_control_totals_data) ect_set = EmploymentControlTotalDataset( in_storage=storage, in_table_name=ect_set_table_name) # unplace half of the businesses business_set.modify_attribute(name="building_id", data=zeros(int(business_set.size() / 2)), index=arange(int(business_set.size() / 2))) #run model model = BusinessTransitionModel() model.run(year=2000, business_set=business_set, control_totals=ect_set) results = business_set.size() should_be = [10750] self.assertEqual(ma.allequal(should_be, results), True, "Error in total number of businesses.") def run_model(): storage = StorageFactory().get_storage('dict_storage') business_set_table_name = 'business_set' storage.write_table( table_name=business_set_table_name, table_data=self.business_data, ) business_set = BusinessDataset( in_storage=storage, in_table_name=business_set_table_name) model = BusinessTransitionModel() model.run(year=2000, business_set=business_set, control_totals=ect_set) # check that the distribution of businesses is the same before and after subtracting businesses results = self.get_count_all_sectors_and_buildings(business_set) return results expected_results = array([ 4000.0 / 7000.0 * 5250.0, 1000, 1000.0 / 3000.0 * 2500, 2000.0 / 7000.0 * 5250.0, 1000, 1000 / 3000.0 * 2500, 1000.0 / 7000.0 * 5250.0, 1000, 1000 / 3000.0 * 2500 ]) self.run_stochastic_test(__file__, run_model, expected_results, 10)