#!/usr/bin/python

import os, json, math

MAX_FILE_SIZE = 500 # units - KB
REL_TOL = 6e-04  # relative tolerance for floats
ABS_TOL = 15e-03  # absolute tolerance for floats

PASS = "PASS"

TEXT_FORMAT = "text"  # question type when expected answer is a str, int, float, or bool
TEXT_FORMAT_NAMEDTUPLE = "text namedtuple"  # question type when expected answer is a namedtuple
TEXT_FORMAT_UNORDERED_LIST = "text list_unordered"  # question type when the expected answer is a list where the order does *not* matter
TEXT_FORMAT_ORDERED_LIST = "text list_ordered"  # question type when the expected answer is a list where the order does matter
TEXT_FORMAT_ORDERED_LIST_NAMEDTUPLE = "text list_ordered namedtuple"  # question type when the expected answer is a list of namedtuples where the order does matter
TEXT_FORMAT_SPECIAL_ORDERED_LIST = "text list_special_ordered"  # question type when the expected answer is a list where order does matter, but with possible ties. Elements are ordered according to values in special_ordered_json (with ties allowed)
TEXT_FORMAT_DICT = "text dict"  # question type when the expected answer is a dictionary
TEXT_FORMAT_LIST_DICTS_ORDERED = "text list_dicts_ordered"  # question type when the expected answer is a list of dicts where the order does matter


