def _write_results(self, indicators, source_data, file_name_for_indicator_results, display_error_box): #generate a static html page for browsing outputted indicators and store the path to the html results_page_path = None results = IndicatorResults() try: results_page_path = results.create_page( source_data = source_data, page_name = file_name_for_indicator_results, indicators = indicators) except: message = 'failed to generate indicator results page' if display_error_box: display_message_dialog(message) logger.enable_hidden_error_and_warning_words() logger.log_warning(message) logger.disable_hidden_error_and_warning_words() if results_page_path is not None: results_page_path = 'file://' + results_page_path return results_page_path
def test_clip_to_zero_if_needed(self): from numpy import array, ma logger.enable_hidden_error_and_warning_words() result = clip_to_zero_if_needed(array([0,3,6,-4,8]), "test1") logger.disable_hidden_error_and_warning_words() self.assertEqual(ma.allequal(result, array([0,3,6,0,8])), True, msg = "Error in test_clip_to_zero_if_needed" ) result = clip_to_zero_if_needed(array([0,3,6,4,8.5]), "test2")
def test_casting(self): storage = StorageFactory().get_storage('dict_storage') storage.write_table( table_name='tests', table_data={ "a_dependent_variable":array([1,5,1000]), "id":array([1,3,4]) } ) dataset = Dataset(in_storage=storage, in_table_name='tests', id_name="id", dataset_name="tests") logger.enable_hidden_error_and_warning_words() # Next line should cause a 'WARNING' to be logged. dataset.compute_variables("opus_core.tests.a_test_variable", resources=Resources({"check_variables":"*"})) logger.disable_hidden_error_and_warning_words() values = dataset.get_attribute("a_test_variable") self.assertEqual(values.dtype.type, int8)
def test_casting(self): storage = StorageFactory().get_storage('dict_storage') storage.write_table(table_name='tests', table_data={ "a_dependent_variable": array([1, 5, 1000]), "id": array([1, 3, 4]) }) dataset = Dataset(in_storage=storage, in_table_name='tests', id_name="id", dataset_name="tests") logger.enable_hidden_error_and_warning_words() # Next line should cause a 'WARNING' to be logged. dataset.compute_variables("opus_core.tests.a_test_variable", resources=Resources({"check_variables": "*"})) logger.disable_hidden_error_and_warning_words() values = dataset.get_attribute("a_test_variable") self.assertEqual(values.dtype.type, int8)
def test_infinite_values(self): storage = StorageFactory().get_storage('dict_storage') gridcell_set_table_name = 'gridcell_set' storage.write_table( table_name=gridcell_set_table_name, table_data={ "residential_land_value":array([100, 1e+50, 800, 0], dtype=float32), "nonresidential_land_value":array([1e+100, 0, 20, 0], dtype=float32), "grid_id": array([1,2,3,4]) } ) gridcell_set = GridcellDataset(in_storage=storage, in_table_name=gridcell_set_table_name) lp = LandPriceModel() logger.enable_hidden_error_and_warning_words() lp.post_check(gridcell_set) logger.disable_hidden_error_and_warning_words() result1 = gridcell_set.get_attribute("residential_land_value") result2 = gridcell_set.get_attribute("nonresidential_land_value") self.assertEqual(ma.allclose(result1, array([100, 1e+38, 800, 0]), rtol=1e-3), True) self.assertEqual(ma.allclose(result2, array([1e+38, 0, 20, 0]), rtol=1e-3), True)
def test_test_invalid_spec(self): from opus_core.configuration import Configuration logger.enable_hidden_error_and_warning_words() spec = ChunkSpecification(Configuration({'fnchunks':3})) logger.disable_hidden_error_and_warning_words()
def tearDown(self): logger.disable_hidden_error_and_warning_words()
def test_test_invalid_spec(self): from opus_core.configuration import Configuration logger.enable_hidden_error_and_warning_words() spec = ChunkSpecification(Configuration({'fnchunks': 3})) logger.disable_hidden_error_and_warning_words()
def tearDown(self): logger.disable_hidden_error_and_warning_words() rmtree(self.tempdir)