def test_pca_DEU_2010_pass(self): """ Test Processed Capital value Germany 2010.""" ref_year = 2010 cntry_iso = 'DEU' res_year, res_val, q = world_bank_wealth_account(cntry_iso, ref_year, no_land=0) res_year_noland, res_val_noland, q = \ world_bank_wealth_account(cntry_iso, ref_year, no_land=1) ref_val = 17675048450284.9 ref_val_noland = 14254071330874.9 self.assertEqual(res_year, ref_year) self.assertEqual(q, 1) self.assertEqual(res_val, ref_val) self.assertEqual(res_year_noland, ref_year) self.assertEqual(res_val_noland, ref_val_noland)
def test_switzerland300_pc2016_pass(self): """Create LitPop entity for Switzerland 2016 with admin1 and produced capital:""" country_name = ['CHE'] fin_mode = 'pc' resolution = 300 ref_year = 2016 adm1 = True cons = True comparison_total_val = world_bank_wealth_account(country_name[0], ref_year, no_land=1)[1] ent = LitPop() with self.assertLogs('climada.entity.exposures.litpop', level='INFO') as cm: ent.set_country(country_name, res_arcsec=resolution, reference_year=ref_year, fin_mode=fin_mode, conserve_cntrytotal=cons, calc_admin1=adm1) # print(cm) self.assertIn('Generating LitPop data at a resolution of 300 arcsec', cm.output[0]) self.assertEqual(np.around(ent.gdf.value.sum(), 0), np.around(comparison_total_val, 0)) self.assertAlmostEqual(ent.gdf.value.sum() / 2225854927260, 1.0)
def test_pca_CUB_2015_pass(self): """ Test Processed Capital value Cuba 2015 (missing value).""" ref_year = 2015 cntry_iso = 'CUB' res_year, res_val, q = world_bank_wealth_account(cntry_iso, ref_year, no_land=1) ref_val = 108675762920.0 self.assertEqual(q, 0) self.assertEqual(res_year, ref_year) self.assertEqual(res_val, ref_val)
def test_pca_DEU_2010_pass(self): """Test Processed Capital value Germany 2010.""" ref_year = 2010 cntry_iso = 'DEU' res_year, res_val, q = world_bank_wealth_account(cntry_iso, ref_year, no_land=0) res_year_noland, res_val_noland, q = world_bank_wealth_account( cntry_iso, ref_year, no_land=1) ref_val = [17675048450284.9, 19767982562092.2] # second value as updated by worldbank on # October 27 2021 ref_val_noland = [14254071330874.9, 15941921421042.1] # dito self.assertEqual(res_year, ref_year) self.assertEqual(q, 1) self.assertIn(res_val, ref_val) self.assertEqual(res_year_noland, ref_year) self.assertIn(res_val_noland, ref_val_noland)
def test_tow_IND_1985_pass(self): """ Test Total Wealth value India 1985 (outside year range).""" ref_year = 1985 cntry_iso = 'IND' var_name = 'NW.TOW.TO' res_year, res_val, _ = world_bank_wealth_account(cntry_iso, ref_year, \ variable_name=var_name) ref_val = 5415188681948.6 self.assertEqual(res_year, ref_year) self.assertEqual(res_val, ref_val)
def test_pca_CHE_2008_pass(self): """ Test Prcoessed Capital per capita Switzerland 2008 (interp.).""" ref_year = 2008 cntry_iso = 'CHE' var_name = 'NW.PCA.PC' res_year, res_val, _ = world_bank_wealth_account(cntry_iso, ref_year, \ variable_name=var_name, no_land=0) ref_val = 328398.7 self.assertEqual(res_year, ref_year) self.assertEqual(res_val, ref_val)
def test_pca_CHE_2008_pass(self): """Test Prcoessed Capital per capita Switzerland 2008 (interp.).""" ref_year = 2008 cntry_iso = 'CHE' var_name = 'NW.PCA.PC' res_year, res_val, _ = world_bank_wealth_account( cntry_iso, ref_year, variable_name=var_name, no_land=0) ref_val = [328398.7, 369081.0 ] # second value as updated by worldbank on October 27 2021 self.assertEqual(res_year, ref_year) self.assertIn(res_val, ref_val)
def test_tow_IND_1985_pass(self): """Test Total Wealth value India 1985 (outside year range).""" ref_year = 1985 cntry_iso = 'IND' var_name = 'NW.TOW.TO' res_year, res_val, _ = world_bank_wealth_account( cntry_iso, ref_year, variable_name=var_name) ref_val = [5415188681942.5, 5861193808788.2] # second value as updated by worldbank on # October 27 2021 self.assertEqual(res_year, ref_year) self.assertIn(res_val, ref_val)
def test_tow_IND_1985_pass(self): """Test Total Wealth value India 1985 (outside year range).""" ref_year = 1985 cntry_iso = 'IND' var_name = 'NW.TOW.TO' res_year, res_val, _ = world_bank_wealth_account( cntry_iso, ref_year, variable_name=var_name) ref_val = [ 5415188681934.5, # values sporadically updated by worldbank 5861193808779.6 ] # <- October 27 2021 self.assertEqual(res_year, ref_year) self.assertIn(res_val, ref_val)
def test_switzerland300_pc2013_pass(self): """Create LitPop entity for Switzerland 2013 for produced capital:""" country_name = ['CHE'] fin_mode = 'pc' resolution = 300 ref_year = 2013 comparison_total_val = world_bank_wealth_account(country_name[0], \ ref_year, no_land=1)[1] ent = LitPop() with self.assertLogs('climada.entity.exposures.litpop', level='INFO') as cm: ent.set_country(country_name, res_arcsec=resolution, \ reference_year=ref_year, fin_mode=fin_mode) # print(cm) self.assertIn('Generating LitPop data at a resolution of 300 arcsec', cm.output[0]) self.assertTrue(ent.value.sum() == comparison_total_val) self.assertTrue(np.int(ent.value.sum().round()) == 2296358085749)
def test_switzerland300_reproject_first_false_pass(self): """Create LitPop entity for Switzerland 2013 for produced capital and resampling after combining Lit and Pop:""" country_name = ['CHE'] fin_mode = 'pc' resolution = 300 ref_year = 2016 comparison_total_val = world_bank_wealth_account(country_name[0], ref_year, no_land=1)[1] ent = lp.LitPop() ent.set_countries(country_name, res_arcsec=resolution, reference_year=ref_year, fin_mode=fin_mode, reproject_first=False) self.assertEqual(ent.gdf.value.sum(), comparison_total_val) self.assertEqual(ent.value_unit, 'USD')
def test_switzerland300_admin1_pc2016_pass(self): """Create LitPop entity for Switzerland 2016 with admin1 and produced capital:""" country_name = ['CHE'] fin_mode = 'pc' resolution = 300 ref_year = 2016 adm1 = True comparison_total_val = world_bank_wealth_account(country_name[0], ref_year, no_land=1)[1] ent = lp.LitPop.from_countries(country_name, res_arcsec=resolution, reference_year=ref_year, fin_mode=fin_mode, admin1_calc=adm1) self.assertAlmostEqual(np.around(ent.gdf.value.sum() * 1e-9, 0), np.around(comparison_total_val * 1e-9, 0), places=0) self.assertEqual(ent.value_unit, 'USD')
'SUR', 'SWZ', 'SWE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', \ 'TLS', 'TGO', 'TON', 'TTO', 'TUN', 'TKM', 'TCA', 'TUV', \ 'UGA', 'UKR', 'ARE', 'GBR', 'URY', 'UZB', 'VUT', 'VEN', \ 'VNM', 'VGB', 'VIR', 'WLF', 'YEM', 'ZMB', 'ZWE'] """ # write countries' metadata to CSV: countries_metadata = pd.DataFrame(columns=['country_name','iso3',\ 'region_id', 'total_value', 'pc']) if not 'success' in locals(): success = list() for c in iso_cntry: print(c.name) if (c.alpha3 in success) or (c.alpha3 in countries): countries_metadata = countries_metadata.append({'country_name' : c.name, \ 'iso3' : c.alpha3, \ 'region_id' : c.numeric, \ 'total_value' : world_bank_wealth_account(c.alpha3, 2014)[1] , \ 'pc' : world_bank_wealth_account(c.alpha3, 2014)[2]} , \ ignore_index=True) else: countries_metadata = countries_metadata.append({'country_name' : c.name, \ 'iso3' : c.alpha3, \ 'region_id' : c.numeric, \ 'total_value' : float('NaN')} , \ ignore_index=True) countries_metadata.to_csv(os.path.join(output_path, \ 'LitPop_countries_META_pc_' + str(yyyy) + \ '_' + version + '.csv'))