expected_json = {"cell_test1": (TEXT_FORMAT, 'Afghanistan'),
                 "cell_test2": (TEXT_FORMAT, 2020),
                 "cell_test3": (TEXT_FORMAT, 57),
                 "cell_test4": (TEXT_FORMAT, 96),
                 "cell_test5": (TEXT_FORMAT, 'Upper middle income'),
                 "cell_test6": (TEXT_FORMAT, 43851000),
                 "1": (TEXT_FORMAT, "China"),
                 "2": (TEXT_FORMAT, "India"),
                 "3": (TEXT_FORMAT, "Afghanistan"),
                 "4": (TEXT_FORMAT, "Low income"),
                 "5": (TEXT_FORMAT, 6501786000),
                 "6": (TEXT_FORMAT, 52),
                 "7": (TEXT_FORMAT, 871268000),
                 "8": (TEXT_FORMAT, "Low income"),
                 "9": (TEXT_FORMAT_UNORDERED_LIST, ['Bermuda', 'Canada', 'United States of America']),
                 "get_col_dict_test1": (TEXT_FORMAT_DICT, {'AFG': 'South Asia',
                                         'ALB': 'Europe & Central Asia',
                                         'DZA': 'Middle East & North Africa',
                                         'AND': 'Europe & Central Asia',
                                         'AGO': 'Sub-Saharan Africa',
                                         'ARM': 'Europe & Central Asia',
                                         'AUS': 'East Asia & Pacific',
                                         'AUT': 'Europe & Central Asia',
                                         'AZE': 'Europe & Central Asia',
                                         'BGD': 'South Asia',
                                         'BLR': 'Europe & Central Asia',
                                         'BEL': 'Europe & Central Asia',
                                         'BLZ': 'Latin America & Caribbean',
                                         'BEN': 'Sub-Saharan Africa',
                                         'BMU': 'North America',
                                         'BTN': 'South Asia',
                                         'BIH': 'Europe & Central Asia',
                                         'BWA': 'Sub-Saharan Africa',
                                         'BRA': 'Latin America & Caribbean',
                                         'BRN': 'East Asia & Pacific',
                                         'BGR': 'Europe & Central Asia',
                                         'BFA': 'Sub-Saharan Africa',
                                         'BDI': 'Sub-Saharan Africa',
                                         'CPV': 'Sub-Saharan Africa',
                                         'KHM': 'East Asia & Pacific',
                                         'CMR': 'Sub-Saharan Africa',
                                         'CAN': 'North America',
                                         'CAF': 'Sub-Saharan Africa',
                                         'TCD': 'Sub-Saharan Africa',
                                         'CHL': 'Latin America & Caribbean',
                                         'CHN': 'East Asia & Pacific',
                                         'COL': 'Latin America & Caribbean',
                                         'CRI': 'Latin America & Caribbean',
                                         'CIV': 'Sub-Saharan Africa',
                                         'CUB': 'Latin America & Caribbean',
                                         'CYP': 'Europe & Central Asia',
                                         'CZE': 'Europe & Central Asia',
                                         'DNK': 'Europe & Central Asia',
                                         'DJI': 'Middle East & North Africa',
                                         'DOM': 'Latin America & Caribbean',
                                         'ECU': 'Latin America & Caribbean',
                                         'SLV': 'Latin America & Caribbean',
                                         'EST': 'Europe & Central Asia',
                                         'SWZ': 'Sub-Saharan Africa',
                                         'ETH': 'Sub-Saharan Africa',
                                         'FJI': 'East Asia & Pacific',
                                         'FIN': 'Europe & Central Asia',
                                         'FRA': 'Europe & Central Asia',
                                         'GAB': 'Sub-Saharan Africa',
                                         'GEO': 'Europe & Central Asia',
                                         'DEU': 'Europe & Central Asia',
                                         'GHA': 'Sub-Saharan Africa',
                                         'GIB': 'Europe & Central Asia',
                                         'GRC': 'Europe & Central Asia',
                                         'GRL': 'Europe & Central Asia',
                                         'GTM': 'Latin America & Caribbean',
                                         'GIN': 'Sub-Saharan Africa',
                                         'GNB': 'Sub-Saharan Africa',
                                         'GUY': 'Latin America & Caribbean',
                                         'HTI': 'Latin America & Caribbean',
                                         'HND': 'Latin America & Caribbean',
                                         'HUN': 'Europe & Central Asia',
                                         'ISL': 'Europe & Central Asia',
                                         'IND': 'South Asia',
                                         'IDN': 'East Asia & Pacific',
                                         'IRQ': 'Middle East & North Africa',
                                         'IRL': 'Europe & Central Asia',
                                         'ISR': 'Middle East & North Africa',
                                         'JAM': 'Latin America & Caribbean',
                                         'JOR': 'Middle East & North Africa',
                                         'KAZ': 'Europe & Central Asia',
                                         'KEN': 'Sub-Saharan Africa',
                                         'KIR': 'East Asia & Pacific',
                                         'LVA': 'Europe & Central Asia',
                                         'LSO': 'Sub-Saharan Africa',
                                         'LBR': 'Sub-Saharan Africa',
                                         'LTU': 'Europe & Central Asia',
                                         'LUX': 'Europe & Central Asia',
                                         'MDG': 'Sub-Saharan Africa',
                                         'MWI': 'Sub-Saharan Africa',
                                         'MYS': 'East Asia & Pacific',
                                         'MDV': 'South Asia',
                                         'MLI': 'Sub-Saharan Africa',
                                         'MLT': 'Middle East & North Africa',
                                         'MHL': 'East Asia & Pacific',
                                         'MRT': 'Sub-Saharan Africa',
                                         'MUS': 'Sub-Saharan Africa',
                                         'MEX': 'Latin America & Caribbean',
                                         'MCO': 'Europe & Central Asia',
                                         'MNG': 'East Asia & Pacific',
                                         'MNE': 'Europe & Central Asia',
                                         'MAR': 'Middle East & North Africa',
                                         'MOZ': 'Sub-Saharan Africa',
                                         'MMR': 'East Asia & Pacific',
                                         'NAM': 'Sub-Saharan Africa',
                                         'NRU': 'East Asia & Pacific',
                                         'NPL': 'South Asia',
                                         'NLD': 'Europe & Central Asia',
                                         'NZL': 'East Asia & Pacific',
                                         'NIC': 'Latin America & Caribbean',
                                         'NER': 'Sub-Saharan Africa',
                                         'NGA': 'Sub-Saharan Africa',
                                         'MKD': 'Europe & Central Asia',
                                         'NOR': 'Europe & Central Asia',
                                         'OMN': 'Middle East & North Africa',
                                         'PAK': 'South Asia',
                                         'PLW': 'East Asia & Pacific',
                                         'PAN': 'Latin America & Caribbean',
                                         'PNG': 'East Asia & Pacific',
                                         'PRY': 'Latin America & Caribbean',
                                         'PER': 'Latin America & Caribbean',
                                         'PHL': 'East Asia & Pacific',
                                         'POL': 'Europe & Central Asia',
                                         'PRT': 'Europe & Central Asia',
                                         'ROU': 'Europe & Central Asia',
                                         'RUS': 'Europe & Central Asia',
                                         'RWA': 'Sub-Saharan Africa',
                                         'WSM': 'East Asia & Pacific',
                                         'SEN': 'Sub-Saharan Africa',
                                         'SRB': 'Europe & Central Asia',
                                         'SLE': 'Sub-Saharan Africa',
                                         'SGP': 'East Asia & Pacific',
                                         'SLB': 'East Asia & Pacific',
                                         'SOM': 'Sub-Saharan Africa',
                                         'ZAF': 'Sub-Saharan Africa',
                                         'SSD': 'Sub-Saharan Africa',
                                         'ESP': 'Europe & Central Asia',
                                         'LKA': 'South Asia',
                                         'SDN': 'Sub-Saharan Africa',
                                         'SUR': 'Latin America & Caribbean',
                                         'SWE': 'Europe & Central Asia',
                                         'CHE': 'Europe & Central Asia',
                                         'SYR': 'Middle East & North Africa',
                                         'TJK': 'Europe & Central Asia',
                                         'THA': 'East Asia & Pacific',
                                         'TLS': 'East Asia & Pacific',
                                         'TGO': 'Sub-Saharan Africa',
                                         'TON': 'East Asia & Pacific',
                                         'TUN': 'Middle East & North Africa',
                                         'TKM': 'Europe & Central Asia',
                                         'TUV': 'East Asia & Pacific',
                                         'UGA': 'Sub-Saharan Africa',
                                         'UKR': 'Europe & Central Asia',
                                         'GBR': 'Europe & Central Asia',
                                         'USA': 'North America',
                                         'URY': 'Latin America & Caribbean',
                                         'UZB': 'Europe & Central Asia',
                                         'VUT': 'East Asia & Pacific',
                                         'VNM': 'East Asia & Pacific',
                                         'ZMB': 'Sub-Saharan Africa',
                                         'ZWE': 'Sub-Saharan Africa'}),
                 "get_col_dict_test2": (TEXT_FORMAT_DICT, {'AFG': 61,
                                        'ALB': 93,
                                        'DZA': 93,
                                        'AND': 100,
                                        'AGO': 54,
                                        'ARM': 100,
                                        'AUS': 100,
                                        'AUT': 100,
                                        'AZE': 92,
                                        'BGD': 97,
                                        'BLR': 96,
                                        'BEL': 100,
                                        'BLZ': 97,
                                        'BEN': 65,
                                        'BMU': 100,
                                        'BTN': 96,
                                        'BIH': 96,
                                        'BWA': 88,
                                        'BRA': 98,
                                        'BRN': 100,
                                        'BGR': 100,
                                        'BFA': 50,
                                        'BDI': 60,
                                        'CPV': 85,
                                        'KHM': 68,
                                        'CMR': 64,
                                        'CAN': 100,
                                        'CAF': 42,
                                        'TCD': 44,
                                        'CHL': 100,
                                        'CHN': 92,
                                        'COL': 96,
                                        'CRI': 100,
                                        'CIV': 71,
                                        'CUB': 96,
                                        'CYP': 100,
                                        'CZE': 100,
                                        'DNK': 100,
                                        'DJI': 76,
                                        'DOM': 96,
                                        'ECU': 93,
                                        'SLV': 96,
                                        'EST': 100,
                                        'SWZ': 67,
                                        'ETH': 42,
                                        'FJI': 94,
                                        'FIN': 100,
                                        'FRA': 100,
                                        'GAB': 84,
                                        'GEO': 96,
                                        'DEU': 100,
                                        'GHA': 80,
                                        'GIB': 100,
                                        'GRC': 100,
                                        'GRL': 100,
                                        'GTM': 92,
                                        'GIN': 64,
                                        'GNB': 59,
                                        'GUY': 95,
                                        'HTI': 65,
                                        'HND': 93,
                                        'HUN': 100,
                                        'ISL': 100,
                                        'IND': 88,
                                        'IDN': 89,
                                        'IRQ': 94,
                                        'IRL': 97,
                                        'ISR': 100,
                                        'JAM': 90,
                                        'JOR': 100,
                                        'KAZ': 95,
                                        'KEN': 58,
                                        'KIR': 74,
                                        'LVA': 99,
                                        'LSO': 71,
                                        'LBR': 73,
                                        'LTU': 97,
                                        'LUX': 100,
                                        'MDG': 49,
                                        'MWI': 66,
                                        'MYS': 97,
                                        'MDV': 99,
                                        'MLI': 74,
                                        'MLT': 100,
                                        'MHL': 88,
                                        'MRT': 67,
                                        'MUS': 100,
                                        'MEX': 98,
                                        'MCO': 100,
                                        'MNG': 81,
                                        'MNE': 97,
                                        'MAR': 84,
                                        'MOZ': 51,
                                        'MMR': 74,
                                        'NAM': 83,
                                        'NRU': 100,
                                        'NPL': 88,
                                        'NLD': 100,
                                        'NZL': 100,
                                        'NIC': 81,
                                        'NER': 45,
                                        'NGA': 69,
                                        'MKD': 97,
                                        'NOR': 100,
                                        'OMN': 90,
                                        'PAK': 89,
                                        'PLW': 100,
                                        'PAN': 93,
                                        'PNG': 41,
                                        'PRY': 97,
                                        'PER': 90,
                                        'PHL': 92,
                                        'POL': 100,
                                        'PRT': 100,
                                        'ROU': 100,
                                        'RUS': 97,
                                        'RWA': 57,
                                        'WSM': 91,
                                        'SEN': 79,
                                        'SRB': 93,
                                        'SLE': 58,
                                        'SGP': 100,
                                        'SLB': 69,
                                        'SOM': 49,
                                        'ZAF': 92,
                                        'SSD': 41,
                                        'ESP': 100,
                                        'LKA': 90,
                                        'SDN': 59,
                                        'SUR': 96,
                                        'SWE': 100,
                                        'CHE': 100,
                                        'SYR': 94,
                                        'TJK': 76,
                                        'THA': 100,
                                        'TLS': 75,
                                        'TGO': 64,
                                        'TON': 99,
                                        'TUN': 95,
                                        'TKM': 98,
                                        'TUV': 100,
                                        'UGA': 48,
                                        'UKR': 94,
                                        'GBR': 100,
                                        'USA': 100,
                                        'URY': 100,
                                        'UZB': 98,
                                        'VUT': 90,
                                        'VNM': 93,
                                        'ZMB': 61,
                                        'ZWE': 65}),
                 "get_col_dict_test3": (TEXT_FORMAT_DICT, {'AFG': 38928000,
                                         'ALB': 2878000,
                                         'DZA': 43851000,
                                         'AND': 77000,
                                         'AGO': 32866000,
                                         'ARM': 2963000,
                                         'AUS': 25500000,
                                         'AUT': 9006000,
                                         'AZE': 10139000,
                                         'BGD': 164689000,
                                         'BLR': 9449000,
                                         'BEL': 11590000,
                                         'BLZ': 398000,
                                         'BEN': 12123000,
                                         'BMU': 62000,
                                         'BTN': 772000,
                                         'BIH': 3281000,
                                         'BWA': 2352000,
                                         'BRA': 212559000,
                                         'BRN': 437000,
                                         'BGR': 6948000,
                                         'BFA': 20903000,
                                         'BDI': 11891000,
                                         'CPV': 556000,
                                         'KHM': 16719000,
                                         'CMR': 26546000,
                                         'CAN': 37742000,
                                         'CAF': 4830000,
                                         'TCD': 16426000,
                                         'CHL': 19116000,
                                         'CHN': 1463141000,
                                         'COL': 50883000,
                                         'CRI': 5094000,
                                         'CIV': 26378000,
                                         'CUB': 11327000,
                                         'CYP': 1207000,
                                         'CZE': 10709000,
                                         'DNK': 5792000,
                                         'DJI': 988000,
                                         'DOM': 10848000,
                                         'ECU': 17643000,
                                         'SLV': 6486000,
                                         'EST': 1327000,
                                         'SWZ': 1160000,
                                         'ETH': 114964000,
                                         'FJI': 896000,
                                         'FIN': 5541000,
                                         'FRA': 65274000,
                                         'GAB': 2226000,
                                         'GEO': 3989000,
                                         'DEU': 83784000,
                                         'GHA': 31073000,
                                         'GIB': 34000,
                                         'GRC': 10423000,
                                         'GRL': 57000,
                                         'GTM': 17916000,
                                         'GIN': 13133000,
                                         'GNB': 1968000,
                                         'GUY': 787000,
                                         'HTI': 11403000,
                                         'HND': 9905000,
                                         'HUN': 9660000,
                                         'ISL': 341000,
                                         'IND': 1380004000,
                                         'IDN': 273524000,
                                         'IRQ': 40223000,
                                         'IRL': 4938000,
                                         'ISR': 8656000,
                                         'JAM': 2961000,
                                         'JOR': 10203000,
                                         'KAZ': 18777000,
                                         'KEN': 53771000,
                                         'KIR': 119000,
                                         'LVA': 1886000,
                                         'LSO': 2142000,
                                         'LBR': 5058000,
                                         'LTU': 2722000,
                                         'LUX': 626000,
                                         'MDG': 27691000,
                                         'MWI': 19130000,
                                         'MYS': 32366000,
                                         'MDV': 541000,
                                         'MLI': 20251000,
                                         'MLT': 442000,
                                         'MHL': 59000,
                                         'MRT': 4650000,
                                         'MUS': 1272000,
                                         'MEX': 128933000,
                                         'MCO': 39000,
                                         'MNG': 3278000,
                                         'MNE': 628000,
                                         'MAR': 36911000,
                                         'MOZ': 31255000,
                                         'MMR': 54410000,
                                         'NAM': 2541000,
                                         'NRU': 11000,
                                         'NPL': 29137000,
                                         'NLD': 17135000,
                                         'NZL': 4822000,
                                         'NIC': 6625000,
                                         'NER': 24207000,
                                         'NGA': 206140000,
                                         'MKD': 2083000,
                                         'NOR': 5421000,
                                         'OMN': 5107000,
                                         'PAK': 220892000,
                                         'PLW': 18000,
                                         'PAN': 4315000,
                                         'PNG': 8947000,
                                         'PRY': 7133000,
                                         'PER': 32972000,
                                         'PHL': 109581000,
                                         'POL': 37847000,
                                         'PRT': 10197000,
                                         'ROU': 19238000,
                                         'RUS': 145934000,
                                         'RWA': 12952000,
                                         'WSM': 198000,
                                         'SEN': 16744000,
                                         'SRB': 8737000,
                                         'SLE': 7977000,
                                         'SGP': 5850000,
                                         'SLB': 687000,
                                         'SOM': 15893000,
                                         'ZAF': 59309000,
                                         'SSD': 11194000,
                                         'ESP': 46755000,
                                         'LKA': 21413000,
                                         'SDN': 43849000,
                                         'SUR': 587000,
                                         'SWE': 10099000,
                                         'CHE': 8655000,
                                         'SYR': 17501000,
                                         'TJK': 9538000,
                                         'THA': 69800000,
                                         'TLS': 1318000,
                                         'TGO': 8279000,
                                         'TON': 106000,
                                         'TUN': 11819000,
                                         'TKM': 6031000,
                                         'TUV': 12000,
                                         'UGA': 45741000,
                                         'UKR': 43734000,
                                         'GBR': 67886000,
                                         'USA': 331003000,
                                         'URY': 3474000,
                                         'UZB': 33469000,
                                         'VUT': 307000,
                                         'VNM': 97339000,
                                         'ZMB': 18384000,
                                         'ZWE': 14863000}),
                 "dict_2015_test": (TEXT_FORMAT_DICT, {'AFG': {'country_name': 'Afghanistan',
                                      'region': 'South Asia',
                                      'income_level': 'Low income',
                                      'year': 2015,
                                      'pop': 34414000,
                                      'urban_percent': 25,
                                      'national_alb': 61,
                                      'urban_alb': 87},
                                         'ALB': {'country_name': 'Albania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 2891000,
                                          'urban_percent': 57,
                                          'national_alb': 93,
                                          'urban_alb': 95},
                                         'DZA': {'country_name': 'Algeria',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 39728000,
                                          'urban_percent': 71,
                                          'national_alb': 93,
                                          'urban_alb': 95},
                                         'AND': {'country_name': 'Andorra',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 78000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'AGO': {'country_name': 'Angola',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 27884000,
                                          'urban_percent': 63,
                                          'national_alb': 54,
                                          'urban_alb': 70},
                                         'ARM': {'country_name': 'Armenia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 2926000,
                                          'urban_percent': 63,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'AUS': {'country_name': 'Australia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 23932000,
                                          'urban_percent': 86,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'AUT': {'country_name': 'Austria',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 8679000,
                                          'urban_percent': 58,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'AZE': {'country_name': 'Azerbaijan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 9623000,
                                          'urban_percent': 55,
                                          'national_alb': 92,
                                          'urban_alb': 100},
                                         'BGD': {'country_name': 'Bangladesh',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 156256000,
                                          'urban_percent': 34,
                                          'national_alb': 97,
                                          'urban_alb': 98},
                                         'BLR': {'country_name': 'Belarus',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 9439000,
                                          'urban_percent': 77,
                                          'national_alb': 96,
                                          'urban_alb': 96},
                                         'BEL': {'country_name': 'Belgium',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 11288000,
                                          'urban_percent': 98,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'BLZ': {'country_name': 'Belize',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 361000,
                                          'urban_percent': 45,
                                          'national_alb': 97,
                                          'urban_alb': 100},
                                         'BEN': {'country_name': 'Benin',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 10576000,
                                          'urban_percent': 46,
                                          'national_alb': 65,
                                          'urban_alb': 74},
                                         'BMU': {'country_name': 'Bermuda',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 64000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'BTN': {'country_name': 'Bhutan',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 728000,
                                          'urban_percent': 39,
                                          'national_alb': 96,
                                          'urban_alb': 98},
                                         'BIH': {'country_name': 'Bosnia and Herzegovina',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 3429000,
                                          'urban_percent': 47,
                                          'national_alb': 96,
                                          'urban_alb': 95},
                                         'BWA': {'country_name': 'Botswana',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 2121000,
                                          'urban_percent': 67,
                                          'national_alb': 88,
                                          'urban_alb': 97},
                                         'BRA': {'country_name': 'Brazil',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 204472000,
                                          'urban_percent': 86,
                                          'national_alb': 98,
                                          'urban_alb': 100},
                                         'BRN': {'country_name': 'Brunei Darussalam',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 415000,
                                          'urban_percent': 77,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'BGR': {'country_name': 'Bulgaria',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 7200000,
                                          'urban_percent': 74,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'BFA': {'country_name': 'Burkina Faso',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 18111000,
                                          'urban_percent': 28,
                                          'national_alb': 50,
                                          'urban_alb': 80},
                                         'BDI': {'country_name': 'Burundi',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 10160000,
                                          'urban_percent': 12,
                                          'national_alb': 60,
                                          'urban_alb': 89},
                                         'CPV': {'country_name': 'Cabo Verde',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 525000,
                                          'urban_percent': 64,
                                          'national_alb': 85,
                                          'urban_alb': 92},
                                         'KHM': {'country_name': 'Cambodia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 15521000,
                                          'urban_percent': 22,
                                          'national_alb': 68,
                                          'urban_alb': 89},
                                         'CMR': {'country_name': 'Cameroon',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 23298000,
                                          'urban_percent': 55,
                                          'national_alb': 64,
                                          'urban_alb': 82},
                                         'CAN': {'country_name': 'Canada',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 36027000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'CAF': {'country_name': 'Central African Republic',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 4493000,
                                          'urban_percent': 40,
                                          'national_alb': 42,
                                          'urban_alb': 58},
                                         'TCD': {'country_name': 'Chad',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 14111000,
                                          'urban_percent': 23,
                                          'national_alb': 44,
                                          'urban_alb': 75},
                                         'CHL': {'country_name': 'Chile',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 17969000,
                                          'urban_percent': 87,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'CHN': {'country_name': 'China',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 1430405000,
                                          'urban_percent': 56,
                                          'national_alb': 92,
                                          'urban_alb': 98},
                                         'COL': {'country_name': 'Colombia',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 47521000,
                                          'urban_percent': 80,
                                          'national_alb': 96,
                                          'urban_alb': 100},
                                         'CRI': {'country_name': 'Costa Rica',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 4848000,
                                          'urban_percent': 77,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'CIV': {'country_name': "Côte d'Ivoire",
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 23226000,
                                          'urban_percent': 49,
                                          'national_alb': 71,
                                          'urban_alb': 87},
                                         'CUB': {'country_name': 'Cuba',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 11325000,
                                          'urban_percent': 77,
                                          'national_alb': 96,
                                          'urban_alb': 98},
                                         'CYP': {'country_name': 'Cyprus',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 1161000,
                                          'urban_percent': 67,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'CZE': {'country_name': 'Czech Republic',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 10601000,
                                          'urban_percent': 73,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'DNK': {'country_name': 'Denmark',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 5689000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'DJI': {'country_name': 'Djibouti',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 914000,
                                          'urban_percent': 77,
                                          'national_alb': 76,
                                          'urban_alb': 84},
                                         'DOM': {'country_name': 'Dominican Republic',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 10282000,
                                          'urban_percent': 79,
                                          'national_alb': 96,
                                          'urban_alb': 98},
                                         'ECU': {'country_name': 'Ecuador',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 16212000,
                                          'urban_percent': 63,
                                          'national_alb': 93,
                                          'urban_alb': 100},
                                         'SLV': {'country_name': 'El Salvador',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 6325000,
                                          'urban_percent': 70,
                                          'national_alb': 96,
                                          'urban_alb': 99},
                                         'EST': {'country_name': 'Estonia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 1315000,
                                          'urban_percent': 68,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'SWZ': {'country_name': 'Eswatini',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 1104000,
                                          'urban_percent': 23,
                                          'national_alb': 67,
                                          'urban_alb': 95},
                                         'ETH': {'country_name': 'Ethiopia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 100835000,
                                          'urban_percent': 19,
                                          'national_alb': 42,
                                          'urban_alb': 82},
                                         'FJI': {'country_name': 'Fiji',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 869000,
                                          'urban_percent': 55,
                                          'national_alb': 94,
                                          'urban_alb': 98},
                                         'FIN': {'country_name': 'Finland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 5481000,
                                          'urban_percent': 85,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'FRA': {'country_name': 'France',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 64453000,
                                          'urban_percent': 80,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'GAB': {'country_name': 'Gabon',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 1948000,
                                          'urban_percent': 88,
                                          'national_alb': 84,
                                          'urban_alb': 89},
                                         'GEO': {'country_name': 'Georgia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 4024000,
                                          'urban_percent': 57,
                                          'national_alb': 96,
                                          'urban_alb': 100},
                                         'DEU': {'country_name': 'Germany',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 81787000,
                                          'urban_percent': 77,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'GHA': {'country_name': 'Ghana',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 27849000,
                                          'urban_percent': 54,
                                          'national_alb': 80,
                                          'urban_alb': 91},
                                         'GIB': {'country_name': 'Gibraltar',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 34000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'GRC': {'country_name': 'Greece',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 10660000,
                                          'urban_percent': 78,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'GRL': {'country_name': 'Greenland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 56000,
                                          'urban_percent': 86,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'GTM': {'country_name': 'Guatemala',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 16252000,
                                          'urban_percent': 50,
                                          'national_alb': 92,
                                          'urban_alb': 97},
                                         'GIN': {'country_name': 'Guinea',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 11432000,
                                          'urban_percent': 35,
                                          'national_alb': 64,
                                          'urban_alb': 85},
                                         'GNB': {'country_name': 'Guinea-Bissau',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 1737000,
                                          'urban_percent': 42,
                                          'national_alb': 59,
                                          'urban_alb': 73},
                                         'GUY': {'country_name': 'Guyana',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 767000,
                                          'urban_percent': 26,
                                          'national_alb': 95,
                                          'urban_alb': 100},
                                         'HTI': {'country_name': 'Haiti',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 10696000,
                                          'urban_percent': 52,
                                          'national_alb': 65,
                                          'urban_alb': 85},
                                         'HND': {'country_name': 'Honduras',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 9113000,
                                          'urban_percent': 55,
                                          'national_alb': 93,
                                          'urban_alb': 99},
                                         'HUN': {'country_name': 'Hungary',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 9778000,
                                          'urban_percent': 71,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'ISL': {'country_name': 'Iceland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 330000,
                                          'urban_percent': 94,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'IND': {'country_name': 'India',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 1310152000,
                                          'urban_percent': 33,
                                          'national_alb': 88,
                                          'urban_alb': 93},
                                         'IDN': {'country_name': 'Indonesia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 258383000,
                                          'urban_percent': 53,
                                          'national_alb': 89,
                                          'urban_alb': 95},
                                         'IRQ': {'country_name': 'Iraq',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 35572000,
                                          'urban_percent': 70,
                                          'national_alb': 94,
                                          'urban_alb': 98},
                                         'IRL': {'country_name': 'Ireland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 4652000,
                                          'urban_percent': 63,
                                          'national_alb': 97,
                                          'urban_alb': 97},
                                         'ISR': {'country_name': 'Israel',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 7978000,
                                          'urban_percent': 92,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'JAM': {'country_name': 'Jamaica',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 2891000,
                                          'urban_percent': 55,
                                          'national_alb': 90,
                                          'urban_alb': 95},
                                         'JOR': {'country_name': 'Jordan',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 9267000,
                                          'urban_percent': 90,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'KAZ': {'country_name': 'Kazakhstan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 17572000,
                                          'urban_percent': 57,
                                          'national_alb': 95,
                                          'urban_alb': 98},
                                         'KEN': {'country_name': 'Kenya',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 47878000,
                                          'urban_percent': 26,
                                          'national_alb': 58,
                                          'urban_alb': 87},
                                         'KIR': {'country_name': 'Kiribati',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 111000,
                                          'urban_percent': 52,
                                          'national_alb': 74,
                                          'urban_alb': 89},
                                         'LVA': {'country_name': 'Latvia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 1998000,
                                          'urban_percent': 68,
                                          'national_alb': 99,
                                          'urban_alb': 99},
                                         'LSO': {'country_name': 'Lesotho',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 2059000,
                                          'urban_percent': 27,
                                          'national_alb': 71,
                                          'urban_alb': 90},
                                         'LBR': {'country_name': 'Liberia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 4472000,
                                          'urban_percent': 50,
                                          'national_alb': 73,
                                          'urban_alb': 84},
                                         'LTU': {'country_name': 'Lithuania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 2932000,
                                          'urban_percent': 67,
                                          'national_alb': 97,
                                          'urban_alb': 100},
                                         'LUX': {'country_name': 'Luxembourg',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 567000,
                                          'urban_percent': 90,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'MDG': {'country_name': 'Madagascar',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 24234000,
                                          'urban_percent': 35,
                                          'national_alb': 49,
                                          'urban_alb': 78},
                                         'MWI': {'country_name': 'Malawi',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 16745000,
                                          'urban_percent': 16,
                                          'national_alb': 66,
                                          'urban_alb': 86},
                                         'MYS': {'country_name': 'Malaysia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 30271000,
                                          'urban_percent': 74,
                                          'national_alb': 97,
                                          'urban_alb': 100},
                                         'MDV': {'country_name': 'Maldives',
                                          'region': 'South Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 455000,
                                          'urban_percent': 39,
                                          'national_alb': 99,
                                          'urban_alb': 99},
                                         'MLI': {'country_name': 'Mali',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 17439000,
                                          'urban_percent': 40,
                                          'national_alb': 74,
                                          'urban_alb': 91},
                                         'MLT': {'country_name': 'Malta',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 434000,
                                          'urban_percent': 94,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'MHL': {'country_name': 'Marshall Islands',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 57000,
                                          'urban_percent': 76,
                                          'national_alb': 88,
                                          'urban_alb': 86},
                                         'MRT': {'country_name': 'Mauritania',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 4046000,
                                          'urban_percent': 51,
                                          'national_alb': 67,
                                          'urban_alb': 86},
                                         'MUS': {'country_name': 'Mauritius',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 1259000,
                                          'urban_percent': 41,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'MEX': {'country_name': 'Mexico',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 121858000,
                                          'urban_percent': 79,
                                          'national_alb': 98,
                                          'urban_alb': 100},
                                         'MCO': {'country_name': 'Monaco',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 38000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'MNG': {'country_name': 'Mongolia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 2998000,
                                          'urban_percent': 68,
                                          'national_alb': 81,
                                          'urban_alb': 94},
                                         'MNE': {'country_name': 'Montenegro',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 627000,
                                          'urban_percent': 66,
                                          'national_alb': 97,
                                          'urban_alb': 98},
                                         'MAR': {'country_name': 'Morocco',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 34664000,
                                          'urban_percent': 61,
                                          'national_alb': 84,
                                          'urban_alb': 96},
                                         'MOZ': {'country_name': 'Mozambique',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 27042000,
                                          'urban_percent': 34,
                                          'national_alb': 51,
                                          'urban_alb': 80},
                                         'MMR': {'country_name': 'Myanmar',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 52681000,
                                          'urban_percent': 30,
                                          'national_alb': 74,
                                          'urban_alb': 88},
                                         'NAM': {'country_name': 'Namibia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 2315000,
                                          'urban_percent': 47,
                                          'national_alb': 83,
                                          'urban_alb': 97},
                                         'NRU': {'country_name': 'Nauru',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 10000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'NPL': {'country_name': 'Nepal',
                                          'region': 'South Asia',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 27015000,
                                          'urban_percent': 19,
                                          'national_alb': 88,
                                          'urban_alb': 90},
                                         'NLD': {'country_name': 'Netherlands',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 16938000,
                                          'urban_percent': 90,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'NZL': {'country_name': 'New Zealand',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 4615000,
                                          'urban_percent': 86,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'NIC': {'country_name': 'Nicaragua',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 6223000,
                                          'urban_percent': 58,
                                          'national_alb': 81,
                                          'urban_alb': 97},
                                         'NER': {'country_name': 'Niger',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 20002000,
                                          'urban_percent': 16,
                                          'national_alb': 45,
                                          'urban_alb': 88},
                                         'NGA': {'country_name': 'Nigeria',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 181137000,
                                          'urban_percent': 48,
                                          'national_alb': 69,
                                          'urban_alb': 85},
                                         'MKD': {'country_name': 'North Macedonia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 2079000,
                                          'urban_percent': 57,
                                          'national_alb': 97,
                                          'urban_alb': 97},
                                         'NOR': {'country_name': 'Norway',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 5200000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'OMN': {'country_name': 'Oman',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 4267000,
                                          'urban_percent': 81,
                                          'national_alb': 90,
                                          'urban_alb': 94},
                                         'PAK': {'country_name': 'Pakistan',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 199427000,
                                          'urban_percent': 36,
                                          'national_alb': 89,
                                          'urban_alb': 94},
                                         'PLW': {'country_name': 'Palau',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 18000,
                                          'urban_percent': 78,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'PAN': {'country_name': 'Panama',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 3968000,
                                          'urban_percent': 67,
                                          'national_alb': 93,
                                          'urban_alb': 98},
                                         'PNG': {'country_name': 'Papua New Guinea',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 8108000,
                                          'urban_percent': 13,
                                          'national_alb': 41,
                                          'urban_alb': 85},
                                         'PRY': {'country_name': 'Paraguay',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 6689000,
                                          'urban_percent': 61,
                                          'national_alb': 97,
                                          'urban_alb': 100},
                                         'PER': {'country_name': 'Peru',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 30471000,
                                          'urban_percent': 77,
                                          'national_alb': 90,
                                          'urban_alb': 95},
                                         'PHL': {'country_name': 'Philippines',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 102113000,
                                          'urban_percent': 46,
                                          'national_alb': 92,
                                          'urban_alb': 96},
                                         'POL': {'country_name': 'Poland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 38034000,
                                          'urban_percent': 60,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'PRT': {'country_name': 'Portugal',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 10368000,
                                          'urban_percent': 64,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'ROU': {'country_name': 'Romania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 19925000,
                                          'urban_percent': 54,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'RUS': {'country_name': 'Russian Federation',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 144985000,
                                          'urban_percent': 74,
                                          'national_alb': 97,
                                          'urban_alb': 99},
                                         'RWA': {'country_name': 'Rwanda',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 11369000,
                                          'urban_percent': 17,
                                          'national_alb': 57,
                                          'urban_alb': 80},
                                         'WSM': {'country_name': 'Samoa',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 194000,
                                          'urban_percent': 19,
                                          'national_alb': 91,
                                          'urban_alb': 91},
                                         'SEN': {'country_name': 'Senegal',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 14578000,
                                          'urban_percent': 46,
                                          'national_alb': 79,
                                          'urban_alb': 94},
                                         'SRB': {'country_name': 'Serbia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 8877000,
                                          'urban_percent': 56,
                                          'national_alb': 93,
                                          'urban_alb': 92},
                                         'SLE': {'country_name': 'Sierra Leone',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 7172000,
                                          'urban_percent': 41,
                                          'national_alb': 58,
                                          'urban_alb': 76},
                                         'SGP': {'country_name': 'Singapore',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 5592000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'SLB': {'country_name': 'Solomon Islands',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 603000,
                                          'urban_percent': 22,
                                          'national_alb': 69,
                                          'urban_alb': 91},
                                         'SOM': {'country_name': 'Somalia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 13797000,
                                          'urban_percent': 43,
                                          'national_alb': 49,
                                          'urban_alb': 74},
                                         'ZAF': {'country_name': 'South Africa',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 55386000,
                                          'urban_percent': 65,
                                          'national_alb': 92,
                                          'urban_alb': 99},
                                         'SSD': {'country_name': 'South Sudan',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 10716000,
                                          'urban_percent': 19,
                                          'national_alb': 41,
                                          'urban_alb': 61},
                                         'ESP': {'country_name': 'Spain',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 46672000,
                                          'urban_percent': 80,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'LKA': {'country_name': 'Sri Lanka',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 20908000,
                                          'urban_percent': 18,
                                          'national_alb': 90,
                                          'urban_alb': 98},
                                         'SDN': {'country_name': 'Sudan',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 38903000,
                                          'urban_percent': 34,
                                          'national_alb': 59,
                                          'urban_alb': 73},
                                         'SUR': {'country_name': 'Suriname',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 559000,
                                          'urban_percent': 66,
                                          'national_alb': 96,
                                          'urban_alb': 98},
                                         'SWE': {'country_name': 'Sweden',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 9765000,
                                          'urban_percent': 87,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'CHE': {'country_name': 'Switzerland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 8297000,
                                          'urban_percent': 74,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'SYR': {'country_name': 'Syrian Arab Republic',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 17997000,
                                          'urban_percent': 52,
                                          'national_alb': 94,
                                          'urban_alb': 95},
                                         'TJK': {'country_name': 'Tajikistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 8454000,
                                          'urban_percent': 27,
                                          'national_alb': 76,
                                          'urban_alb': 95},
                                         'THA': {'country_name': 'Thailand',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 68715000,
                                          'urban_percent': 48,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'TLS': {'country_name': 'Timor-Leste',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 1196000,
                                          'urban_percent': 29,
                                          'national_alb': 75,
                                          'urban_alb': 90},
                                         'TGO': {'country_name': 'Togo',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 7323000,
                                          'urban_percent': 40,
                                          'national_alb': 64,
                                          'urban_alb': 88},
                                         'TON': {'country_name': 'Tonga',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 101000,
                                          'urban_percent': 23,
                                          'national_alb': 99,
                                          'urban_alb': 100},
                                         'TUN': {'country_name': 'Tunisia',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 11180000,
                                          'urban_percent': 68,
                                          'national_alb': 95,
                                          'urban_alb': 100},
                                         'TKM': {'country_name': 'Turkmenistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 5565000,
                                          'urban_percent': 50,
                                          'national_alb': 98,
                                          'urban_alb': 100},
                                         'TUV': {'country_name': 'Tuvalu',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 11000,
                                          'urban_percent': 60,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'UGA': {'country_name': 'Uganda',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 38225000,
                                          'urban_percent': 22,
                                          'national_alb': 48,
                                          'urban_alb': 77},
                                         'UKR': {'country_name': 'Ukraine',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 44922000,
                                          'urban_percent': 69,
                                          'national_alb': 94,
                                          'urban_alb': 92},
                                         'GBR': {'country_name': 'United Kingdom',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 65860000,
                                          'urban_percent': 83,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'USA': {'country_name': 'United States of America',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 320878000,
                                          'urban_percent': 82,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'URY': {'country_name': 'Uruguay',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 3412000,
                                          'urban_percent': 95,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'UZB': {'country_name': 'Uzbekistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 30930000,
                                          'urban_percent': 51,
                                          'national_alb': 98,
                                          'urban_alb': 100},
                                         'VUT': {'country_name': 'Vanuatu',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 271000,
                                          'urban_percent': 25,
                                          'national_alb': 90,
                                          'urban_alb': 100},
                                         'VNM': {'country_name': 'Vietnam',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 92677000,
                                          'urban_percent': 34,
                                          'national_alb': 93,
                                          'urban_alb': 98},
                                         'ZMB': {'country_name': 'Zambia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 15879000,
                                          'urban_percent': 42,
                                          'national_alb': 61,
                                          'urban_alb': 86},
                                         'ZWE': {'country_name': 'Zimbabwe',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 13815000,
                                          'urban_percent': 32,
                                          'national_alb': 65,
                                          'urban_alb': 94}}),
                 "dict_2020_test": (TEXT_FORMAT_DICT, {'AFG': {'country_name': 'Afghanistan',
                                          'region': 'South Asia',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 38928000,
                                          'urban_percent': 26,
                                          'national_alb': 75,
                                          'urban_alb': 100},
                                         'ALB': {'country_name': 'Albania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2878000,
                                          'urban_percent': 62,
                                          'national_alb': 95,
                                          'urban_alb': 96},
                                         'DZA': {'country_name': 'Algeria',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 43851000,
                                          'urban_percent': 74,
                                          'national_alb': 94,
                                          'urban_alb': 96},
                                         'AND': {'country_name': 'Andorra',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 77000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'AGO': {'country_name': 'Angola',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 32866000,
                                          'urban_percent': 67,
                                          'national_alb': 57,
                                          'urban_alb': 72},
                                         'ARM': {'country_name': 'Armenia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2963000,
                                          'urban_percent': 63,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'AUS': {'country_name': 'Australia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 25500000,
                                          'urban_percent': 86,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'AUT': {'country_name': 'Austria',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 9006000,
                                          'urban_percent': 59,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'AZE': {'country_name': 'Azerbaijan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 10139000,
                                          'urban_percent': 56,
                                          'national_alb': 96,
                                          'urban_alb': 100},
                                         'BGD': {'country_name': 'Bangladesh',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 164689000,
                                          'urban_percent': 38,
                                          'national_alb': 98,
                                          'urban_alb': 97},
                                         'BLR': {'country_name': 'Belarus',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 9449000,
                                          'urban_percent': 79,
                                          'national_alb': 96,
                                          'urban_alb': 96},
                                         'BEL': {'country_name': 'Belgium',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 11590000,
                                          'urban_percent': 98,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'BLZ': {'country_name': 'Belize',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 398000,
                                          'urban_percent': 46,
                                          'national_alb': 98,
                                          'urban_alb': 99},
                                         'BEN': {'country_name': 'Benin',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 12123000,
                                          'urban_percent': 48,
                                          'national_alb': 65,
                                          'urban_alb': 73},
                                         'BMU': {'country_name': 'Bermuda',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 62000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'BTN': {'country_name': 'Bhutan',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 772000,
                                          'urban_percent': 42,
                                          'national_alb': 97,
                                          'urban_alb': 98},
                                         'BIH': {'country_name': 'Bosnia and Herzegovina',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 3281000,
                                          'urban_percent': 49,
                                          'national_alb': 96,
                                          'urban_alb': 95},
                                         'BWA': {'country_name': 'Botswana',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2352000,
                                          'urban_percent': 71,
                                          'national_alb': 92,
                                          'urban_alb': 98},
                                         'BRA': {'country_name': 'Brazil',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 212559000,
                                          'urban_percent': 87,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'BRN': {'country_name': 'Brunei Darussalam',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 437000,
                                          'urban_percent': 78,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'BGR': {'country_name': 'Bulgaria',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 6948000,
                                          'urban_percent': 76,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'BFA': {'country_name': 'Burkina Faso',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 20903000,
                                          'urban_percent': 31,
                                          'national_alb': 47,
                                          'urban_alb': 80},
                                         'BDI': {'country_name': 'Burundi',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 11891000,
                                          'urban_percent': 14,
                                          'national_alb': 62,
                                          'urban_alb': 91},
                                         'CPV': {'country_name': 'Cabo Verde',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 556000,
                                          'urban_percent': 67,
                                          'national_alb': 89,
                                          'urban_alb': 93},
                                         'KHM': {'country_name': 'Cambodia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 16719000,
                                          'urban_percent': 24,
                                          'national_alb': 71,
                                          'urban_alb': 90},
                                         'CMR': {'country_name': 'Cameroon',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 26546000,
                                          'urban_percent': 58,
                                          'national_alb': 66,
                                          'urban_alb': 82},
                                         'CAN': {'country_name': 'Canada',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 37742000,
                                          'urban_percent': 82,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'CAF': {'country_name': 'Central African Republic',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 4830000,
                                          'urban_percent': 42,
                                          'national_alb': 37,
                                          'urban_alb': 50},
                                         'TCD': {'country_name': 'Chad',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 16426000,
                                          'urban_percent': 24,
                                          'national_alb': 46,
                                          'urban_alb': 74},
                                         'CHL': {'country_name': 'Chile',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 19116000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'CHN': {'country_name': 'China',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 1463141000,
                                          'urban_percent': 62,
                                          'national_alb': 94,
                                          'urban_alb': 97},
                                         'COL': {'country_name': 'Colombia',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 50883000,
                                          'urban_percent': 81,
                                          'national_alb': 97,
                                          'urban_alb': 100},
                                         'CRI': {'country_name': 'Costa Rica',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 5094000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'CIV': {'country_name': "Côte d'Ivoire",
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 26378000,
                                          'urban_percent': 52,
                                          'national_alb': 71,
                                          'urban_alb': 85},
                                         'CUB': {'country_name': 'Cuba',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 11327000,
                                          'urban_percent': 77,
                                          'national_alb': 97,
                                          'urban_alb': 98},
                                         'CYP': {'country_name': 'Cyprus',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 1207000,
                                          'urban_percent': 67,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'CZE': {'country_name': 'Czech Republic',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 10709000,
                                          'urban_percent': 74,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'DNK': {'country_name': 'Denmark',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 5792000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'DJI': {'country_name': 'Djibouti',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 988000,
                                          'urban_percent': 78,
                                          'national_alb': 76,
                                          'urban_alb': 84},
                                         'DOM': {'country_name': 'Dominican Republic',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 10848000,
                                          'urban_percent': 83,
                                          'national_alb': 97,
                                          'urban_alb': 98},
                                         'ECU': {'country_name': 'Ecuador',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 17643000,
                                          'urban_percent': 64,
                                          'national_alb': 95,
                                          'urban_alb': 100},
                                         'SLV': {'country_name': 'El Salvador',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 6486000,
                                          'urban_percent': 73,
                                          'national_alb': 98,
                                          'urban_alb': 100},
                                         'EST': {'country_name': 'Estonia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 1327000,
                                          'urban_percent': 69,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'SWZ': {'country_name': 'Eswatini',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 1160000,
                                          'urban_percent': 24,
                                          'national_alb': 71,
                                          'urban_alb': 97},
                                         'ETH': {'country_name': 'Ethiopia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 114964000,
                                          'urban_percent': 22,
                                          'national_alb': 50,
                                          'urban_alb': 84},
                                         'FJI': {'country_name': 'Fiji',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 896000,
                                          'urban_percent': 57,
                                          'national_alb': 94,
                                          'urban_alb': 98},
                                         'FIN': {'country_name': 'Finland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 5541000,
                                          'urban_percent': 86,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'FRA': {'country_name': 'France',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 65274000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'GAB': {'country_name': 'Gabon',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2226000,
                                          'urban_percent': 90,
                                          'national_alb': 85,
                                          'urban_alb': 90},
                                         'GEO': {'country_name': 'Georgia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 3989000,
                                          'urban_percent': 59,
                                          'national_alb': 97,
                                          'urban_alb': 100},
                                         'DEU': {'country_name': 'Germany',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 83784000,
                                          'urban_percent': 77,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'GHA': {'country_name': 'Ghana',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 31073000,
                                          'urban_percent': 57,
                                          'national_alb': 86,
                                          'urban_alb': 96},
                                         'GIB': {'country_name': 'Gibraltar',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 34000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'GRC': {'country_name': 'Greece',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 10423000,
                                          'urban_percent': 80,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'GRL': {'country_name': 'Greenland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 57000,
                                          'urban_percent': 87,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'GTM': {'country_name': 'Guatemala',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 17916000,
                                          'urban_percent': 52,
                                          'national_alb': 94,
                                          'urban_alb': 98},
                                         'GIN': {'country_name': 'Guinea',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 13133000,
                                          'urban_percent': 37,
                                          'national_alb': 64,
                                          'urban_alb': 87},
                                         'GNB': {'country_name': 'Guinea-Bissau',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 1968000,
                                          'urban_percent': 44,
                                          'national_alb': 59,
                                          'urban_alb': 71},
                                         'GUY': {'country_name': 'Guyana',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 787000,
                                          'urban_percent': 27,
                                          'national_alb': 96,
                                          'urban_alb': 100},
                                         'HTI': {'country_name': 'Haiti',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 11403000,
                                          'urban_percent': 57,
                                          'national_alb': 67,
                                          'urban_alb': 85},
                                         'HND': {'country_name': 'Honduras',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 9905000,
                                          'urban_percent': 58,
                                          'national_alb': 96,
                                          'urban_alb': 100},
                                         'HUN': {'country_name': 'Hungary',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 9660000,
                                          'urban_percent': 72,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'ISL': {'country_name': 'Iceland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 341000,
                                          'urban_percent': 94,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'IND': {'country_name': 'India',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 1380004000,
                                          'urban_percent': 35,
                                          'national_alb': 90,
                                          'urban_alb': 94},
                                         'IDN': {'country_name': 'Indonesia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 273524000,
                                          'urban_percent': 57,
                                          'national_alb': 92,
                                          'urban_alb': 98},
                                         'IRQ': {'country_name': 'Iraq',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 40223000,
                                          'urban_percent': 71,
                                          'national_alb': 98,
                                          'urban_alb': 100},
                                         'IRL': {'country_name': 'Ireland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 4938000,
                                          'urban_percent': 64,
                                          'national_alb': 97,
                                          'urban_alb': 97},
                                         'ISR': {'country_name': 'Israel',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 8656000,
                                          'urban_percent': 93,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'JAM': {'country_name': 'Jamaica',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2961000,
                                          'urban_percent': 56,
                                          'national_alb': 91,
                                          'urban_alb': 95},
                                         'JOR': {'country_name': 'Jordan',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 10203000,
                                          'urban_percent': 91,
                                          'national_alb': 99,
                                          'urban_alb': 100},
                                         'KAZ': {'country_name': 'Kazakhstan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 18777000,
                                          'urban_percent': 58,
                                          'national_alb': 95,
                                          'urban_alb': 98},
                                         'KEN': {'country_name': 'Kenya',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 53771000,
                                          'urban_percent': 28,
                                          'national_alb': 62,
                                          'urban_alb': 87},
                                         'KIR': {'country_name': 'Kiribati',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 119000,
                                          'urban_percent': 56,
                                          'national_alb': 78,
                                          'urban_alb': 92},
                                         'LVA': {'country_name': 'Latvia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 1886000,
                                          'urban_percent': 68,
                                          'national_alb': 99,
                                          'urban_alb': 99},
                                         'LSO': {'country_name': 'Lesotho',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 2142000,
                                          'urban_percent': 29,
                                          'national_alb': 72,
                                          'urban_alb': 93},
                                         'LBR': {'country_name': 'Liberia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 5058000,
                                          'urban_percent': 52,
                                          'national_alb': 75,
                                          'urban_alb': 86},
                                         'LTU': {'country_name': 'Lithuania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 2722000,
                                          'urban_percent': 68,
                                          'national_alb': 98,
                                          'urban_alb': 100},
                                         'LUX': {'country_name': 'Luxembourg',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 626000,
                                          'urban_percent': 91,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'MDG': {'country_name': 'Madagascar',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 27691000,
                                          'urban_percent': 39,
                                          'national_alb': 53,
                                          'urban_alb': 80},
                                         'MWI': {'country_name': 'Malawi',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 19130000,
                                          'urban_percent': 17,
                                          'national_alb': 70,
                                          'urban_alb': 86},
                                         'MYS': {'country_name': 'Malaysia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 32366000,
                                          'urban_percent': 77,
                                          'national_alb': 97,
                                          'urban_alb': 100},
                                         'MDV': {'country_name': 'Maldives',
                                          'region': 'South Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 541000,
                                          'urban_percent': 41,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'MLI': {'country_name': 'Mali',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 20251000,
                                          'urban_percent': 44,
                                          'national_alb': 83,
                                          'urban_alb': 96},
                                         'MLT': {'country_name': 'Malta',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 442000,
                                          'urban_percent': 95,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'MHL': {'country_name': 'Marshall Islands',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 59000,
                                          'urban_percent': 78,
                                          'national_alb': 89,
                                          'urban_alb': 87},
                                         'MRT': {'country_name': 'Mauritania',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 4650000,
                                          'urban_percent': 55,
                                          'national_alb': 72,
                                          'urban_alb': 89},
                                         'MUS': {'country_name': 'Mauritius',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 1272000,
                                          'urban_percent': 41,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'MEX': {'country_name': 'Mexico',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 128933000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'MCO': {'country_name': 'Monaco',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 39000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'MNG': {'country_name': 'Mongolia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 3278000,
                                          'urban_percent': 69,
                                          'national_alb': 85,
                                          'urban_alb': 97},
                                         'MNE': {'country_name': 'Montenegro',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 628000,
                                          'urban_percent': 67,
                                          'national_alb': 99,
                                          'urban_alb': 100},
                                         'MAR': {'country_name': 'Morocco',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 36911000,
                                          'urban_percent': 64,
                                          'national_alb': 90,
                                          'urban_alb': 98},
                                         'MOZ': {'country_name': 'Mozambique',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 31255000,
                                          'urban_percent': 37,
                                          'national_alb': 63,
                                          'urban_alb': 88},
                                         'MMR': {'country_name': 'Myanmar',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 54410000,
                                          'urban_percent': 31,
                                          'national_alb': 84,
                                          'urban_alb': 95},
                                         'NAM': {'country_name': 'Namibia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2541000,
                                          'urban_percent': 52,
                                          'national_alb': 84,
                                          'urban_alb': 96},
                                         'NRU': {'country_name': 'Nauru',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 11000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'NPL': {'country_name': 'Nepal',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 29137000,
                                          'urban_percent': 21,
                                          'national_alb': 90,
                                          'urban_alb': 90},
                                         'NLD': {'country_name': 'Netherlands',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 17135000,
                                          'urban_percent': 92,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'NZL': {'country_name': 'New Zealand',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 4822000,
                                          'urban_percent': 87,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'NIC': {'country_name': 'Nicaragua',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 6625000,
                                          'urban_percent': 59,
                                          'national_alb': 82,
                                          'urban_alb': 97},
                                         'NER': {'country_name': 'Niger',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 24207000,
                                          'urban_percent': 17,
                                          'national_alb': 47,
                                          'urban_alb': 86},
                                         'NGA': {'country_name': 'Nigeria',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 206140000,
                                          'urban_percent': 52,
                                          'national_alb': 78,
                                          'urban_alb': 92},
                                         'MKD': {'country_name': 'North Macedonia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2083000,
                                          'urban_percent': 58,
                                          'national_alb': 98,
                                          'urban_alb': 98},
                                         'NOR': {'country_name': 'Norway',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 5421000,
                                          'urban_percent': 83,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'OMN': {'country_name': 'Oman',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 5107000,
                                          'urban_percent': 86,
                                          'national_alb': 92,
                                          'urban_alb': 95},
                                         'PAK': {'country_name': 'Pakistan',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 220892000,
                                          'urban_percent': 37,
                                          'national_alb': 90,
                                          'urban_alb': 93},
                                         'PLW': {'country_name': 'Palau',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 18000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'PAN': {'country_name': 'Panama',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 4315000,
                                          'urban_percent': 68,
                                          'national_alb': 94,
                                          'urban_alb': 98},
                                         'PNG': {'country_name': 'Papua New Guinea',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 8947000,
                                          'urban_percent': 13,
                                          'national_alb': 45,
                                          'urban_alb': 86},
                                         'PRY': {'country_name': 'Paraguay',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 7133000,
                                          'urban_percent': 62,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'PER': {'country_name': 'Peru',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 32972000,
                                          'urban_percent': 78,
                                          'national_alb': 93,
                                          'urban_alb': 97},
                                         'PHL': {'country_name': 'Philippines',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 109581000,
                                          'urban_percent': 47,
                                          'national_alb': 94,
                                          'urban_alb': 97},
                                         'POL': {'country_name': 'Poland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 37847000,
                                          'urban_percent': 60,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'PRT': {'country_name': 'Portugal',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 10197000,
                                          'urban_percent': 66,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'ROU': {'country_name': 'Romania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 19238000,
                                          'urban_percent': 54,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'RUS': {'country_name': 'Russian Federation',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 145934000,
                                          'urban_percent': 75,
                                          'national_alb': 97,
                                          'urban_alb': 99},
                                         'RWA': {'country_name': 'Rwanda',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 12952000,
                                          'urban_percent': 17,
                                          'national_alb': 60,
                                          'urban_alb': 83},
                                         'WSM': {'country_name': 'Samoa',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 198000,
                                          'urban_percent': 18,
                                          'national_alb': 92,
                                          'urban_alb': 92},
                                         'SEN': {'country_name': 'Senegal',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 16744000,
                                          'urban_percent': 48,
                                          'national_alb': 85,
                                          'urban_alb': 95},
                                         'SRB': {'country_name': 'Serbia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 8737000,
                                          'urban_percent': 56,
                                          'national_alb': 95,
                                          'urban_alb': 95},
                                         'SLE': {'country_name': 'Sierra Leone',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 7977000,
                                          'urban_percent': 43,
                                          'national_alb': 64,
                                          'urban_alb': 78},
                                         'SGP': {'country_name': 'Singapore',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 5850000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'SLB': {'country_name': 'Solomon Islands',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 687000,
                                          'urban_percent': 25,
                                          'national_alb': 67,
                                          'urban_alb': 91},
                                         'SOM': {'country_name': 'Somalia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 15893000,
                                          'urban_percent': 46,
                                          'national_alb': 56,
                                          'urban_alb': 79},
                                         'ZAF': {'country_name': 'South Africa',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 59309000,
                                          'urban_percent': 67,
                                          'national_alb': 94,
                                          'urban_alb': 100},
                                         'SSD': {'country_name': 'South Sudan',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 11194000,
                                          'urban_percent': 20,
                                          'national_alb': 41,
                                          'urban_alb': 70},
                                         'ESP': {'country_name': 'Spain',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 46755000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'LKA': {'country_name': 'Sri Lanka',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 21413000,
                                          'urban_percent': 19,
                                          'national_alb': 92,
                                          'urban_alb': 100},
                                         'SDN': {'country_name': 'Sudan',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 43849000,
                                          'urban_percent': 35,
                                          'national_alb': 60,
                                          'urban_alb': 74},
                                         'SUR': {'country_name': 'Suriname',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 587000,
                                          'urban_percent': 66,
                                          'national_alb': 98,
                                          'urban_alb': 99},
                                         'SWE': {'country_name': 'Sweden',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 10099000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'CHE': {'country_name': 'Switzerland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 8655000,
                                          'urban_percent': 74,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'SYR': {'country_name': 'Syrian Arab Republic',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 17501000,
                                          'urban_percent': 55,
                                          'national_alb': 94,
                                          'urban_alb': 95},
                                         'TJK': {'country_name': 'Tajikistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 9538000,
                                          'urban_percent': 28,
                                          'national_alb': 82,
                                          'urban_alb': 96},
                                         'THA': {'country_name': 'Thailand',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 69800000,
                                          'urban_percent': 51,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'TLS': {'country_name': 'Timor-Leste',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 1318000,
                                          'urban_percent': 31,
                                          'national_alb': 85,
                                          'urban_alb': 96},
                                         'TGO': {'country_name': 'Togo',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 8279000,
                                          'urban_percent': 43,
                                          'national_alb': 69,
                                          'urban_alb': 91},
                                         'TON': {'country_name': 'Tonga',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 106000,
                                          'urban_percent': 23,
                                          'national_alb': 99,
                                          'urban_alb': 100},
                                         'TUN': {'country_name': 'Tunisia',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 11819000,
                                          'urban_percent': 70,
                                          'national_alb': 98,
                                          'urban_alb': 100},
                                         'TKM': {'country_name': 'Turkmenistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 6031000,
                                          'urban_percent': 53,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'TUV': {'country_name': 'Tuvalu',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 12000,
                                          'urban_percent': 64,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'UGA': {'country_name': 'Uganda',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 45741000,
                                          'urban_percent': 25,
                                          'national_alb': 56,
                                          'urban_alb': 79},
                                         'UKR': {'country_name': 'Ukraine',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 43734000,
                                          'urban_percent': 69,
                                          'national_alb': 94,
                                          'urban_alb': 92},
                                         'GBR': {'country_name': 'United Kingdom',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 67886000,
                                          'urban_percent': 84,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'USA': {'country_name': 'United States of America',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 331003000,
                                          'urban_percent': 83,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'URY': {'country_name': 'Uruguay',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 3474000,
                                          'urban_percent': 96,
                                          'national_alb': 100,
                                          'urban_alb': 100},
                                         'UZB': {'country_name': 'Uzbekistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 33469000,
                                          'urban_percent': 50,
                                          'national_alb': 98,
                                          'urban_alb': 100},
                                         'VUT': {'country_name': 'Vanuatu',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 307000,
                                          'urban_percent': 26,
                                          'national_alb': 91,
                                          'urban_alb': 100},
                                         'VNM': {'country_name': 'Vietnam',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 97339000,
                                          'urban_percent': 37,
                                          'national_alb': 97,
                                          'urban_alb': 100},
                                         'ZMB': {'country_name': 'Zambia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 18384000,
                                          'urban_percent': 45,
                                          'national_alb': 65,
                                          'urban_alb': 87},
                                         'ZWE': {'country_name': 'Zimbabwe',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 14863000,
                                          'urban_percent': 32,
                                          'national_alb': 63,
                                          'urban_alb': 93}}),
                 "10": (TEXT_FORMAT_DICT, {'country_name': 'China',
                                         'region': 'East Asia & Pacific',
                                         'income_level': 'Upper middle income',
                                         'year': 2020,
                                         'pop': 1463141000,
                                         'urban_percent': 62,
                                         'national_alb': 94,
                                         'urban_alb': 97}),
                 "11": (TEXT_FORMAT, 88),
                 "12": (TEXT_FORMAT, 60000),
                 "13": (TEXT_FORMAT_DICT, {'Low income': 514021000,
                                         'Upper middle income': 2430080000,
                                         'Lower middle income': 3045857000,
                                         'High income': 871268000}),
                 "14": (TEXT_FORMAT_DICT, {'Low income': 302975040,
                                         'Upper middle income': 2321860110,
                                         'Lower middle income': 2687761440,
                                         'High income': 870638000}),
                 "15": (TEXT_FORMAT_DICT, {'Low income': 59,
                                         'Upper middle income': 96,
                                         'Lower middle income': 88,
                                         'High income': 100}),
                 "dict_2015_rural_alb_test": (TEXT_FORMAT_DICT, {'AFG': {'country_name': 'Afghanistan',
                                          'region': 'South Asia',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 34414000,
                                          'urban_percent': 25,
                                          'national_alb': 61,
                                          'urban_alb': 87,
                                          'rural_alb': 52},
                                         'ALB': {'country_name': 'Albania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 2891000,
                                          'urban_percent': 57,
                                          'national_alb': 93,
                                          'urban_alb': 95,
                                          'rural_alb': 90},
                                         'DZA': {'country_name': 'Algeria',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 39728000,
                                          'urban_percent': 71,
                                          'national_alb': 93,
                                          'urban_alb': 95,
                                          'rural_alb': 88},
                                         'AND': {'country_name': 'Andorra',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 78000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'AGO': {'country_name': 'Angola',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 27884000,
                                          'urban_percent': 63,
                                          'national_alb': 54,
                                          'urban_alb': 70,
                                          'rural_alb': 27},
                                         'ARM': {'country_name': 'Armenia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 2926000,
                                          'urban_percent': 63,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'AUS': {'country_name': 'Australia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 23932000,
                                          'urban_percent': 86,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'AUT': {'country_name': 'Austria',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 8679000,
                                          'urban_percent': 58,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'AZE': {'country_name': 'Azerbaijan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 9623000,
                                          'urban_percent': 55,
                                          'national_alb': 92,
                                          'urban_alb': 100,
                                          'rural_alb': 82},
                                         'BGD': {'country_name': 'Bangladesh',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 156256000,
                                          'urban_percent': 34,
                                          'national_alb': 97,
                                          'urban_alb': 98,
                                          'rural_alb': 96},
                                         'BLR': {'country_name': 'Belarus',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 9439000,
                                          'urban_percent': 77,
                                          'national_alb': 96,
                                          'urban_alb': 96,
                                          'rural_alb': 96},
                                         'BEL': {'country_name': 'Belgium',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 11288000,
                                          'urban_percent': 98,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'BLZ': {'country_name': 'Belize',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 361000,
                                          'urban_percent': 45,
                                          'national_alb': 97,
                                          'urban_alb': 100,
                                          'rural_alb': 95},
                                         'BEN': {'country_name': 'Benin',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 10576000,
                                          'urban_percent': 46,
                                          'national_alb': 65,
                                          'urban_alb': 74,
                                          'rural_alb': 57},
                                         'BMU': {'country_name': 'Bermuda',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 64000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'BTN': {'country_name': 'Bhutan',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 728000,
                                          'urban_percent': 39,
                                          'national_alb': 96,
                                          'urban_alb': 98,
                                          'rural_alb': 95},
                                         'BIH': {'country_name': 'Bosnia and Herzegovina',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 3429000,
                                          'urban_percent': 47,
                                          'national_alb': 96,
                                          'urban_alb': 95,
                                          'rural_alb': 97},
                                         'BWA': {'country_name': 'Botswana',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 2121000,
                                          'urban_percent': 67,
                                          'national_alb': 88,
                                          'urban_alb': 97,
                                          'rural_alb': 70},
                                         'BRA': {'country_name': 'Brazil',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 204472000,
                                          'urban_percent': 86,
                                          'national_alb': 98,
                                          'urban_alb': 100,
                                          'rural_alb': 86},
                                         'BRN': {'country_name': 'Brunei Darussalam',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 415000,
                                          'urban_percent': 77,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'BGR': {'country_name': 'Bulgaria',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 7200000,
                                          'urban_percent': 74,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'BFA': {'country_name': 'Burkina Faso',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 18111000,
                                          'urban_percent': 28,
                                          'national_alb': 50,
                                          'urban_alb': 80,
                                          'rural_alb': 38},
                                         'BDI': {'country_name': 'Burundi',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 10160000,
                                          'urban_percent': 12,
                                          'national_alb': 60,
                                          'urban_alb': 89,
                                          'rural_alb': 56},
                                         'CPV': {'country_name': 'Cabo Verde',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 525000,
                                          'urban_percent': 64,
                                          'national_alb': 85,
                                          'urban_alb': 92,
                                          'rural_alb': 73},
                                         'KHM': {'country_name': 'Cambodia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 15521000,
                                          'urban_percent': 22,
                                          'national_alb': 68,
                                          'urban_alb': 89,
                                          'rural_alb': 62},
                                         'CMR': {'country_name': 'Cameroon',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 23298000,
                                          'urban_percent': 55,
                                          'national_alb': 64,
                                          'urban_alb': 82,
                                          'rural_alb': 42},
                                         'CAN': {'country_name': 'Canada',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 36027000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'CAF': {'country_name': 'Central African Republic',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 4493000,
                                          'urban_percent': 40,
                                          'national_alb': 42,
                                          'urban_alb': 58,
                                          'rural_alb': 31},
                                         'TCD': {'country_name': 'Chad',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 14111000,
                                          'urban_percent': 23,
                                          'national_alb': 44,
                                          'urban_alb': 75,
                                          'rural_alb': 35},
                                         'CHL': {'country_name': 'Chile',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 17969000,
                                          'urban_percent': 87,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'CHN': {'country_name': 'China',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 1430405000,
                                          'urban_percent': 56,
                                          'national_alb': 92,
                                          'urban_alb': 98,
                                          'rural_alb': 84},
                                         'COL': {'country_name': 'Colombia',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 47521000,
                                          'urban_percent': 80,
                                          'national_alb': 96,
                                          'urban_alb': 100,
                                          'rural_alb': 80},
                                         'CRI': {'country_name': 'Costa Rica',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 4848000,
                                          'urban_percent': 77,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'CIV': {'country_name': "Côte d'Ivoire",
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 23226000,
                                          'urban_percent': 49,
                                          'national_alb': 71,
                                          'urban_alb': 87,
                                          'rural_alb': 56},
                                         'CUB': {'country_name': 'Cuba',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 11325000,
                                          'urban_percent': 77,
                                          'national_alb': 96,
                                          'urban_alb': 98,
                                          'rural_alb': 89},
                                         'CYP': {'country_name': 'Cyprus',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 1161000,
                                          'urban_percent': 67,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'CZE': {'country_name': 'Czech Republic',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 10601000,
                                          'urban_percent': 73,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'DNK': {'country_name': 'Denmark',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 5689000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'DJI': {'country_name': 'Djibouti',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 914000,
                                          'urban_percent': 77,
                                          'national_alb': 76,
                                          'urban_alb': 84,
                                          'rural_alb': 49},
                                         'DOM': {'country_name': 'Dominican Republic',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 10282000,
                                          'urban_percent': 79,
                                          'national_alb': 96,
                                          'urban_alb': 98,
                                          'rural_alb': 88},
                                         'ECU': {'country_name': 'Ecuador',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 16212000,
                                          'urban_percent': 63,
                                          'national_alb': 93,
                                          'urban_alb': 100,
                                          'rural_alb': 81},
                                         'SLV': {'country_name': 'El Salvador',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 6325000,
                                          'urban_percent': 70,
                                          'national_alb': 96,
                                          'urban_alb': 99,
                                          'rural_alb': 89},
                                         'EST': {'country_name': 'Estonia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 1315000,
                                          'urban_percent': 68,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'SWZ': {'country_name': 'Eswatini',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 1104000,
                                          'urban_percent': 23,
                                          'national_alb': 67,
                                          'urban_alb': 95,
                                          'rural_alb': 59},
                                         'ETH': {'country_name': 'Ethiopia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 100835000,
                                          'urban_percent': 19,
                                          'national_alb': 42,
                                          'urban_alb': 82,
                                          'rural_alb': 33},
                                         'FJI': {'country_name': 'Fiji',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 869000,
                                          'urban_percent': 55,
                                          'national_alb': 94,
                                          'urban_alb': 98,
                                          'rural_alb': 89},
                                         'FIN': {'country_name': 'Finland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 5481000,
                                          'urban_percent': 85,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'FRA': {'country_name': 'France',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 64453000,
                                          'urban_percent': 80,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'GAB': {'country_name': 'Gabon',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 1948000,
                                          'urban_percent': 88,
                                          'national_alb': 84,
                                          'urban_alb': 89,
                                          'rural_alb': 47},
                                         'GEO': {'country_name': 'Georgia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 4024000,
                                          'urban_percent': 57,
                                          'national_alb': 96,
                                          'urban_alb': 100,
                                          'rural_alb': 91},
                                         'DEU': {'country_name': 'Germany',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 81787000,
                                          'urban_percent': 77,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'GHA': {'country_name': 'Ghana',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 27849000,
                                          'urban_percent': 54,
                                          'national_alb': 80,
                                          'urban_alb': 91,
                                          'rural_alb': 67},
                                         'GIB': {'country_name': 'Gibraltar',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 34000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'GRC': {'country_name': 'Greece',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 10660000,
                                          'urban_percent': 78,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'GRL': {'country_name': 'Greenland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 56000,
                                          'urban_percent': 86,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'GTM': {'country_name': 'Guatemala',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 16252000,
                                          'urban_percent': 50,
                                          'national_alb': 92,
                                          'urban_alb': 97,
                                          'rural_alb': 87},
                                         'GIN': {'country_name': 'Guinea',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 11432000,
                                          'urban_percent': 35,
                                          'national_alb': 64,
                                          'urban_alb': 85,
                                          'rural_alb': 53},
                                         'GNB': {'country_name': 'Guinea-Bissau',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 1737000,
                                          'urban_percent': 42,
                                          'national_alb': 59,
                                          'urban_alb': 73,
                                          'rural_alb': 49},
                                         'GUY': {'country_name': 'Guyana',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 767000,
                                          'urban_percent': 26,
                                          'national_alb': 95,
                                          'urban_alb': 100,
                                          'rural_alb': 93},
                                         'HTI': {'country_name': 'Haiti',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 10696000,
                                          'urban_percent': 52,
                                          'national_alb': 65,
                                          'urban_alb': 85,
                                          'rural_alb': 43},
                                         'HND': {'country_name': 'Honduras',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 9113000,
                                          'urban_percent': 55,
                                          'national_alb': 93,
                                          'urban_alb': 99,
                                          'rural_alb': 86},
                                         'HUN': {'country_name': 'Hungary',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 9778000,
                                          'urban_percent': 71,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'ISL': {'country_name': 'Iceland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 330000,
                                          'urban_percent': 94,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'IND': {'country_name': 'India',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 1310152000,
                                          'urban_percent': 33,
                                          'national_alb': 88,
                                          'urban_alb': 93,
                                          'rural_alb': 86},
                                         'IDN': {'country_name': 'Indonesia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 258383000,
                                          'urban_percent': 53,
                                          'national_alb': 89,
                                          'urban_alb': 95,
                                          'rural_alb': 82},
                                         'IRQ': {'country_name': 'Iraq',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 35572000,
                                          'urban_percent': 70,
                                          'national_alb': 94,
                                          'urban_alb': 98,
                                          'rural_alb': 85},
                                         'IRL': {'country_name': 'Ireland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 4652000,
                                          'urban_percent': 63,
                                          'national_alb': 97,
                                          'urban_alb': 97,
                                          'rural_alb': 97},
                                         'ISR': {'country_name': 'Israel',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 7978000,
                                          'urban_percent': 92,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'JAM': {'country_name': 'Jamaica',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 2891000,
                                          'urban_percent': 55,
                                          'national_alb': 90,
                                          'urban_alb': 95,
                                          'rural_alb': 84},
                                         'JOR': {'country_name': 'Jordan',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 9267000,
                                          'urban_percent': 90,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'KAZ': {'country_name': 'Kazakhstan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 17572000,
                                          'urban_percent': 57,
                                          'national_alb': 95,
                                          'urban_alb': 98,
                                          'rural_alb': 91},
                                         'KEN': {'country_name': 'Kenya',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 47878000,
                                          'urban_percent': 26,
                                          'national_alb': 58,
                                          'urban_alb': 87,
                                          'rural_alb': 48},
                                         'KIR': {'country_name': 'Kiribati',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 111000,
                                          'urban_percent': 52,
                                          'national_alb': 74,
                                          'urban_alb': 89,
                                          'rural_alb': 58},
                                         'LVA': {'country_name': 'Latvia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 1998000,
                                          'urban_percent': 68,
                                          'national_alb': 99,
                                          'urban_alb': 99,
                                          'rural_alb': 99},
                                         'LSO': {'country_name': 'Lesotho',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 2059000,
                                          'urban_percent': 27,
                                          'national_alb': 71,
                                          'urban_alb': 90,
                                          'rural_alb': 64},
                                         'LBR': {'country_name': 'Liberia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 4472000,
                                          'urban_percent': 50,
                                          'national_alb': 73,
                                          'urban_alb': 84,
                                          'rural_alb': 62},
                                         'LTU': {'country_name': 'Lithuania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 2932000,
                                          'urban_percent': 67,
                                          'national_alb': 97,
                                          'urban_alb': 100,
                                          'rural_alb': 91},
                                         'LUX': {'country_name': 'Luxembourg',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 567000,
                                          'urban_percent': 90,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'MDG': {'country_name': 'Madagascar',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 24234000,
                                          'urban_percent': 35,
                                          'national_alb': 49,
                                          'urban_alb': 78,
                                          'rural_alb': 33},
                                         'MWI': {'country_name': 'Malawi',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 16745000,
                                          'urban_percent': 16,
                                          'national_alb': 66,
                                          'urban_alb': 86,
                                          'rural_alb': 62},
                                         'MYS': {'country_name': 'Malaysia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 30271000,
                                          'urban_percent': 74,
                                          'national_alb': 97,
                                          'urban_alb': 100,
                                          'rural_alb': 88},
                                         'MDV': {'country_name': 'Maldives',
                                          'region': 'South Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 455000,
                                          'urban_percent': 39,
                                          'national_alb': 99,
                                          'urban_alb': 99,
                                          'rural_alb': 99},
                                         'MLI': {'country_name': 'Mali',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 17439000,
                                          'urban_percent': 40,
                                          'national_alb': 74,
                                          'urban_alb': 91,
                                          'rural_alb': 63},
                                         'MLT': {'country_name': 'Malta',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 434000,
                                          'urban_percent': 94,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'MHL': {'country_name': 'Marshall Islands',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 57000,
                                          'urban_percent': 76,
                                          'national_alb': 88,
                                          'urban_alb': 86,
                                          'rural_alb': 94},
                                         'MRT': {'country_name': 'Mauritania',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 4046000,
                                          'urban_percent': 51,
                                          'national_alb': 67,
                                          'urban_alb': 86,
                                          'rural_alb': 47},
                                         'MUS': {'country_name': 'Mauritius',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 1259000,
                                          'urban_percent': 41,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'MEX': {'country_name': 'Mexico',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 121858000,
                                          'urban_percent': 79,
                                          'national_alb': 98,
                                          'urban_alb': 100,
                                          'rural_alb': 90},
                                         'MCO': {'country_name': 'Monaco',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 38000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'MNG': {'country_name': 'Mongolia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 2998000,
                                          'urban_percent': 68,
                                          'national_alb': 81,
                                          'urban_alb': 94,
                                          'rural_alb': 53},
                                         'MNE': {'country_name': 'Montenegro',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 627000,
                                          'urban_percent': 66,
                                          'national_alb': 97,
                                          'urban_alb': 98,
                                          'rural_alb': 95},
                                         'MAR': {'country_name': 'Morocco',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 34664000,
                                          'urban_percent': 61,
                                          'national_alb': 84,
                                          'urban_alb': 96,
                                          'rural_alb': 65},
                                         'MOZ': {'country_name': 'Mozambique',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 27042000,
                                          'urban_percent': 34,
                                          'national_alb': 51,
                                          'urban_alb': 80,
                                          'rural_alb': 36},
                                         'MMR': {'country_name': 'Myanmar',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 52681000,
                                          'urban_percent': 30,
                                          'national_alb': 74,
                                          'urban_alb': 88,
                                          'rural_alb': 68},
                                         'NAM': {'country_name': 'Namibia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 2315000,
                                          'urban_percent': 47,
                                          'national_alb': 83,
                                          'urban_alb': 97,
                                          'rural_alb': 71},
                                         'NRU': {'country_name': 'Nauru',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 10000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'NPL': {'country_name': 'Nepal',
                                          'region': 'South Asia',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 27015000,
                                          'urban_percent': 19,
                                          'national_alb': 88,
                                          'urban_alb': 90,
                                          'rural_alb': 88},
                                         'NLD': {'country_name': 'Netherlands',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 16938000,
                                          'urban_percent': 90,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'NZL': {'country_name': 'New Zealand',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 4615000,
                                          'urban_percent': 86,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'NIC': {'country_name': 'Nicaragua',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 6223000,
                                          'urban_percent': 58,
                                          'national_alb': 81,
                                          'urban_alb': 97,
                                          'rural_alb': 59},
                                         'NER': {'country_name': 'Niger',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 20002000,
                                          'urban_percent': 16,
                                          'national_alb': 45,
                                          'urban_alb': 88,
                                          'rural_alb': 37},
                                         'NGA': {'country_name': 'Nigeria',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 181137000,
                                          'urban_percent': 48,
                                          'national_alb': 69,
                                          'urban_alb': 85,
                                          'rural_alb': 54},
                                         'MKD': {'country_name': 'North Macedonia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 2079000,
                                          'urban_percent': 57,
                                          'national_alb': 97,
                                          'urban_alb': 97,
                                          'rural_alb': 97},
                                         'NOR': {'country_name': 'Norway',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 5200000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'OMN': {'country_name': 'Oman',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 4267000,
                                          'urban_percent': 81,
                                          'national_alb': 90,
                                          'urban_alb': 94,
                                          'rural_alb': 73},
                                         'PAK': {'country_name': 'Pakistan',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 199427000,
                                          'urban_percent': 36,
                                          'national_alb': 89,
                                          'urban_alb': 94,
                                          'rural_alb': 86},
                                         'PLW': {'country_name': 'Palau',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 18000,
                                          'urban_percent': 78,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'PAN': {'country_name': 'Panama',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 3968000,
                                          'urban_percent': 67,
                                          'national_alb': 93,
                                          'urban_alb': 98,
                                          'rural_alb': 83},
                                         'PNG': {'country_name': 'Papua New Guinea',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 8108000,
                                          'urban_percent': 13,
                                          'national_alb': 41,
                                          'urban_alb': 85,
                                          'rural_alb': 34},
                                         'PRY': {'country_name': 'Paraguay',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 6689000,
                                          'urban_percent': 61,
                                          'national_alb': 97,
                                          'urban_alb': 100,
                                          'rural_alb': 92},
                                         'PER': {'country_name': 'Peru',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 30471000,
                                          'urban_percent': 77,
                                          'national_alb': 90,
                                          'urban_alb': 95,
                                          'rural_alb': 73},
                                         'PHL': {'country_name': 'Philippines',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 102113000,
                                          'urban_percent': 46,
                                          'national_alb': 92,
                                          'urban_alb': 96,
                                          'rural_alb': 89},
                                         'POL': {'country_name': 'Poland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 38034000,
                                          'urban_percent': 60,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'PRT': {'country_name': 'Portugal',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 10368000,
                                          'urban_percent': 64,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'ROU': {'country_name': 'Romania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 19925000,
                                          'urban_percent': 54,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'RUS': {'country_name': 'Russian Federation',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 144985000,
                                          'urban_percent': 74,
                                          'national_alb': 97,
                                          'urban_alb': 99,
                                          'rural_alb': 91},
                                         'RWA': {'country_name': 'Rwanda',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 11369000,
                                          'urban_percent': 17,
                                          'national_alb': 57,
                                          'urban_alb': 80,
                                          'rural_alb': 52},
                                         'WSM': {'country_name': 'Samoa',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 194000,
                                          'urban_percent': 19,
                                          'national_alb': 91,
                                          'urban_alb': 91,
                                          'rural_alb': 91},
                                         'SEN': {'country_name': 'Senegal',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 14578000,
                                          'urban_percent': 46,
                                          'national_alb': 79,
                                          'urban_alb': 94,
                                          'rural_alb': 66},
                                         'SRB': {'country_name': 'Serbia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 8877000,
                                          'urban_percent': 56,
                                          'national_alb': 93,
                                          'urban_alb': 92,
                                          'rural_alb': 94},
                                         'SLE': {'country_name': 'Sierra Leone',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 7172000,
                                          'urban_percent': 41,
                                          'national_alb': 58,
                                          'urban_alb': 76,
                                          'rural_alb': 45},
                                         'SGP': {'country_name': 'Singapore',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 5592000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'SLB': {'country_name': 'Solomon Islands',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 603000,
                                          'urban_percent': 22,
                                          'national_alb': 69,
                                          'urban_alb': 91,
                                          'rural_alb': 63},
                                         'SOM': {'country_name': 'Somalia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 13797000,
                                          'urban_percent': 43,
                                          'national_alb': 49,
                                          'urban_alb': 74,
                                          'rural_alb': 30},
                                         'ZAF': {'country_name': 'South Africa',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 55386000,
                                          'urban_percent': 65,
                                          'national_alb': 92,
                                          'urban_alb': 99,
                                          'rural_alb': 79},
                                         'SSD': {'country_name': 'South Sudan',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 10716000,
                                          'urban_percent': 19,
                                          'national_alb': 41,
                                          'urban_alb': 61,
                                          'rural_alb': 36},
                                         'ESP': {'country_name': 'Spain',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 46672000,
                                          'urban_percent': 80,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'LKA': {'country_name': 'Sri Lanka',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 20908000,
                                          'urban_percent': 18,
                                          'national_alb': 90,
                                          'urban_alb': 98,
                                          'rural_alb': 88},
                                         'SDN': {'country_name': 'Sudan',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 38903000,
                                          'urban_percent': 34,
                                          'national_alb': 59,
                                          'urban_alb': 73,
                                          'rural_alb': 52},
                                         'SUR': {'country_name': 'Suriname',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 559000,
                                          'urban_percent': 66,
                                          'national_alb': 96,
                                          'urban_alb': 98,
                                          'rural_alb': 92},
                                         'SWE': {'country_name': 'Sweden',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 9765000,
                                          'urban_percent': 87,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'CHE': {'country_name': 'Switzerland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 8297000,
                                          'urban_percent': 74,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'SYR': {'country_name': 'Syrian Arab Republic',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 17997000,
                                          'urban_percent': 52,
                                          'national_alb': 94,
                                          'urban_alb': 95,
                                          'rural_alb': 93},
                                         'TJK': {'country_name': 'Tajikistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 8454000,
                                          'urban_percent': 27,
                                          'national_alb': 76,
                                          'urban_alb': 95,
                                          'rural_alb': 69},
                                         'THA': {'country_name': 'Thailand',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 68715000,
                                          'urban_percent': 48,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'TLS': {'country_name': 'Timor-Leste',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 1196000,
                                          'urban_percent': 29,
                                          'national_alb': 75,
                                          'urban_alb': 90,
                                          'rural_alb': 69},
                                         'TGO': {'country_name': 'Togo',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 7323000,
                                          'urban_percent': 40,
                                          'national_alb': 64,
                                          'urban_alb': 88,
                                          'rural_alb': 48},
                                         'TON': {'country_name': 'Tonga',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 101000,
                                          'urban_percent': 23,
                                          'national_alb': 99,
                                          'urban_alb': 100,
                                          'rural_alb': 99},
                                         'TUN': {'country_name': 'Tunisia',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 11180000,
                                          'urban_percent': 68,
                                          'national_alb': 95,
                                          'urban_alb': 100,
                                          'rural_alb': 84},
                                         'TKM': {'country_name': 'Turkmenistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 5565000,
                                          'urban_percent': 50,
                                          'national_alb': 98,
                                          'urban_alb': 100,
                                          'rural_alb': 96},
                                         'TUV': {'country_name': 'Tuvalu',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2015,
                                          'pop': 11000,
                                          'urban_percent': 60,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'UGA': {'country_name': 'Uganda',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 38225000,
                                          'urban_percent': 22,
                                          'national_alb': 48,
                                          'urban_alb': 77,
                                          'rural_alb': 40},
                                         'UKR': {'country_name': 'Ukraine',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 44922000,
                                          'urban_percent': 69,
                                          'national_alb': 94,
                                          'urban_alb': 92,
                                          'rural_alb': 98},
                                         'GBR': {'country_name': 'United Kingdom',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 65860000,
                                          'urban_percent': 83,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'USA': {'country_name': 'United States of America',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 320878000,
                                          'urban_percent': 82,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'URY': {'country_name': 'Uruguay',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'High income',
                                          'year': 2015,
                                          'pop': 3412000,
                                          'urban_percent': 95,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'UZB': {'country_name': 'Uzbekistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 30930000,
                                          'urban_percent': 51,
                                          'national_alb': 98,
                                          'urban_alb': 100,
                                          'rural_alb': 96},
                                         'VUT': {'country_name': 'Vanuatu',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 271000,
                                          'urban_percent': 25,
                                          'national_alb': 90,
                                          'urban_alb': 100,
                                          'rural_alb': 87},
                                         'VNM': {'country_name': 'Vietnam',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 92677000,
                                          'urban_percent': 34,
                                          'national_alb': 93,
                                          'urban_alb': 98,
                                          'rural_alb': 90},
                                         'ZMB': {'country_name': 'Zambia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2015,
                                          'pop': 15879000,
                                          'urban_percent': 42,
                                          'national_alb': 61,
                                          'urban_alb': 86,
                                          'rural_alb': 43},
                                         'ZWE': {'country_name': 'Zimbabwe',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2015,
                                          'pop': 13815000,
                                          'urban_percent': 32,
                                          'national_alb': 65,
                                          'urban_alb': 94,
                                          'rural_alb': 51}}),
"dict_2020_rural_alb_test": (TEXT_FORMAT_DICT, {'AFG': {'country_name': 'Afghanistan',
                                          'region': 'South Asia',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 38928000,
                                          'urban_percent': 26,
                                          'national_alb': 75,
                                          'urban_alb': 100,
                                          'rural_alb': 66},
                                         'ALB': {'country_name': 'Albania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2878000,
                                          'urban_percent': 62,
                                          'national_alb': 95,
                                          'urban_alb': 96,
                                          'rural_alb': 93},
                                         'DZA': {'country_name': 'Algeria',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 43851000,
                                          'urban_percent': 74,
                                          'national_alb': 94,
                                          'urban_alb': 96,
                                          'rural_alb': 88},
                                         'AND': {'country_name': 'Andorra',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 77000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'AGO': {'country_name': 'Angola',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 32866000,
                                          'urban_percent': 67,
                                          'national_alb': 57,
                                          'urban_alb': 72,
                                          'rural_alb': 27},
                                         'ARM': {'country_name': 'Armenia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2963000,
                                          'urban_percent': 63,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'AUS': {'country_name': 'Australia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 25500000,
                                          'urban_percent': 86,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'AUT': {'country_name': 'Austria',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 9006000,
                                          'urban_percent': 59,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'AZE': {'country_name': 'Azerbaijan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 10139000,
                                          'urban_percent': 56,
                                          'national_alb': 96,
                                          'urban_alb': 100,
                                          'rural_alb': 91},
                                         'BGD': {'country_name': 'Bangladesh',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 164689000,
                                          'urban_percent': 38,
                                          'national_alb': 98,
                                          'urban_alb': 97,
                                          'rural_alb': 99},
                                         'BLR': {'country_name': 'Belarus',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 9449000,
                                          'urban_percent': 79,
                                          'national_alb': 96,
                                          'urban_alb': 96,
                                          'rural_alb': 96},
                                         'BEL': {'country_name': 'Belgium',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 11590000,
                                          'urban_percent': 98,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'BLZ': {'country_name': 'Belize',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 398000,
                                          'urban_percent': 46,
                                          'national_alb': 98,
                                          'urban_alb': 99,
                                          'rural_alb': 97},
                                         'BEN': {'country_name': 'Benin',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 12123000,
                                          'urban_percent': 48,
                                          'national_alb': 65,
                                          'urban_alb': 73,
                                          'rural_alb': 58},
                                         'BMU': {'country_name': 'Bermuda',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 62000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'BTN': {'country_name': 'Bhutan',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 772000,
                                          'urban_percent': 42,
                                          'national_alb': 97,
                                          'urban_alb': 98,
                                          'rural_alb': 96},
                                         'BIH': {'country_name': 'Bosnia and Herzegovina',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 3281000,
                                          'urban_percent': 49,
                                          'national_alb': 96,
                                          'urban_alb': 95,
                                          'rural_alb': 97},
                                         'BWA': {'country_name': 'Botswana',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2352000,
                                          'urban_percent': 71,
                                          'national_alb': 92,
                                          'urban_alb': 98,
                                          'rural_alb': 77},
                                         'BRA': {'country_name': 'Brazil',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 212559000,
                                          'urban_percent': 87,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'BRN': {'country_name': 'Brunei Darussalam',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 437000,
                                          'urban_percent': 78,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'BGR': {'country_name': 'Bulgaria',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 6948000,
                                          'urban_percent': 76,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'BFA': {'country_name': 'Burkina Faso',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 20903000,
                                          'urban_percent': 31,
                                          'national_alb': 47,
                                          'urban_alb': 80,
                                          'rural_alb': 32},
                                         'BDI': {'country_name': 'Burundi',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 11891000,
                                          'urban_percent': 14,
                                          'national_alb': 62,
                                          'urban_alb': 91,
                                          'rural_alb': 57},
                                         'CPV': {'country_name': 'Cabo Verde',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 556000,
                                          'urban_percent': 67,
                                          'national_alb': 89,
                                          'urban_alb': 93,
                                          'rural_alb': 81},
                                         'KHM': {'country_name': 'Cambodia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 16719000,
                                          'urban_percent': 24,
                                          'national_alb': 71,
                                          'urban_alb': 90,
                                          'rural_alb': 65},
                                         'CMR': {'country_name': 'Cameroon',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 26546000,
                                          'urban_percent': 58,
                                          'national_alb': 66,
                                          'urban_alb': 82,
                                          'rural_alb': 44},
                                         'CAN': {'country_name': 'Canada',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 37742000,
                                          'urban_percent': 82,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'CAF': {'country_name': 'Central African Republic',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 4830000,
                                          'urban_percent': 42,
                                          'national_alb': 37,
                                          'urban_alb': 50,
                                          'rural_alb': 28},
                                         'TCD': {'country_name': 'Chad',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 16426000,
                                          'urban_percent': 24,
                                          'national_alb': 46,
                                          'urban_alb': 74,
                                          'rural_alb': 37},
                                         'CHL': {'country_name': 'Chile',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 19116000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'CHN': {'country_name': 'China',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 1463141000,
                                          'urban_percent': 62,
                                          'national_alb': 94,
                                          'urban_alb': 97,
                                          'rural_alb': 89},
                                         'COL': {'country_name': 'Colombia',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 50883000,
                                          'urban_percent': 81,
                                          'national_alb': 97,
                                          'urban_alb': 100,
                                          'rural_alb': 84},
                                         'CRI': {'country_name': 'Costa Rica',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 5094000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'CIV': {'country_name': "Côte d'Ivoire",
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 26378000,
                                          'urban_percent': 52,
                                          'national_alb': 71,
                                          'urban_alb': 85,
                                          'rural_alb': 56},
                                         'CUB': {'country_name': 'Cuba',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 11327000,
                                          'urban_percent': 77,
                                          'national_alb': 97,
                                          'urban_alb': 98,
                                          'rural_alb': 94},
                                         'CYP': {'country_name': 'Cyprus',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 1207000,
                                          'urban_percent': 67,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'CZE': {'country_name': 'Czech Republic',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 10709000,
                                          'urban_percent': 74,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'DNK': {'country_name': 'Denmark',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 5792000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'DJI': {'country_name': 'Djibouti',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 988000,
                                          'urban_percent': 78,
                                          'national_alb': 76,
                                          'urban_alb': 84,
                                          'rural_alb': 48},
                                         'DOM': {'country_name': 'Dominican Republic',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 10848000,
                                          'urban_percent': 83,
                                          'national_alb': 97,
                                          'urban_alb': 98,
                                          'rural_alb': 92},
                                         'ECU': {'country_name': 'Ecuador',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 17643000,
                                          'urban_percent': 64,
                                          'national_alb': 95,
                                          'urban_alb': 100,
                                          'rural_alb': 86},
                                         'SLV': {'country_name': 'El Salvador',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 6486000,
                                          'urban_percent': 73,
                                          'national_alb': 98,
                                          'urban_alb': 100,
                                          'rural_alb': 93},
                                         'EST': {'country_name': 'Estonia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 1327000,
                                          'urban_percent': 69,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'SWZ': {'country_name': 'Eswatini',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 1160000,
                                          'urban_percent': 24,
                                          'national_alb': 71,
                                          'urban_alb': 97,
                                          'rural_alb': 63},
                                         'ETH': {'country_name': 'Ethiopia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 114964000,
                                          'urban_percent': 22,
                                          'national_alb': 50,
                                          'urban_alb': 84,
                                          'rural_alb': 40},
                                         'FJI': {'country_name': 'Fiji',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 896000,
                                          'urban_percent': 57,
                                          'national_alb': 94,
                                          'urban_alb': 98,
                                          'rural_alb': 89},
                                         'FIN': {'country_name': 'Finland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 5541000,
                                          'urban_percent': 86,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'FRA': {'country_name': 'France',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 65274000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'GAB': {'country_name': 'Gabon',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2226000,
                                          'urban_percent': 90,
                                          'national_alb': 85,
                                          'urban_alb': 90,
                                          'rural_alb': 40},
                                         'GEO': {'country_name': 'Georgia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 3989000,
                                          'urban_percent': 59,
                                          'national_alb': 97,
                                          'urban_alb': 100,
                                          'rural_alb': 93},
                                         'DEU': {'country_name': 'Germany',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 83784000,
                                          'urban_percent': 77,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'GHA': {'country_name': 'Ghana',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 31073000,
                                          'urban_percent': 57,
                                          'national_alb': 86,
                                          'urban_alb': 96,
                                          'rural_alb': 73},
                                         'GIB': {'country_name': 'Gibraltar',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 34000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'GRC': {'country_name': 'Greece',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 10423000,
                                          'urban_percent': 80,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'GRL': {'country_name': 'Greenland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 57000,
                                          'urban_percent': 87,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'GTM': {'country_name': 'Guatemala',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 17916000,
                                          'urban_percent': 52,
                                          'national_alb': 94,
                                          'urban_alb': 98,
                                          'rural_alb': 90},
                                         'GIN': {'country_name': 'Guinea',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 13133000,
                                          'urban_percent': 37,
                                          'national_alb': 64,
                                          'urban_alb': 87,
                                          'rural_alb': 50},
                                         'GNB': {'country_name': 'Guinea-Bissau',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 1968000,
                                          'urban_percent': 44,
                                          'national_alb': 59,
                                          'urban_alb': 71,
                                          'rural_alb': 50},
                                         'GUY': {'country_name': 'Guyana',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 787000,
                                          'urban_percent': 27,
                                          'national_alb': 96,
                                          'urban_alb': 100,
                                          'rural_alb': 95},
                                         'HTI': {'country_name': 'Haiti',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 11403000,
                                          'urban_percent': 57,
                                          'national_alb': 67,
                                          'urban_alb': 85,
                                          'rural_alb': 43},
                                         'HND': {'country_name': 'Honduras',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 9905000,
                                          'urban_percent': 58,
                                          'national_alb': 96,
                                          'urban_alb': 100,
                                          'rural_alb': 90},
                                         'HUN': {'country_name': 'Hungary',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 9660000,
                                          'urban_percent': 72,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'ISL': {'country_name': 'Iceland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 341000,
                                          'urban_percent': 94,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'IND': {'country_name': 'India',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 1380004000,
                                          'urban_percent': 35,
                                          'national_alb': 90,
                                          'urban_alb': 94,
                                          'rural_alb': 88},
                                         'IDN': {'country_name': 'Indonesia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 273524000,
                                          'urban_percent': 57,
                                          'national_alb': 92,
                                          'urban_alb': 98,
                                          'rural_alb': 84},
                                         'IRQ': {'country_name': 'Iraq',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 40223000,
                                          'urban_percent': 71,
                                          'national_alb': 98,
                                          'urban_alb': 100,
                                          'rural_alb': 93},
                                         'IRL': {'country_name': 'Ireland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 4938000,
                                          'urban_percent': 64,
                                          'national_alb': 97,
                                          'urban_alb': 97,
                                          'rural_alb': 97},
                                         'ISR': {'country_name': 'Israel',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 8656000,
                                          'urban_percent': 93,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'JAM': {'country_name': 'Jamaica',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2961000,
                                          'urban_percent': 56,
                                          'national_alb': 91,
                                          'urban_alb': 95,
                                          'rural_alb': 86},
                                         'JOR': {'country_name': 'Jordan',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 10203000,
                                          'urban_percent': 91,
                                          'national_alb': 99,
                                          'urban_alb': 100,
                                          'rural_alb': 89},
                                         'KAZ': {'country_name': 'Kazakhstan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 18777000,
                                          'urban_percent': 58,
                                          'national_alb': 95,
                                          'urban_alb': 98,
                                          'rural_alb': 91},
                                         'KEN': {'country_name': 'Kenya',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 53771000,
                                          'urban_percent': 28,
                                          'national_alb': 62,
                                          'urban_alb': 87,
                                          'rural_alb': 52},
                                         'KIR': {'country_name': 'Kiribati',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 119000,
                                          'urban_percent': 56,
                                          'national_alb': 78,
                                          'urban_alb': 92,
                                          'rural_alb': 60},
                                         'LVA': {'country_name': 'Latvia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 1886000,
                                          'urban_percent': 68,
                                          'national_alb': 99,
                                          'urban_alb': 99,
                                          'rural_alb': 99},
                                         'LSO': {'country_name': 'Lesotho',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 2142000,
                                          'urban_percent': 29,
                                          'national_alb': 72,
                                          'urban_alb': 93,
                                          'rural_alb': 63},
                                         'LBR': {'country_name': 'Liberia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 5058000,
                                          'urban_percent': 52,
                                          'national_alb': 75,
                                          'urban_alb': 86,
                                          'rural_alb': 63},
                                         'LTU': {'country_name': 'Lithuania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 2722000,
                                          'urban_percent': 68,
                                          'national_alb': 98,
                                          'urban_alb': 100,
                                          'rural_alb': 94},
                                         'LUX': {'country_name': 'Luxembourg',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 626000,
                                          'urban_percent': 91,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'MDG': {'country_name': 'Madagascar',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 27691000,
                                          'urban_percent': 39,
                                          'national_alb': 53,
                                          'urban_alb': 80,
                                          'rural_alb': 36},
                                         'MWI': {'country_name': 'Malawi',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 19130000,
                                          'urban_percent': 17,
                                          'national_alb': 70,
                                          'urban_alb': 86,
                                          'rural_alb': 67},
                                         'MYS': {'country_name': 'Malaysia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 32366000,
                                          'urban_percent': 77,
                                          'national_alb': 97,
                                          'urban_alb': 100,
                                          'rural_alb': 87},
                                         'MDV': {'country_name': 'Maldives',
                                          'region': 'South Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 541000,
                                          'urban_percent': 41,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'MLI': {'country_name': 'Mali',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 20251000,
                                          'urban_percent': 44,
                                          'national_alb': 83,
                                          'urban_alb': 96,
                                          'rural_alb': 73},
                                         'MLT': {'country_name': 'Malta',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 442000,
                                          'urban_percent': 95,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'MHL': {'country_name': 'Marshall Islands',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 59000,
                                          'urban_percent': 78,
                                          'national_alb': 89,
                                          'urban_alb': 87,
                                          'rural_alb': 96},
                                         'MRT': {'country_name': 'Mauritania',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 4650000,
                                          'urban_percent': 55,
                                          'national_alb': 72,
                                          'urban_alb': 89,
                                          'rural_alb': 51},
                                         'MUS': {'country_name': 'Mauritius',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 1272000,
                                          'urban_percent': 41,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'MEX': {'country_name': 'Mexico',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 128933000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'MCO': {'country_name': 'Monaco',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 39000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'MNG': {'country_name': 'Mongolia',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 3278000,
                                          'urban_percent': 69,
                                          'national_alb': 85,
                                          'urban_alb': 97,
                                          'rural_alb': 58},
                                         'MNE': {'country_name': 'Montenegro',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 628000,
                                          'urban_percent': 67,
                                          'national_alb': 99,
                                          'urban_alb': 100,
                                          'rural_alb': 97},
                                         'MAR': {'country_name': 'Morocco',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 36911000,
                                          'urban_percent': 64,
                                          'national_alb': 90,
                                          'urban_alb': 98,
                                          'rural_alb': 76},
                                         'MOZ': {'country_name': 'Mozambique',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 31255000,
                                          'urban_percent': 37,
                                          'national_alb': 63,
                                          'urban_alb': 88,
                                          'rural_alb': 48},
                                         'MMR': {'country_name': 'Myanmar',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 54410000,
                                          'urban_percent': 31,
                                          'national_alb': 84,
                                          'urban_alb': 95,
                                          'rural_alb': 79},
                                         'NAM': {'country_name': 'Namibia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2541000,
                                          'urban_percent': 52,
                                          'national_alb': 84,
                                          'urban_alb': 96,
                                          'rural_alb': 71},
                                         'NRU': {'country_name': 'Nauru',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 11000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'NPL': {'country_name': 'Nepal',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 29137000,
                                          'urban_percent': 21,
                                          'national_alb': 90,
                                          'urban_alb': 90,
                                          'rural_alb': 90},
                                         'NLD': {'country_name': 'Netherlands',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 17135000,
                                          'urban_percent': 92,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'NZL': {'country_name': 'New Zealand',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 4822000,
                                          'urban_percent': 87,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'NIC': {'country_name': 'Nicaragua',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 6625000,
                                          'urban_percent': 59,
                                          'national_alb': 82,
                                          'urban_alb': 97,
                                          'rural_alb': 60},
                                         'NER': {'country_name': 'Niger',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 24207000,
                                          'urban_percent': 17,
                                          'national_alb': 47,
                                          'urban_alb': 86,
                                          'rural_alb': 39},
                                         'NGA': {'country_name': 'Nigeria',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 206140000,
                                          'urban_percent': 52,
                                          'national_alb': 78,
                                          'urban_alb': 92,
                                          'rural_alb': 63},
                                         'MKD': {'country_name': 'North Macedonia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 2083000,
                                          'urban_percent': 58,
                                          'national_alb': 98,
                                          'urban_alb': 98,
                                          'rural_alb': 98},
                                         'NOR': {'country_name': 'Norway',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 5421000,
                                          'urban_percent': 83,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'OMN': {'country_name': 'Oman',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 5107000,
                                          'urban_percent': 86,
                                          'national_alb': 92,
                                          'urban_alb': 95,
                                          'rural_alb': 74},
                                         'PAK': {'country_name': 'Pakistan',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 220892000,
                                          'urban_percent': 37,
                                          'national_alb': 90,
                                          'urban_alb': 93,
                                          'rural_alb': 88},
                                         'PLW': {'country_name': 'Palau',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 18000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'PAN': {'country_name': 'Panama',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 4315000,
                                          'urban_percent': 68,
                                          'national_alb': 94,
                                          'urban_alb': 98,
                                          'rural_alb': 86},
                                         'PNG': {'country_name': 'Papua New Guinea',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 8947000,
                                          'urban_percent': 13,
                                          'national_alb': 45,
                                          'urban_alb': 86,
                                          'rural_alb': 39},
                                         'PRY': {'country_name': 'Paraguay',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 7133000,
                                          'urban_percent': 62,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'PER': {'country_name': 'Peru',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 32972000,
                                          'urban_percent': 78,
                                          'national_alb': 93,
                                          'urban_alb': 97,
                                          'rural_alb': 79},
                                         'PHL': {'country_name': 'Philippines',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 109581000,
                                          'urban_percent': 47,
                                          'national_alb': 94,
                                          'urban_alb': 97,
                                          'rural_alb': 91},
                                         'POL': {'country_name': 'Poland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 37847000,
                                          'urban_percent': 60,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'PRT': {'country_name': 'Portugal',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 10197000,
                                          'urban_percent': 66,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'ROU': {'country_name': 'Romania',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 19238000,
                                          'urban_percent': 54,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'RUS': {'country_name': 'Russian Federation',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 145934000,
                                          'urban_percent': 75,
                                          'national_alb': 97,
                                          'urban_alb': 99,
                                          'rural_alb': 91},
                                         'RWA': {'country_name': 'Rwanda',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 12952000,
                                          'urban_percent': 17,
                                          'national_alb': 60,
                                          'urban_alb': 83,
                                          'rural_alb': 55},
                                         'WSM': {'country_name': 'Samoa',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 198000,
                                          'urban_percent': 18,
                                          'national_alb': 92,
                                          'urban_alb': 92,
                                          'rural_alb': 92},
                                         'SEN': {'country_name': 'Senegal',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 16744000,
                                          'urban_percent': 48,
                                          'national_alb': 85,
                                          'urban_alb': 95,
                                          'rural_alb': 76},
                                         'SRB': {'country_name': 'Serbia',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 8737000,
                                          'urban_percent': 56,
                                          'national_alb': 95,
                                          'urban_alb': 95,
                                          'rural_alb': 95},
                                         'SLE': {'country_name': 'Sierra Leone',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 7977000,
                                          'urban_percent': 43,
                                          'national_alb': 64,
                                          'urban_alb': 78,
                                          'rural_alb': 53},
                                         'SGP': {'country_name': 'Singapore',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 5850000,
                                          'urban_percent': 100,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'SLB': {'country_name': 'Solomon Islands',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 687000,
                                          'urban_percent': 25,
                                          'national_alb': 67,
                                          'urban_alb': 91,
                                          'rural_alb': 59},
                                         'SOM': {'country_name': 'Somalia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 15893000,
                                          'urban_percent': 46,
                                          'national_alb': 56,
                                          'urban_alb': 79,
                                          'rural_alb': 36},
                                         'ZAF': {'country_name': 'South Africa',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 59309000,
                                          'urban_percent': 67,
                                          'national_alb': 94,
                                          'urban_alb': 100,
                                          'rural_alb': 82},
                                         'SSD': {'country_name': 'South Sudan',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 11194000,
                                          'urban_percent': 20,
                                          'national_alb': 41,
                                          'urban_alb': 70,
                                          'rural_alb': 34},
                                         'ESP': {'country_name': 'Spain',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 46755000,
                                          'urban_percent': 81,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'LKA': {'country_name': 'Sri Lanka',
                                          'region': 'South Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 21413000,
                                          'urban_percent': 19,
                                          'national_alb': 92,
                                          'urban_alb': 100,
                                          'rural_alb': 90},
                                         'SDN': {'country_name': 'Sudan',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 43849000,
                                          'urban_percent': 35,
                                          'national_alb': 60,
                                          'urban_alb': 74,
                                          'rural_alb': 52},
                                         'SUR': {'country_name': 'Suriname',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 587000,
                                          'urban_percent': 66,
                                          'national_alb': 98,
                                          'urban_alb': 99,
                                          'rural_alb': 96},
                                         'SWE': {'country_name': 'Sweden',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 10099000,
                                          'urban_percent': 88,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'CHE': {'country_name': 'Switzerland',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 8655000,
                                          'urban_percent': 74,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'SYR': {'country_name': 'Syrian Arab Republic',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 17501000,
                                          'urban_percent': 55,
                                          'national_alb': 94,
                                          'urban_alb': 95,
                                          'rural_alb': 93},
                                         'TJK': {'country_name': 'Tajikistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 9538000,
                                          'urban_percent': 28,
                                          'national_alb': 82,
                                          'urban_alb': 96,
                                          'rural_alb': 77},
                                         'THA': {'country_name': 'Thailand',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 69800000,
                                          'urban_percent': 51,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'TLS': {'country_name': 'Timor-Leste',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 1318000,
                                          'urban_percent': 31,
                                          'national_alb': 85,
                                          'urban_alb': 96,
                                          'rural_alb': 80},
                                         'TGO': {'country_name': 'Togo',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 8279000,
                                          'urban_percent': 43,
                                          'national_alb': 69,
                                          'urban_alb': 91,
                                          'rural_alb': 52},
                                         'TON': {'country_name': 'Tonga',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 106000,
                                          'urban_percent': 23,
                                          'national_alb': 99,
                                          'urban_alb': 100,
                                          'rural_alb': 99},
                                         'TUN': {'country_name': 'Tunisia',
                                          'region': 'Middle East & North Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 11819000,
                                          'urban_percent': 70,
                                          'national_alb': 98,
                                          'urban_alb': 100,
                                          'rural_alb': 93},
                                         'TKM': {'country_name': 'Turkmenistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 6031000,
                                          'urban_percent': 53,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'TUV': {'country_name': 'Tuvalu',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Upper middle income',
                                          'year': 2020,
                                          'pop': 12000,
                                          'urban_percent': 64,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'UGA': {'country_name': 'Uganda',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Low income',
                                          'year': 2020,
                                          'pop': 45741000,
                                          'urban_percent': 25,
                                          'national_alb': 56,
                                          'urban_alb': 79,
                                          'rural_alb': 48},
                                         'UKR': {'country_name': 'Ukraine',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 43734000,
                                          'urban_percent': 69,
                                          'national_alb': 94,
                                          'urban_alb': 92,
                                          'rural_alb': 98},
                                         'GBR': {'country_name': 'United Kingdom',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 67886000,
                                          'urban_percent': 84,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'USA': {'country_name': 'United States of America',
                                          'region': 'North America',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 331003000,
                                          'urban_percent': 83,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'URY': {'country_name': 'Uruguay',
                                          'region': 'Latin America & Caribbean',
                                          'income_level': 'High income',
                                          'year': 2020,
                                          'pop': 3474000,
                                          'urban_percent': 96,
                                          'national_alb': 100,
                                          'urban_alb': 100,
                                          'rural_alb': 100},
                                         'UZB': {'country_name': 'Uzbekistan',
                                          'region': 'Europe & Central Asia',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 33469000,
                                          'urban_percent': 50,
                                          'national_alb': 98,
                                          'urban_alb': 100,
                                          'rural_alb': 96},
                                         'VUT': {'country_name': 'Vanuatu',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 307000,
                                          'urban_percent': 26,
                                          'national_alb': 91,
                                          'urban_alb': 100,
                                          'rural_alb': 88},
                                         'VNM': {'country_name': 'Vietnam',
                                          'region': 'East Asia & Pacific',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 97339000,
                                          'urban_percent': 37,
                                          'national_alb': 97,
                                          'urban_alb': 100,
                                          'rural_alb': 95},
                                         'ZMB': {'country_name': 'Zambia',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 18384000,
                                          'urban_percent': 45,
                                          'national_alb': 65,
                                          'urban_alb': 87,
                                          'rural_alb': 47},
                                         'ZWE': {'country_name': 'Zimbabwe',
                                          'region': 'Sub-Saharan Africa',
                                          'income_level': 'Lower middle income',
                                          'year': 2020,
                                          'pop': 14863000,
                                          'urban_percent': 32,
                                          'national_alb': 63,
                                          'urban_alb': 93,
                                          'rural_alb': 49}}),
                 "16": (TEXT_FORMAT, 49),
                 "rural_non_alb_bin_2015": (TEXT_FORMAT_DICT, {0: ['Andorra',
                                          'Armenia',
                                          'Australia',
                                          'Austria',
                                          'Bangladesh',
                                          'Belarus',
                                          'Belgium',
                                          'Belize',
                                          'Bermuda',
                                          'Bhutan',
                                          'Bosnia and Herzegovina',
                                          'Brunei Darussalam',
                                          'Bulgaria',
                                          'Canada',
                                          'Chile',
                                          'Costa Rica',
                                          'Cyprus',
                                          'Czech Republic',
                                          'Denmark',
                                          'Estonia',
                                          'Finland',
                                          'France',
                                          'Georgia',
                                          'Germany',
                                          'Gibraltar',
                                          'Greece',
                                          'Greenland',
                                          'Guyana',
                                          'Hungary',
                                          'Iceland',
                                          'Ireland',
                                          'Israel',
                                          'Jordan',
                                          'Kazakhstan',
                                          'Latvia',
                                          'Lithuania',
                                          'Luxembourg',
                                          'Maldives',
                                          'Malta',
                                          'Marshall Islands',
                                          'Mauritius',
                                          'Monaco',
                                          'Montenegro',
                                          'Nauru',
                                          'Netherlands',
                                          'New Zealand',
                                          'North Macedonia',
                                          'Norway',
                                          'Palau',
                                          'Paraguay',
                                          'Poland',
                                          'Portugal',
                                          'Romania',
                                          'Russian Federation',
                                          'Samoa',
                                          'Serbia',
                                          'Singapore',
                                          'Spain',
                                          'Suriname',
                                          'Sweden',
                                          'Switzerland',
                                          'Syrian Arab Republic',
                                          'Thailand',
                                          'Tonga',
                                          'Turkmenistan',
                                          'Tuvalu',
                                          'Ukraine',
                                          'United Kingdom',
                                          'United States of America',
                                          'Uruguay',
                                          'Uzbekistan'],
                                         10: ['Albania',
                                          'Algeria',
                                          'Azerbaijan',
                                          'Brazil',
                                          'China',
                                          'Cuba',
                                          'Dominican Republic',
                                          'Ecuador',
                                          'El Salvador',
                                          'Fiji',
                                          'Guatemala',
                                          'Honduras',
                                          'India',
                                          'Indonesia',
                                          'Iraq',
                                          'Jamaica',
                                          'Malaysia',
                                          'Mexico',
                                          'Nepal',
                                          'Pakistan',
                                          'Panama',
                                          'Philippines',
                                          'Sri Lanka',
                                          'Tunisia',
                                          'Vanuatu',
                                          'Vietnam'],
                                         20: ['Cabo Verde', 'Colombia', 'Namibia', 'Oman', 'Peru', 'South Africa'],
                                         30: ['Botswana',
                                          'Cambodia',
                                          'Ghana',
                                          'Lesotho',
                                          'Liberia',
                                          'Malawi',
                                          'Mali',
                                          'Morocco',
                                          'Myanmar',
                                          'Senegal',
                                          'Solomon Islands',
                                          'Tajikistan',
                                          'Timor-Leste'],
                                         40: ['Afghanistan',
                                          'Benin',
                                          'Burundi',
                                          "Côte d'Ivoire",
                                          'Eswatini',
                                          'Guinea',
                                          'Kiribati',
                                          'Mongolia',
                                          'Nicaragua',
                                          'Nigeria',
                                          'Rwanda',
                                          'Sudan',
                                          'Zimbabwe'],
                                         50: ['Cameroon',
                                          'Djibouti',
                                          'Gabon',
                                          'Guinea-Bissau',
                                          'Haiti',
                                          'Kenya',
                                          'Mauritania',
                                          'Sierra Leone',
                                          'Togo',
                                          'Zambia'],
                                         60: ['Burkina Faso',
                                          'Central African Republic',
                                          'Chad',
                                          'Ethiopia',
                                          'Madagascar',
                                          'Mozambique',
                                          'Niger',
                                          'Papua New Guinea',
                                          'South Sudan',
                                          'Uganda'],
                                         70: ['Angola', 'Somalia'],
                                         80: [],
                                         90: [],
                                         100: []}),
                 "rural_non_alb_bin_2020": (TEXT_FORMAT_DICT, {0: ['Albania',
                                          'Andorra',
                                          'Armenia',
                                          'Australia',
                                          'Austria',
                                          'Azerbaijan',
                                          'Bangladesh',
                                          'Belarus',
                                          'Belgium',
                                          'Belize',
                                          'Bermuda',
                                          'Bhutan',
                                          'Bosnia and Herzegovina',
                                          'Brazil',
                                          'Brunei Darussalam',
                                          'Bulgaria',
                                          'Canada',
                                          'Chile',
                                          'Costa Rica',
                                          'Cuba',
                                          'Cyprus',
                                          'Czech Republic',
                                          'Denmark',
                                          'Dominican Republic',
                                          'El Salvador',
                                          'Estonia',
                                          'Finland',
                                          'France',
                                          'Georgia',
                                          'Germany',
                                          'Gibraltar',
                                          'Greece',
                                          'Greenland',
                                          'Guyana',
                                          'Hungary',
                                          'Iceland',
                                          'Iraq',
                                          'Ireland',
                                          'Israel',
                                          'Kazakhstan',
                                          'Latvia',
                                          'Lithuania',
                                          'Luxembourg',
                                          'Maldives',
                                          'Malta',
                                          'Marshall Islands',
                                          'Mauritius',
                                          'Mexico',
                                          'Monaco',
                                          'Montenegro',
                                          'Nauru',
                                          'Netherlands',
                                          'New Zealand',
                                          'North Macedonia',
                                          'Norway',
                                          'Palau',
                                          'Paraguay',
                                          'Philippines',
                                          'Poland',
                                          'Portugal',
                                          'Romania',
                                          'Russian Federation',
                                          'Samoa',
                                          'Serbia',
                                          'Singapore',
                                          'Spain',
                                          'Suriname',
                                          'Sweden',
                                          'Switzerland',
                                          'Syrian Arab Republic',
                                          'Thailand',
                                          'Tonga',
                                          'Tunisia',
                                          'Turkmenistan',
                                          'Tuvalu',
                                          'Ukraine',
                                          'United Kingdom',
                                          'United States of America',
                                          'Uruguay',
                                          'Uzbekistan',
                                          'Vietnam'],
                                         10: ['Algeria',
                                          'Cabo Verde',
                                          'China',
                                          'Colombia',
                                          'Ecuador',
                                          'Fiji',
                                          'Guatemala',
                                          'Honduras',
                                          'India',
                                          'Indonesia',
                                          'Jamaica',
                                          'Jordan',
                                          'Malaysia',
                                          'Nepal',
                                          'Pakistan',
                                          'Panama',
                                          'South Africa',
                                          'Sri Lanka',
                                          'Vanuatu'],
                                         20: ['Botswana',
                                          'Ghana',
                                          'Mali',
                                          'Morocco',
                                          'Myanmar',
                                          'Namibia',
                                          'Oman',
                                          'Peru',
                                          'Senegal',
                                          'Tajikistan',
                                          'Timor-Leste'],
                                         30: ['Afghanistan',
                                          'Cambodia',
                                          'Eswatini',
                                          'Lesotho',
                                          'Liberia',
                                          'Malawi',
                                          'Nigeria'],
                                         40: ['Benin',
                                          'Burundi',
                                          "Côte d'Ivoire",
                                          'Kenya',
                                          'Kiribati',
                                          'Mauritania',
                                          'Mongolia',
                                          'Nicaragua',
                                          'Rwanda',
                                          'Sierra Leone',
                                          'Solomon Islands',
                                          'Sudan',
                                          'Togo'],
                                         50: ['Cameroon',
                                          'Djibouti',
                                          'Guinea',
                                          'Guinea-Bissau',
                                          'Haiti',
                                          'Mozambique',
                                          'Uganda',
                                          'Zambia',
                                          'Zimbabwe'],
                                         60: ['Burkina Faso',
                                          'Chad',
                                          'Ethiopia',
                                          'Gabon',
                                          'Madagascar',
                                          'Niger',
                                          'Papua New Guinea',
                                          'Somalia',
                                          'South Sudan'],
                                         70: ['Angola', 'Central African Republic'],
                                         80: [],
                                         90: [],
                                         100: []}),
                 "17": (TEXT_FORMAT_UNORDERED_LIST, ['Cabo Verde', 'Colombia', 'Namibia', 'Oman', 'Peru', 'South Africa']),
                 "18": (TEXT_FORMAT_UNORDERED_LIST, ['Angola', 'Central African Republic']),
                 "19": (TEXT_FORMAT_UNORDERED_LIST, ['Jordan',
                                         'Solomon Islands',
                                         'Guinea',
                                         'Zimbabwe',
                                         'Gabon',
                                         'Central African Republic']),
                 "20": (TEXT_FORMAT_UNORDERED_LIST, ['Albania',
                                         'Azerbaijan',
                                         'Brazil',
                                         'Cuba',
                                         'Dominican Republic',
                                         'El Salvador',
                                         'Iraq',
                                         'Mexico',
                                         'Philippines',
                                         'Tunisia',
                                         'Vietnam',
                                         'Cabo Verde',
                                         'Colombia',
                                         'South Africa',
                                         'Botswana',
                                         'Ghana',
                                         'Mali',
                                         'Morocco',
                                         'Myanmar',
                                         'Senegal',
                                         'Tajikistan',
                                         'Timor-Leste',
                                         'Afghanistan',
                                         'Eswatini',
                                         'Nigeria',
                                         'Kenya',
                                         'Mauritania',
                                         'Sierra Leone',
                                         'Togo',
                                         'Mozambique',
                                         'Uganda',
                                         'Somalia'])}


special_ordered_json =  {}

def compare_outputs(expected, actual, format, expected_ordering=None):
    try:
        if format == TEXT_FORMAT:
            return simple_compare(expected, actual)
        elif format in [TEXT_FORMAT_ORDERED_LIST, TEXT_FORMAT_LIST_DICTS_ORDERED]:
            return list_compare_ordered(expected, actual)
        elif format == TEXT_FORMAT_UNORDERED_LIST:
            return list_compare_unordered(expected, actual)
        elif format == TEXT_FORMAT_SPECIAL_ORDERED_LIST:
            return list_compare_special(expected, actual, special_ordered_json[qnum[1:]])
        elif format == TEXT_FORMAT_DICT:
            return dict_compare(expected, actual)
        else:
            if expected != actual:
                return "expected %s but found %s " % (repr(expected), repr(actual))
    except:
        if expected != actual:
            return "expected %s" % (repr(expected))

def check_cell_text(qnum, actual):
    format, expected = expected_json[qnum[1:]]
    if format == TEXT_FORMAT_SPECIAL_ORDERED_LIST:
        expected_ordering = special_ordered_json[qnum[1:]]
        return compare_outputs(expected, actual, format, expected_ordering)
    else:
        return compare_outputs(expected, actual, format)


def simple_compare(expected, actual, complete_msg=True):
    msg = PASS
    if type(expected) == type:
        if expected != actual:
            if type(actual) == type:
                msg = "expected %s but found %s" % (expected.__name__, actual.__name__)
            else:
                msg = "expected %s but found %s" % (expected.__name__, repr(actual))
    elif type(expected) != type(actual) and not (type(expected) in [float, int] and type(actual) in [float, int]):
        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
    elif type(expected) == float:
        if not math.isclose(actual, expected, rel_tol=REL_TOL, abs_tol=ABS_TOL):
            msg = "expected %s" % (repr(expected))
            if complete_msg:
                msg = msg + " but found %s" % (repr(actual))
    else:
        if expected != actual:
            msg = "expected %s" % (repr(expected))
            if complete_msg:
                msg = msg + " but found %s" % (repr(actual))
    return msg


def list_compare_ordered(expected, actual, obj="list"):
    msg = PASS
    if type(expected) != type(actual):
        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
        return msg
    for i in range(len(expected)):
        if i >= len(actual):
            msg = "expected missing %s in %s" % (repr(expected[i]), obj)
            break
        if type(expected[i]) in [int, float, bool, str]:
            val = simple_compare(expected[i], actual[i])
        elif type(expected[i]) in [list]:
            val = list_compare_ordered(expected[i], actual[i], "sub" + obj)
        elif type(expected[i]) in [dict]:
            val = dict_compare(expected[i], actual[i])
        elif type(expected[i]).__name__ == obfuscate1():
            val = simple_compare(expected[i], actual[i])
        if val != PASS:
            msg = "at index %d of the %s, " % (i, obj) + val
            break
    if len(actual) > len(expected) and msg == PASS:
        msg = "found unexpected %s in %s" % (repr(actual[len(expected)]), obj)
    if len(expected) != len(actual):
        msg = msg + " (found %d entries in %s, but expected %d)" % (len(actual), obj, len(expected))

    if len(expected) > 0 and type(expected[0]) in [int, float, bool, str]:
        if msg != PASS and list_compare_unordered(expected, actual, obj) == PASS:
            try:
                msg = msg + " (list may not be ordered as required)"
            except:
                pass
    return msg


def list_compare_helper(larger, smaller):
    msg = PASS
    j = 0
    for i in range(len(larger)):
        if i == len(smaller):
            msg = "expected %s" % (repr(larger[i]))
            break
        found = False
        while not found:
            if j == len(smaller):
                val = simple_compare(larger[i], smaller[j - 1], False)
                break
            val = simple_compare(larger[i], smaller[j], False)
            j += 1
            if val == PASS:
                found = True
                break
        if not found:
            msg = val
            break
    return msg


def list_compare_unordered(expected, actual, obj="list"):
    msg = PASS
    if type(expected) != type(actual):
        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
        return msg
    try:
        sort_expected = sorted(expected)
        sort_actual = sorted(actual)
    except:
        msg = "unexpected datatype found in %s; expected entries of type %s" % (obj, obj, type(expected[0]).__name__)
        return msg

    if len(actual) == 0 and len(expected) > 0:
        msg = "in the %s, missing" % (obj) + expected[0]
    elif len(actual) > 0 and len(expected) > 0:
        val = simple_compare(sort_expected[0], sort_actual[0])
        if val.startswith("expected to find type"):
            msg = "in the %s, " % (obj) + simple_compare(sort_expected[0], sort_actual[0])
        else:
            if len(expected) > len(actual):
                msg = "in the %s, missing " % (obj) + list_compare_helper(sort_expected, sort_actual)
            elif len(expected) < len(actual):
                msg = "in the %s, found un" % (obj) + list_compare_helper(sort_actual, sort_expected)
            if len(expected) != len(actual):
                msg = msg + " (found %d entries in %s, but expected %d)" % (len(actual), obj, len(expected))
                return msg
            else:
                val = list_compare_helper(sort_expected, sort_actual)
                if val != PASS:
                    msg = "in the %s, missing " % (obj) + val + ", but found un" + list_compare_helper(sort_actual,
                                                                                               sort_expected)
    return msg


def list_compare_special_init(expected, special_order):
    real_expected = []
    for i in range(len(expected)):
        if real_expected == [] or special_order[i-1] != special_order[i]:
            real_expected.append([])
        real_expected[-1].append(expected[i])
    return real_expected


def list_compare_special(expected, actual, special_order):
    expected = list_compare_special_init(expected, special_order)
    msg = PASS
    expected_list = []
    for expected_item in expected:
        expected_list.extend(expected_item)
    val = list_compare_unordered(expected_list, actual)
    if val != PASS:
        msg = val
    else:
        i = 0
        for expected_item in expected:
            j = len(expected_item)
            actual_item = actual[i: i + j]
            val = list_compare_unordered(expected_item, actual_item)
            if val != PASS:
                if j == 1:
                    msg = "at index %d " % (i) + val
                else:
                    msg = "between indices %d and %d " % (i, i + j - 1) + val
                msg = msg + " (list may not be ordered as required)"
                break
            i += j

    return msg


def dict_compare(expected, actual, obj="dict"):
    msg = PASS
    if type(expected) != type(actual):
        msg = "expected to find type %s but found type %s" % (type(expected).__name__, type(actual).__name__)
        return msg
    try:
        expected_keys = sorted(list(expected.keys()))
        actual_keys = sorted(list(actual.keys()))
    except:
        msg = "unexpected datatype found in keys of dict; expect a dict with keys of type %s" % (
            type(expected_keys[0]).__name__)
        return msg
    val = list_compare_unordered(expected_keys, actual_keys, "dict")
    if val != PASS:
        msg = "bad keys in %s: " % (obj) + val
    if msg == PASS:
        for key in expected:
            if expected[key] == None or type(expected[key]) in [int, float, bool, str]:
                val = simple_compare(expected[key], actual[key])
            elif type(expected[key]) in [list]:
                val = list_compare_ordered(expected[key], actual[key], "value")
            elif type(expected[key]) in [dict]:
                val = dict_compare(expected[key], actual[key], "sub" + obj)
            if val != PASS:
                msg = "incorrect val for key %s in %s: " % (repr(key), obj) + val
    return msg


def check(qnum, actual):
    msg = check_cell_text(qnum, actual)
    if msg == PASS:
        return True
    print("<b style='color: red;'>ERROR:</b> " + msg)

def check_file_size(path):
    size = os.path.getsize(path)
    assert size < MAX_FILE_SIZE * 10**3, "Your file is too big to be processed by Gradescope; please delete unnecessary output cells so your file size is < %s KB" % MAX_FILE_SIZE