import os
import pathlib
import re
import pytest
from mobility_reports import ReportParser


class ReportParserSampleReportTests:
    expected_num_of_rows = None
    expected_overall = None
    expected_region = None
    expected_date = None
    expected_regions = None

    @pytest.fixture()
    def region(self):
        raise NotImplementedError("Must be overwritten in subclasses")

    def test_parse(self, report):
        if self.expected_num_of_rows is None:
            pytest.skip()

        parser = ReportParser()
        data = parser.parse(report)

        assert len(data) == self.expected_num_of_rows

    def test_parse_overall_mobility_changes(self, report):
        if self.expected_overall is None:
            pytest.skip()

        parser = ReportParser()
        data = parser.parse_overall_mobility_changes(report)
        assert data == self.expected_overall

    def test_parse_region(self, report):
        if self.expected_region is None:
            pytest.skip()

        parser = ReportParser()
        assert parser.parse_region(report) == self.expected_region

    def test_parse_date(self, report):
        if self.expected_date is None:
            pytest.skip()

        parser = ReportParser()
        assert parser.parse_date(report) == self.expected_date

    def test_parse_subregions(self, report):
        if self.expected_regions is None:
            pytest.skip()

        parser = ReportParser()
        regions = parser.parse_subregions(report)

        for expected_region in self.expected_regions:
            region = [
                row
                for row in regions
                if row["subregion"] == expected_region["subregion"]
            ]

            assert (
                len(region) == 1
            ), f"Region '{expected_region['region']}' was not found."
            assert region[0] == expected_region


class TestReportParserBRReport(ReportParserSampleReportTests):
    expected_region = "Brazil"
    expected_date = "2020-03-29"
    expected_num_of_rows = 28  # 27 states + countrywide
    expected_overall = {
        "retail_and_recreation": -0.71,
        "grocery_and_pharmacy": -0.35,
        "parks": -0.7,
        "transit_stations": -0.62,
        "workplaces": -0.34,
        "residential": 0.17,
    }
    expected_regions = [
        {
            "retail_and_recreation": -0.68,
            "grocery_and_pharmacy": -0.28,
            "parks": -0.63,
            "transit_stations": -0.56,
            "workplaces": -0.36,
            "residential": 0.2,
            "subregion": "Federal District",
        },
        {
            "retail_and_recreation": -0.68,
            "grocery_and_pharmacy": -0.2,
            "parks": -0.56,
            "transit_stations": -0.75,
            "workplaces": -0.22,
            "residential": 0.11,
            "subregion": "State of Acre",
        },
        {
            "retail_and_recreation": -0.77,
            "grocery_and_pharmacy": -0.43,
            "parks": -0.79,
            "transit_stations": -0.76,
            "workplaces": -0.35,
            "residential": 0.17,
            "subregion": "State of Alagoas",
        },
        {
            "retail_and_recreation": -0.71,
            "grocery_and_pharmacy": -0.27,
            "parks": -0.51,
            "transit_stations": -0.73,
            "workplaces": -0.28,
            "residential": 0.11,
            "subregion": "State of Amapá",
        },
        {
            "retail_and_recreation": -0.64,
            "grocery_and_pharmacy": -0.28,
            "parks": -0.62,
            "transit_stations": -0.46,
            "workplaces": -0.26,
            "residential": 0.13,
            "subregion": "State of Amazonas",
        },
        {
            "retail_and_recreation": -0.73,
            "grocery_and_pharmacy": -0.42,
            "parks": -0.71,
            "transit_stations": -0.73,
            "workplaces": -0.33,
            "residential": 0.17,
            "subregion": "State of Bahia",
        },
        {
            "retail_and_recreation": -0.76,
            "grocery_and_pharmacy": -0.34,
            "parks": -0.71,
            "transit_stations": -0.68,
            "workplaces": -0.33,
            "residential": 0.16,
            "subregion": "State of Ceará",
        },
        {
            "retail_and_recreation": -0.68,
            "grocery_and_pharmacy": -0.35,
            "parks": -0.69,
            "transit_stations": -0.69,
            "workplaces": -0.31,
            "residential": 0.16,
            "subregion": "State of Espírito Santo",
        },
        {
            "retail_and_recreation": -0.67,
            "grocery_and_pharmacy": -0.27,
            "parks": -0.44,
            "transit_stations": -0.5,
            "workplaces": -0.28,
            "residential": 0.15,
            "subregion": "State of Goiás",
        },
        {
            "retail_and_recreation": -0.63,
            "grocery_and_pharmacy": -0.27,
            "parks": -0.48,
            "transit_stations": -0.66,
            "workplaces": -0.2,
            "residential": 0.11,
            "subregion": "State of Maranhão",
        },
        {
            "retail_and_recreation": -0.63,
            "grocery_and_pharmacy": -0.3,
            "parks": -0.44,
            "transit_stations": -0.59,
            "workplaces": -0.22,
            "residential": 0.11,
            "subregion": "State of Mato Grosso",
        },
        {
            "retail_and_recreation": -0.68,
            "grocery_and_pharmacy": -0.33,
            "parks": -0.56,
            "transit_stations": -0.68,
            "workplaces": -0.26,
            "residential": 0.14,
            "subregion": "State of Mato Grosso do Sul",
        },
        {
            "retail_and_recreation": -0.66,
            "grocery_and_pharmacy": -0.29,
            "parks": -0.46,
            "transit_stations": -0.57,
            "workplaces": -0.3,
            "residential": 0.15,
            "subregion": "State of Minas Gerais",
        },
        {
            "retail_and_recreation": -0.75,
            "grocery_and_pharmacy": -0.42,
            "parks": -0.7,
            "transit_stations": -0.64,
            "workplaces": -0.34,
            "residential": 0.17,
            "subregion": "State of Paraná",
        },
        {
            "retail_and_recreation": -0.76,
            "grocery_and_pharmacy": -0.36,
            "parks": -0.73,
            "transit_stations": -0.64,
            "workplaces": -0.33,
            "residential": 0.17,
            "subregion": "State of Paraíba",
        },
        {
            "retail_and_recreation": -0.61,
            "grocery_and_pharmacy": -0.25,
            "parks": -0.53,
            "transit_stations": -0.64,
            "workplaces": -0.19,
            "residential": 0.12,
            "subregion": "State of Pará",
        },
        {
            "retail_and_recreation": -0.74,
            "grocery_and_pharmacy": -0.35,
            "parks": -0.72,
            "transit_stations": -0.59,
            "workplaces": -0.35,
            "residential": 0.17,
            "subregion": "State of Pernambuco",
        },
        {
            "retail_and_recreation": -0.71,
            "grocery_and_pharmacy": -0.39,
            "parks": -0.49,
            "transit_stations": -0.76,
            "workplaces": -0.27,
            "residential": 0.18,
            "subregion": "State of Piauí",
        },
        {
            "retail_and_recreation": -0.74,
            "grocery_and_pharmacy": -0.36,
            "parks": -0.74,
            "transit_stations": -0.66,
            "workplaces": -0.33,
            "residential": 0.19,
            "subregion": "State of Rio Grande do Norte",
        },
        {
            "retail_and_recreation": -0.75,
            "grocery_and_pharmacy": -0.39,
            "parks": -0.73,
            "transit_stations": -0.67,
            "workplaces": -0.36,
            "residential": 0.2,
            "subregion": "State of Rio Grande do Sul",
        },
        {
            "retail_and_recreation": -0.72,
            "grocery_and_pharmacy": -0.32,
            "parks": -0.74,
            "transit_stations": -0.61,
            "workplaces": -0.37,
            "residential": 0.17,
            "subregion": "State of Rio de Janeiro",
        },
        {
            "retail_and_recreation": -0.63,
            "grocery_and_pharmacy": -0.27,
            "parks": -0.42,
            "transit_stations": -0.71,
            "workplaces": -0.23,
            "residential": 0.12,
            "subregion": "State of Rondônia",
        },
        {
            "retail_and_recreation": -0.68,
            "grocery_and_pharmacy": -0.25,
            "parks": -0.51,
            "transit_stations": -0.72,
            "workplaces": -0.24,
            "residential": 0.12,
            "subregion": "State of Roraima",
        },
        {
            "retail_and_recreation": -0.8,
            "grocery_and_pharmacy": -0.49,
            "parks": -0.84,
            "transit_stations": -0.76,
            "workplaces": -0.4,
            "residential": 0.2,
            "subregion": "State of Santa Catarina",
        },
        {
            "retail_and_recreation": -0.78,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.77,
            "transit_stations": -0.83,
            "workplaces": -0.36,
            "residential": 0.18,
            "subregion": "State of Sergipe",
        },
        {
            "retail_and_recreation": -0.72,
            "grocery_and_pharmacy": -0.36,
            "parks": -0.71,
            "transit_stations": -0.62,
            "workplaces": -0.37,
            "residential": 0.17,
            "subregion": "State of São Paulo",
        },
        {
            "retail_and_recreation": -0.61,
            "grocery_and_pharmacy": -0.31,
            "parks": -0.35,
            "transit_stations": -0.71,
            "workplaces": -0.19,
            "residential": 0.11,
            "subregion": "State of Tocantins",
        },
    ]

    @pytest.fixture()
    def report(self, br_report):
        return br_report


class TestReportParserGBReport(ReportParserSampleReportTests):
    expected_region = "United Kingdom"
    expected_overall = {
        "retail_and_recreation": -0.85,
        "grocery_and_pharmacy": -0.46,
        "parks": -0.52,
        "transit_stations": -0.75,
        "workplaces": -0.55,
        "residential": 0.15,
    }

    expected_regions = [
        {
            "subregion": "Aberdeen City",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.41,
            "parks": -0.46,
            "transit_stations": -0.73,
            "workplaces": -0.58,
            "residential": 0.3,
        },
        {
            "subregion": "Aberdeenshire",
            "retail_and_recreation": -0.8,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.45,
            "transit_stations": -0.58,
            "workplaces": -0.52,
            "residential": 0.27,
        },
        {
            "subregion": "Angus council",
            "retail_and_recreation": -0.8,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.28,
            "transit_stations": -0.51,
            "workplaces": -0.48,
            "residential": 0.2,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Antrim And Newtownabbey",
            "retail_and_recreation": -0.81,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.61,
            "transit_stations": -0.89,
            "workplaces": -0.52,
            "residential": 0.29,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Ards And North Down",
            "retail_and_recreation": -0.78,
            "grocery_and_pharmacy": -0.39,
            "parks": -0.57,
            "transit_stations": -0.57,
            "workplaces": -0.56,
            "residential": 0.28,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Argyll and Bute Council",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.34,
            "transit_stations": -0.57,
            "workplaces": -0.52,
            "residential": 0.08,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Armagh City and Banbridge And Craigavon",
            "retail_and_recreation": -0.82,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.66,
            "transit_stations": -0.65,
            "workplaces": -0.47,
            "residential": 0.27,
        },
        {
            "subregion": "Bath and North East Somerset",
            "retail_and_recreation": -0.91,
            "grocery_and_pharmacy": -0.48,
            "parks": -0.54,
            "transit_stations": -0.75,
            "workplaces": -0.66,
            "residential": 0.3,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Bedford",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.51,
            "transit_stations": -0.72,
            "workplaces": -0.49,
            "residential": 0.28,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Belfast",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.42,
            "parks": -0.47,
            "transit_stations": -0.76,
            "workplaces": -0.59,
            "residential": 0.17,
        },
        {
            "subregion": "Blackburn with Darwen",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.42,
            "parks": None,
            "transit_stations": -0.71,
            "workplaces": -0.5,
            "residential": 0.25,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Blackpool",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.43,
            "parks": -0.64,
            "transit_stations": -0.65,
            "workplaces": -0.54,
            "residential": 0.22,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Blaenau Gwent",
            "retail_and_recreation": -0.75,
            "grocery_and_pharmacy": -0.46,
            "parks": None,
            "transit_stations": -0.57,
            "workplaces": -0.46,
            "residential": 0.12,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Borough of Halton",
            "retail_and_recreation": -0.78,
            "grocery_and_pharmacy": -0.43,
            "parks": -0.46,
            "transit_stations": -0.6,
            "workplaces": -0.48,
            "residential": 0.25,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Bracknell Forest",
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.41,
            "parks": -0.56,
            "transit_stations": -0.69,
            "workplaces": -0.58,
            "residential": 0.31,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Bridgend County Borough",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.43,
            "parks": -0.48,
            "transit_stations": -0.59,
            "workplaces": -0.5,
            "residential": 0.25,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Brighton and Hove",
            "retail_and_recreation": -0.89,
            "grocery_and_pharmacy": -0.48,
            "parks": -0.59,
            "transit_stations": -0.77,
            "workplaces": -0.64,
            "residential": 0.3,
        },
        {
            "subregion": "Buckinghamshire",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.43,
            "transit_stations": -0.74,
            "workplaces": -0.57,
            "residential": 0.16,
        },
        {
            "subregion": "Caerphilly County Borough",
            "retail_and_recreation": -0.78,
            "grocery_and_pharmacy": -0.41,
            "parks": -0.52,
            "transit_stations": -0.54,
            "workplaces": -0.47,
            "residential": 0.25,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Cambridgeshire",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.48,
            "parks": -0.51,
            "transit_stations": -0.79,
            "workplaces": -0.54,
            "residential": 0.16,
        },
        {
            "subregion": "Cardiff",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.48,
            "transit_stations": -0.79,
            "workplaces": -0.59,
            "residential": 0.17,
        },
        {
            "subregion": "Carmarthenshire",
            "retail_and_recreation": -0.81,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.57,
            "transit_stations": -0.6,
            "workplaces": -0.49,
            "residential": 0.24,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Causeway Coast and Glens",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.41,
            "parks": -0.66,
            "transit_stations": -0.64,
            "workplaces": -0.55,
            "residential": 0.26,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Central Bedfordshire",
            "retail_and_recreation": -0.82,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.41,
            "transit_stations": -0.74,
            "workplaces": -0.54,
            "residential": 0.2,
        },
        {
            "subregion": "Ceredigion",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.54,
            "parks": -0.6,
            "transit_stations": -0.69,
            "workplaces": -0.57,
            "residential": 0.06,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
        },
        {
            "subregion": "Cheshire East",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.63,
            "transit_stations": -0.75,
            "workplaces": -0.53,
            "residential": 0.15,
        },
        {
            "subregion": "Cheshire West and Chester",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.58,
            "transit_stations": -0.77,
            "workplaces": -0.55,
            "residential": 0.15,
        },
        {
            "subregion": "City of Bristol",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.25,
            "transit_stations": -0.81,
            "workplaces": -0.57,
            "residential": 0.18,
        },
        {
            "subregion": "Clackmannanshire",
            "retail_and_recreation": -0.89,
            "grocery_and_pharmacy": -0.39,
            "parks": None,
            "transit_stations": -0.53,
            "workplaces": -0.49,
            "residential": 0.06,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Conwy Principal Area",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.48,
            "parks": -0.7,
            "transit_stations": -0.63,
            "workplaces": -0.58,
            "residential": 0.22,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Cornwall",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.53,
            "parks": -0.54,
            "transit_stations": -0.66,
            "workplaces": -0.56,
            "residential": 0.14,
        },
        {
            "subregion": "County Durham",
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.42,
            "parks": -0.56,
            "transit_stations": -0.68,
            "workplaces": -0.55,
            "residential": 0.14,
        },
        {
            "subregion": "Cumbria",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.5,
            "parks": -0.54,
            "transit_stations": -0.73,
            "workplaces": -0.58,
            "residential": 0.15,
        },
        {
            "subregion": "Darlington",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.57,
            "transit_stations": -0.75,
            "workplaces": -0.51,
            "residential": 0.26,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Denbighshire",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.43,
            "parks": -0.59,
            "transit_stations": -0.7,
            "workplaces": -0.52,
            "residential": 0.14,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Derby",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.55,
            "transit_stations": -0.81,
            "workplaces": -0.55,
            "residential": 0.19,
        },
        {
            "subregion": "Derbyshire",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.43,
            "parks": -0.55,
            "transit_stations": -0.66,
            "workplaces": -0.55,
            "residential": 0.15,
        },
        {
            "subregion": "Derry And Strabane",
            "retail_and_recreation": -0.8,
            "grocery_and_pharmacy": -0.39,
            "parks": -0.63,
            "transit_stations": -0.6,
            "workplaces": -0.54,
            "residential": 0.25,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Devon",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.51,
            "parks": -0.54,
            "transit_stations": -0.73,
            "workplaces": -0.54,
            "residential": 0.15,
        },
        {
            "subregion": "Dorset",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.57,
            "transit_stations": -0.7,
            "workplaces": -0.57,
            "residential": 0.15,
        },
        {
            "subregion": "Dumfries and Galloway",
            "retail_and_recreation": -0.8,
            "grocery_and_pharmacy": -0.42,
            "parks": -0.48,
            "transit_stations": -0.75,
            "workplaces": -0.49,
            "residential": 0.22,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Dundee City Council",
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.52,
            "parks": -0.1,
            "transit_stations": -0.71,
            "workplaces": -0.56,
            "residential": 0.26,
        },
        {
            "subregion": "East Ayrshire Council",
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.39,
            "parks": None,
            "transit_stations": -0.55,
            "workplaces": -0.51,
            "residential": 0.26,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "East Dunbartonshire Council",
            "retail_and_recreation": -0.75,
            "grocery_and_pharmacy": -0.35,
            "parks": None,
            "transit_stations": -0.54,
            "workplaces": -0.56,
            "residential": 0.19,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "East Lothian Council",
            "retail_and_recreation": -0.81,
            "grocery_and_pharmacy": -0.37,
            "parks": -0.34,
            "transit_stations": -0.57,
            "workplaces": -0.56,
            "residential": 0.17,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "East Renfrewshire Council",
            "retail_and_recreation": -0.63,
            "grocery_and_pharmacy": -0.29,
            "parks": -0.54,
            "transit_stations": -0.51,
            "workplaces": -0.56,
            "residential": 0.19,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "East Riding of Yorkshire",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.61,
            "transit_stations": -0.51,
            "workplaces": -0.52,
            "residential": 0.14,
        },
        {
            "subregion": "East Sussex",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.6,
            "transit_stations": -0.68,
            "workplaces": -0.57,
            "residential": 0.14,
        },
        {
            "subregion": "Edinburgh",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.42,
            "transit_stations": -0.83,
            "workplaces": -0.67,
            "residential": 0.18,
        },
        {
            "subregion": "Essex",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.49,
            "parks": -0.58,
            "transit_stations": -0.85,
            "workplaces": -0.56,
            "residential": 0.16,
        },
        {
            "subregion": "Falkirk",
            "retail_and_recreation": -0.78,
            "grocery_and_pharmacy": -0.38,
            "parks": -0.26,
            "transit_stations": -0.56,
            "workplaces": -0.47,
            "residential": 0.27,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Fermanagh And Omagh",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.55,
            "transit_stations": -0.54,
            "workplaces": -0.52,
            "residential": 0.27,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Fife",
            "retail_and_recreation": -0.79,
            "grocery_and_pharmacy": -0.38,
            "parks": -0.32,
            "transit_stations": -0.56,
            "workplaces": -0.51,
            "residential": 0.14,
        },
        {
            "subregion": "Flintshire",
            "retail_and_recreation": -0.8,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.48,
            "transit_stations": -0.6,
            "workplaces": -0.54,
            "residential": 0.26,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Glasgow City",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.37,
            "transit_stations": -0.81,
            "workplaces": -0.6,
            "residential": 0.16,
        },
        {
            "subregion": "Gloucestershire",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.48,
            "parks": -0.49,
            "transit_stations": -0.73,
            "workplaces": -0.55,
            "residential": 0.15,
        },
        {
            "subregion": "Greater London",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.48,
            "parks": -0.59,
            "transit_stations": -0.8,
            "workplaces": -0.62,
            "residential": 0.19,
        },
        {
            "subregion": "Greater Manchester",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.44,
            "transit_stations": -0.8,
            "workplaces": -0.54,
            "residential": 0.16,
        },
        {
            "subregion": "Gwynedd",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.55,
            "parks": -0.62,
            "transit_stations": -0.65,
            "workplaces": -0.56,
            "residential": 0.18,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Hampshire",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.48,
            "transit_stations": -0.74,
            "workplaces": -0.54,
            "residential": 0.15,
        },
        {
            "subregion": "Hartlepool",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.64,
            "transit_stations": -0.7,
            "workplaces": -0.51,
            "residential": 0.19,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Herefordshire",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.5,
            "parks": -0.42,
            "transit_stations": -0.64,
            "workplaces": -0.46,
            "residential": 0.24,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Hertfordshire",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.46,
            "transit_stations": -0.73,
            "workplaces": -0.56,
            "residential": 0.16,
        },
        {
            "subregion": "Highland Council",
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.48,
            "transit_stations": -0.7,
            "workplaces": -0.53,
            "residential": 0.24,
        },
        {
            "subregion": "Inverclyde",
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.37,
            "parks": None,
            "transit_stations": -0.58,
            "workplaces": -0.52,
            "residential": 0.15,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Isle of Anglesey",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.48,
            "parks": -0.65,
            "transit_stations": -0.63,
            "workplaces": -0.46,
            "residential": 0.07,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Isle of Wight",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.57,
            "transit_stations": -0.76,
            "workplaces": -0.54,
            "residential": 0.22,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Kent",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.49,
            "parks": -0.62,
            "transit_stations": -0.68,
            "workplaces": -0.53,
            "residential": 0.15,
        },
        {
            "subregion": "Kingston upon Hull",
            "retail_and_recreation": -0.82,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.49,
            "transit_stations": -0.71,
            "workplaces": -0.51,
            "residential": 0.14,
        },
        {
            "subregion": "Lancashire",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.39,
            "transit_stations": -0.71,
            "workplaces": -0.52,
            "residential": 0.14,
        },
        {
            "subregion": "Leicester",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.45,
            "transit_stations": -0.8,
            "workplaces": -0.51,
            "residential": 0.15,
        },
        {
            "subregion": "Leicestershire",
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.54,
            "transit_stations": -0.72,
            "workplaces": -0.55,
            "residential": 0.15,
        },
        {
            "subregion": "Lincolnshire",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.63,
            "transit_stations": -0.67,
            "workplaces": -0.47,
            "residential": 0.13,
        },
        {
            "subregion": "Lisburn and Castlereagh",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.79,
            "transit_stations": -0.61,
            "workplaces": -0.56,
            "residential": 0.3,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Luton",
            "retail_and_recreation": -0.79,
            "grocery_and_pharmacy": -0.39,
            "parks": -0.41,
            "transit_stations": -0.9,
            "workplaces": -0.49,
            "residential": 0.19,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Medway",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.4,
            "parks": -0.67,
            "transit_stations": -0.71,
            "workplaces": -0.51,
            "residential": 0.15,
        },
        {
            "subregion": "Merseyside",
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.42,
            "parks": -0.53,
            "transit_stations": -0.74,
            "workplaces": -0.54,
            "residential": 0.15,
        },
        {
            "subregion": "Merthyr Tydfil County Borough",
            "retail_and_recreation": -0.89,
            "grocery_and_pharmacy": -0.5,
            "parks": None,
            "transit_stations": -0.54,
            "workplaces": -0.52,
            "residential": 0.08,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Mid And East Antrim",
            "retail_and_recreation": -0.81,
            "grocery_and_pharmacy": -0.37,
            "parks": -0.52,
            "transit_stations": -0.56,
            "workplaces": -0.56,
            "residential": 0.27,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Mid Ulster",
            "retail_and_recreation": -0.81,
            "grocery_and_pharmacy": -0.43,
            "parks": None,
            "transit_stations": -0.51,
            "workplaces": -0.42,
            "residential": 0.28,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Middlesbrough",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.43,
            "parks": -0.63,
            "transit_stations": -0.73,
            "workplaces": -0.51,
            "residential": 0.24,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Midlothian",
            "retail_and_recreation": -0.9,
            "grocery_and_pharmacy": -0.43,
            "parks": -0.2,
            "transit_stations": -0.5,
            "workplaces": -0.53,
            "residential": 0.25,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Milton Keynes",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.49,
            "parks": -0.53,
            "transit_stations": -0.79,
            "workplaces": -0.55,
            "residential": 0.19,
        },
        {
            "subregion": "Monmouthshire",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.56,
            "parks": -0.61,
            "transit_stations": -0.58,
            "workplaces": -0.47,
            "residential": 0.16,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Moray",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.42,
            "transit_stations": -0.63,
            "workplaces": -0.54,
            "residential": 0.12,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
        },
        {
            "subregion": "Na h-Eileanan an Iar",
            "retail_and_recreation": -0.77,
            "grocery_and_pharmacy": -0.31,
            "parks": None,
            "transit_stations": -0.54,
            "workplaces": -0.51,
            "residential": None,
            "retail_and_recreation_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "residential_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Neath Port Talbot Principle Area",
            "retail_and_recreation": -0.74,
            "grocery_and_pharmacy": -0.38,
            "parks": -0.46,
            "transit_stations": -0.6,
            "workplaces": -0.46,
            "residential": 0.23,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Newport",
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.49,
            "transit_stations": -0.66,
            "workplaces": -0.52,
            "residential": 0.26,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Newry and Mourne And Down",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.65,
            "transit_stations": -0.55,
            "workplaces": -0.52,
            "residential": 0.29,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Norfolk",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.52,
            "parks": -0.69,
            "transit_stations": -0.68,
            "workplaces": -0.53,
            "residential": 0.14,
        },
        {
            "subregion": "North Ayrshire Council",
            "retail_and_recreation": -0.79,
            "grocery_and_pharmacy": -0.37,
            "parks": -0.12,
            "transit_stations": -0.59,
            "workplaces": -0.51,
            "residential": 0.25,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "North East Lincolnshire",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.72,
            "transit_stations": -0.68,
            "workplaces": -0.46,
            "residential": 0.22,
        },
        {
            "subregion": "North Lanarkshire",
            "retail_and_recreation": -0.78,
            "grocery_and_pharmacy": -0.37,
            "parks": None,
            "transit_stations": -0.56,
            "workplaces": -0.5,
            "residential": 0.13,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "North Lincolnshire",
            "retail_and_recreation": -0.79,
            "grocery_and_pharmacy": -0.41,
            "parks": -0.56,
            "transit_stations": -0.58,
            "workplaces": -0.46,
            "residential": 0.23,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "North Somerset",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.5,
            "parks": -0.52,
            "transit_stations": -0.88,
            "workplaces": -0.54,
            "residential": 0.27,
        },
        {
            "subregion": "North Yorkshire",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.48,
            "parks": -0.65,
            "transit_stations": -0.74,
            "workplaces": -0.55,
            "residential": 0.15,
        },
        {
            "subregion": "Northamptonshire",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.42,
            "parks": -0.59,
            "transit_stations": -0.71,
            "workplaces": -0.47,
            "residential": 0.14,
        },
        {
            "subregion": "Northumberland",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.42,
            "parks": -0.66,
            "transit_stations": -0.61,
            "workplaces": -0.54,
            "residential": 0.14,
        },
        {
            "subregion": "Nottinghamshire",
            "retail_and_recreation": -0.9,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.58,
            "transit_stations": -0.8,
            "workplaces": -0.56,
            "residential": 0.15,
        },
        {
            "subregion": "Orkney",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.4,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.61,
            "residential": None,
            "retail_and_recreation_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "residential_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Oxfordshire",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.48,
            "transit_stations": -0.79,
            "workplaces": -0.58,
            "residential": 0.17,
        },
        {
            "subregion": "Pembrokeshire",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.49,
            "parks": -0.62,
            "transit_stations": -0.61,
            "workplaces": -0.47,
            "residential": 0.18,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Perth and Kinross",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.39,
            "transit_stations": -0.65,
            "workplaces": -0.54,
            "residential": 0.27,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Peterborough",
            "retail_and_recreation": -0.8,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.36,
            "transit_stations": -0.77,
            "workplaces": -0.43,
            "residential": 0.17,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Plymouth",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.5,
            "parks": -0.43,
            "transit_stations": -0.7,
            "workplaces": -0.54,
            "residential": 0.18,
        },
        {
            "subregion": "Portsmouth",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.43,
            "parks": -0.46,
            "transit_stations": -0.71,
            "workplaces": -0.54,
            "residential": 0.19,
        },
        {
            "subregion": "Powys",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.5,
            "parks": -0.56,
            "transit_stations": -0.63,
            "workplaces": -0.51,
            "residential": 0.23,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Reading",
            "retail_and_recreation": -0.89,
            "grocery_and_pharmacy": -0.5,
            "parks": -0.41,
            "transit_stations": -0.84,
            "workplaces": -0.55,
            "residential": 0.32,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Redcar and Cleveland",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.63,
            "transit_stations": -0.62,
            "workplaces": -0.5,
            "residential": 0.23,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Renfrewshire",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.39,
            "parks": 0.14,
            "transit_stations": -0.84,
            "workplaces": -0.58,
            "residential": 0.29,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Rhondda Cynon Taff",
            "retail_and_recreation": -0.8,
            "grocery_and_pharmacy": -0.41,
            "parks": -0.47,
            "transit_stations": -0.52,
            "workplaces": -0.5,
            "residential": 0.19,
        },
        {
            "subregion": "Rutland",
            "retail_and_recreation": -1.0,
            "grocery_and_pharmacy": -0.37,
            "parks": -0.7,
            "transit_stations": None,
            "workplaces": -0.57,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
            "workplaces_not_enough_data": True,
        },
        {
            "subregion": "Scottish Borders",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.39,
            "transit_stations": -0.44,
            "workplaces": -0.51,
            "residential": 0.2,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Shetland Islands",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.49,
            "parks": None,
            "transit_stations": -0.54,
            "workplaces": -0.6,
            "residential": None,
            "retail_and_recreation_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "residential_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Shropshire",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.49,
            "parks": -0.56,
            "transit_stations": -0.7,
            "workplaces": -0.5,
            "residential": 0.14,
        },
        {
            "subregion": "Slough",
            "retail_and_recreation": -0.8,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.45,
            "transit_stations": -0.78,
            "workplaces": -0.54,
            "residential": 0.29,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Somerset",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.48,
            "parks": -0.56,
            "transit_stations": -0.73,
            "workplaces": -0.49,
            "residential": 0.14,
        },
        {
            "subregion": "South Ayrshire Council",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.42,
            "parks": -0.35,
            "transit_stations": -0.62,
            "workplaces": -0.56,
            "residential": 0.2,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "South Gloucestershire",
            "retail_and_recreation": -0.81,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.3,
            "transit_stations": -0.64,
            "workplaces": -0.52,
            "residential": 0.2,
        },
        {
            "subregion": "South Lanarkshire",
            "retail_and_recreation": -0.78,
            "grocery_and_pharmacy": -0.38,
            "parks": -0.06,
            "transit_stations": -0.57,
            "workplaces": -0.54,
            "residential": 0.14,
        },
        {
            "subregion": "South Yorkshire",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.43,
            "parks": -0.47,
            "transit_stations": -0.71,
            "workplaces": -0.53,
            "residential": 0.15,
        },
        {
            "subregion": "Southampton",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.41,
            "parks": -0.57,
            "transit_stations": -0.71,
            "workplaces": -0.54,
            "residential": 0.19,
        },
        {
            "subregion": "Southend-on-Sea",
            "retail_and_recreation": -0.89,
            "grocery_and_pharmacy": -0.39,
            "parks": -0.63,
            "transit_stations": -0.79,
            "workplaces": -0.57,
            "residential": 0.28,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Staffordshire",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.54,
            "transit_stations": -0.73,
            "workplaces": -0.54,
            "residential": 0.14,
        },
        {
            "subregion": "Stirling",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.49,
            "parks": -0.49,
            "transit_stations": -0.76,
            "workplaces": -0.62,
            "residential": 0.11,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Stockton-on-Tees",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.6,
            "transit_stations": -0.69,
            "workplaces": -0.52,
            "residential": 0.25,
        },
        {
            "subregion": "Stoke-on-Trent",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.41,
            "transit_stations": -0.7,
            "workplaces": -0.49,
            "residential": 0.14,
        },
        {
            "subregion": "Suffolk",
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.51,
            "parks": -0.67,
            "transit_stations": -0.69,
            "workplaces": -0.54,
            "residential": 0.15,
        },
        {
            "subregion": "Surrey",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.57,
            "transit_stations": -0.74,
            "workplaces": -0.59,
            "residential": 0.17,
        },
        {
            "subregion": "Swansea",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.5,
            "parks": -0.51,
            "transit_stations": -0.67,
            "workplaces": -0.54,
            "residential": 0.19,
        },
        {
            "subregion": "Swindon",
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.3,
            "transit_stations": -0.69,
            "workplaces": -0.52,
            "residential": 0.28,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Thurrock",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.53,
            "parks": -0.51,
            "transit_stations": -0.59,
            "workplaces": -0.5,
            "residential": 0.29,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Torbay",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.58,
            "transit_stations": -0.68,
            "workplaces": -0.55,
            "residential": 0.24,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Torfaen Principal Area",
            "retail_and_recreation": -0.82,
            "grocery_and_pharmacy": -0.37,
            "parks": None,
            "transit_stations": -0.54,
            "workplaces": -0.53,
            "residential": 0.24,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Tyne and Wear",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.58,
            "transit_stations": -0.74,
            "workplaces": -0.57,
            "residential": 0.15,
        },
        {
            "subregion": "Vale of Glamorgan",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.49,
            "parks": -0.59,
            "transit_stations": -0.7,
            "workplaces": -0.54,
            "residential": 0.27,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Warrington",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.42,
            "parks": -0.29,
            "transit_stations": -0.68,
            "workplaces": -0.52,
            "residential": 0.27,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Warwickshire",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.56,
            "transit_stations": -0.72,
            "workplaces": -0.54,
            "residential": 0.15,
        },
        {
            "subregion": "West Berkshire",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.49,
            "parks": -0.41,
            "transit_stations": -0.82,
            "workplaces": -0.58,
            "residential": 0.29,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "West Dunbartonshire Council",
            "retail_and_recreation": -0.75,
            "grocery_and_pharmacy": -0.43,
            "parks": None,
            "transit_stations": -0.54,
            "workplaces": -0.51,
            "residential": 0.23,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "West Lothian",
            "retail_and_recreation": -0.74,
            "grocery_and_pharmacy": -0.29,
            "parks": -0.29,
            "transit_stations": -0.52,
            "workplaces": -0.5,
            "residential": 0.27,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "West Midlands",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.45,
            "transit_stations": -0.78,
            "workplaces": -0.57,
            "residential": 0.15,
        },
        {
            "subregion": "West Sussex",
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.53,
            "transit_stations": -0.85,
            "workplaces": -0.56,
            "residential": 0.15,
        },
        {
            "subregion": "West Yorkshire",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.44,
            "parks": -0.49,
            "transit_stations": -0.74,
            "workplaces": -0.55,
            "residential": 0.15,
        },
        {
            "subregion": "Wiltshire",
            "retail_and_recreation": -0.84,
            "grocery_and_pharmacy": -0.45,
            "parks": -0.56,
            "transit_stations": -0.7,
            "workplaces": -0.54,
            "residential": 0.15,
        },
        {
            "subregion": "Windsor and Maidenhead",
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.42,
            "parks": -0.74,
            "transit_stations": -0.79,
            "workplaces": -0.63,
            "residential": 0.31,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Wokingham",
            "retail_and_recreation": -0.81,
            "grocery_and_pharmacy": -0.52,
            "parks": -0.26,
            "transit_stations": -0.66,
            "workplaces": -0.61,
            "residential": 0.32,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Worcestershire",
            "retail_and_recreation": -0.86,
            "grocery_and_pharmacy": -0.47,
            "parks": -0.44,
            "transit_stations": -0.71,
            "workplaces": -0.55,
            "residential": 0.14,
        },
        {
            "subregion": "Wrexham Principal Area",
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.43,
            "parks": -0.45,
            "transit_stations": -0.64,
            "workplaces": -0.48,
            "residential": 0.24,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "York",
            "retail_and_recreation": -0.9,
            "grocery_and_pharmacy": -0.5,
            "parks": -0.64,
            "transit_stations": -0.84,
            "workplaces": -0.65,
            "residential": 0.29,
        },
    ]

    @pytest.fixture()
    def report(self, gb_report):
        return gb_report


class TestReportParserCZReport(ReportParserSampleReportTests):
    expected_overall = {
        "retail_and_recreation": -0.73,
        "grocery_and_pharmacy": -0.26,
        "parks": -0.24,
        "transit_stations": -0.61,
        "workplaces": -0.31,
        "residential": 0.11,
    }

    @pytest.fixture
    def report(self, cz_report):
        return cz_report


class TestReportParserKRReport(ReportParserSampleReportTests):
    expected_overall = {
        "retail_and_recreation": -0.19,
        "grocery_and_pharmacy": 0.11,
        "parks": 0.51,
        "transit_stations": -0.17,
        "workplaces": -0.12,
        "residential": 0.06,
    }

    @pytest.fixture
    def report(self, kr_report):
        return kr_report


class TestReportParserARReport(ReportParserSampleReportTests):
    expected_num_of_rows = 25
    expected_overall = {
        "retail_and_recreation": -0.86,
        "grocery_and_pharmacy": -0.61,
        "parks": -0.89,
        "transit_stations": -0.80,
        "workplaces": -0.57,
        "residential": 0.27,
    }
    expected_regions = [
        {
            "retail_and_recreation": -0.9,
            "grocery_and_pharmacy": -0.48,
            "parks": -0.91,
            "transit_stations": -0.82,
            "workplaces": -0.69,
            "residential": 0.31,
            "subregion": "Buenos Aires",
        },
        {
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.6,
            "parks": -0.91,
            "transit_stations": -0.79,
            "workplaces": -0.6,
            "residential": 0.26,
            "subregion": "Buenos Aires Province",
        },
        {
            "retail_and_recreation": -0.71,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.78,
            "transit_stations": -0.81,
            "workplaces": -0.35,
            "residential": 0.29,
            "subregion": "Catamarca Province",
        },
        {
            "retail_and_recreation": -0.79,
            "grocery_and_pharmacy": -0.63,
            "parks": -0.83,
            "transit_stations": -0.92,
            "workplaces": -0.48,
            "residential": 0.24,
            "subregion": "Chaco Province",
        },
        {
            "retail_and_recreation": -0.92,
            "grocery_and_pharmacy": -0.91,
            "parks": -0.94,
            "transit_stations": -0.93,
            "workplaces": -0.62,
            "residential": 0.28,
            "subregion": "Chubut Province",
        },
        {
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.66,
            "parks": -0.9,
            "transit_stations": -0.91,
            "workplaces": -0.57,
            "residential": 0.3,
            "subregion": "Cordoba",
        },
        {
            "retail_and_recreation": -0.8,
            "grocery_and_pharmacy": -0.63,
            "parks": -0.88,
            "transit_stations": -0.89,
            "workplaces": -0.47,
            "residential": 0.25,
            "subregion": "Corrientes",
        },
        {
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.65,
            "parks": -0.93,
            "transit_stations": -0.9,
            "workplaces": -0.54,
            "residential": 0.29,
            "subregion": "Entre Rios",
        },
        {
            "retail_and_recreation": -0.76,
            "grocery_and_pharmacy": -0.53,
            "parks": -0.82,
            "transit_stations": -0.71,
            "workplaces": -0.37,
            "residential": 0.21,
            "subregion": "Formosa Province",
            "transit_stations_not_enough_data": True,
        },
        {
            "retail_and_recreation": -0.8,
            "grocery_and_pharmacy": -0.55,
            "parks": -0.83,
            "transit_stations": -0.92,
            "workplaces": -0.44,
            "residential": 0.27,
            "subregion": "Jujuy",
        },
        {
            "retail_and_recreation": -0.88,
            "grocery_and_pharmacy": -0.72,
            "parks": -0.88,
            "transit_stations": -0.87,
            "workplaces": -0.56,
            "residential": 0.28,
            "subregion": "La Pampa",
        },
        {
            "retail_and_recreation": -0.7,
            "grocery_and_pharmacy": -0.46,
            "parks": -0.84,
            "transit_stations": -0.86,
            "workplaces": -0.4,
            "residential": 0.26,
            "subregion": "La Rioja Province",
        },
        {
            "retail_and_recreation": -0.81,
            "grocery_and_pharmacy": -0.56,
            "parks": -0.84,
            "transit_stations": -0.72,
            "workplaces": -0.49,
            "residential": 0.29,
            "subregion": "Mendoza Province",
        },
        {
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.66,
            "parks": -0.85,
            "transit_stations": -0.92,
            "workplaces": -0.51,
            "residential": 0.27,
            "subregion": "Misiones Province",
        },
        {
            "retail_and_recreation": -0.96,
            "grocery_and_pharmacy": -0.95,
            "parks": -0.95,
            "transit_stations": -0.92,
            "workplaces": -0.72,
            "residential": 0.33,
            "subregion": "Neuquen",
        },
        {
            "retail_and_recreation": -0.9,
            "grocery_and_pharmacy": -0.72,
            "parks": -0.92,
            "transit_stations": -0.96,
            "workplaces": -0.55,
            "residential": 0.29,
            "subregion": "Río Negro",
        },
        {
            "retail_and_recreation": -0.82,
            "grocery_and_pharmacy": -0.55,
            "parks": -0.84,
            "transit_stations": -0.76,
            "workplaces": -0.47,
            "residential": 0.26,
            "subregion": "Salta Province",
        },
        {
            "retail_and_recreation": -0.76,
            "grocery_and_pharmacy": -0.5,
            "parks": -0.8,
            "transit_stations": -0.87,
            "workplaces": -0.46,
            "residential": 0.28,
            "subregion": "San Juan Province",
        },
        {
            "retail_and_recreation": -0.85,
            "grocery_and_pharmacy": -0.6,
            "parks": -0.89,
            "transit_stations": -0.91,
            "workplaces": -0.56,
            "residential": 0.29,
            "subregion": "San Luis Province",
        },
        {
            "retail_and_recreation": -0.83,
            "grocery_and_pharmacy": -0.62,
            "parks": -0.88,
            "transit_stations": -0.91,
            "workplaces": -0.56,
            "residential": 0.24,
            "subregion": "Santa Cruz Province",
        },
        {
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.63,
            "parks": -0.89,
            "transit_stations": -0.77,
            "workplaces": -0.57,
            "residential": 0.29,
            "subregion": "Santa Fe Province",
        },
        {
            "retail_and_recreation": -0.75,
            "grocery_and_pharmacy": -0.49,
            "parks": -0.75,
            "transit_stations": -0.9,
            "workplaces": -0.46,
            "residential": 0.25,
            "subregion": "Santiago del Estero Province",
        },
        {
            "retail_and_recreation": -0.87,
            "grocery_and_pharmacy": -0.63,
            "parks": -0.89,
            "transit_stations": -0.92,
            "workplaces": -0.59,
            "residential": 0.24,
            "subregion": "Tierra del Fuego Province",
        },
        {
            "retail_and_recreation": -0.81,
            "grocery_and_pharmacy": -0.53,
            "parks": -0.78,
            "transit_stations": -0.9,
            "workplaces": -0.51,
            "residential": 0.28,
            "subregion": "Tucumán",
        },
    ]

    @pytest.fixture
    def report(self, ar_report):
        return ar_report


class TestReportParserUSGeorgiaReport(ReportParserSampleReportTests):
    expected_overall = {
        "retail_and_recreation": -0.42,
        "grocery_and_pharmacy": -0.17,
        "parks": -0.02,
        "transit_stations": -0.52,
        "workplaces": -0.37,
        "residential": 0.11,
    }

    expected_regions = [
        {
            "subregion": "Appling County",
            "retail_and_recreation": -0.28,
            "grocery_and_pharmacy": -0.16,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.19,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Atkinson County",
            "retail_and_recreation": -0.29,
            "grocery_and_pharmacy": 0.12,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.26,
            "residential": None,
            "residential_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Bacon County",
            "retail_and_recreation": -0.26,
            "grocery_and_pharmacy": -0.15,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.2,
            "residential": None,
            "residential_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Baldwin County",
            "retail_and_recreation": -0.34,
            "grocery_and_pharmacy": -0.2,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.31,
            "residential": 0.13,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Banks County",
            "retail_and_recreation": -0.35,
            "grocery_and_pharmacy": None,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.19,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Barrow County",
            "retail_and_recreation": -0.35,
            "grocery_and_pharmacy": -0.12,
            "parks": -0.37,
            "transit_stations": None,
            "workplaces": -0.34,
            "residential": 0.11,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Bartow County",
            "retail_and_recreation": -0.42,
            "grocery_and_pharmacy": -0.05,
            "parks": 0.4,
            "transit_stations": -0.25,
            "workplaces": -0.33,
            "residential": 0.09,
        },
        {
            "subregion": "Ben Hill County",
            "retail_and_recreation": -0.28,
            "grocery_and_pharmacy": 0.09,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.3,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Berrien County",
            "retail_and_recreation": -0.28,
            "grocery_and_pharmacy": 0.05,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.2,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Bibb County",
            "retail_and_recreation": -0.43,
            "grocery_and_pharmacy": -0.16,
            "parks": 0.36,
            "transit_stations": -0.27,
            "workplaces": -0.32,
            "residential": 0.1,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Bleckley County",
            "retail_and_recreation": -0.31,
            "grocery_and_pharmacy": -0.08,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.37,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Brantley County",
            "retail_and_recreation": -0.27,
            "grocery_and_pharmacy": -0.04,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.28,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Brooks County",
            "retail_and_recreation": -0.38,
            "grocery_and_pharmacy": -0.05,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.23,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Bryan County",
            "retail_and_recreation": -0.45,
            "grocery_and_pharmacy": -0.19,
            "parks": -0.09,
            "transit_stations": -0.29,
            "workplaces": -0.36,
            "residential": 0.18,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Bulloch County",
            "retail_and_recreation": -0.41,
            "grocery_and_pharmacy": -0.12,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.35,
            "residential": 0.09,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Burke County",
            "retail_and_recreation": -0.24,
            "grocery_and_pharmacy": -0.07,
            "parks": -0.23,
            "transit_stations": None,
            "workplaces": -0.14,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Butts County",
            "retail_and_recreation": -0.3,
            "grocery_and_pharmacy": -0.06,
            "parks": None,
            "transit_stations": -0.13,
            "workplaces": -0.31,
            "residential": -0.01,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Camden County",
            "retail_and_recreation": -0.35,
            "grocery_and_pharmacy": 0.03,
            "parks": 0.07,
            "transit_stations": -0.29,
            "workplaces": -0.3,
            "residential": 0.16,
            "residential_not_enough_data": True,
        },
        {
            "subregion": "Candler County",
            "retail_and_recreation": -0.57,
            "grocery_and_pharmacy": -0.2,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.24,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Carroll County",
            "retail_and_recreation": -0.38,
            "grocery_and_pharmacy": -0.18,
            "parks": 0.12,
            "transit_stations": -0.25,
            "workplaces": -0.36,
            "residential": 0.1,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Catoosa County",
            "retail_and_recreation": -0.38,
            "grocery_and_pharmacy": -0.08,
            "parks": 0.14,
            "transit_stations": None,
            "workplaces": -0.33,
            "residential": 0.16,
            "transit_stations_not_enough_data": True,
        },
        {
            "subregion": "Charlton County",
            "retail_and_recreation": -0.31,
            "grocery_and_pharmacy": 0.07,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.25,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Chatham County",
            "retail_and_recreation": -0.5,
            "grocery_and_pharmacy": -0.24,
            "parks": -0.32,
            "transit_stations": -0.48,
            "workplaces": -0.41,
            "residential": 0.11,
        },
        {
            "subregion": "Chattahoochee County",
            "retail_and_recreation": -0.53,
            "grocery_and_pharmacy": -0.39,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.36,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Chattooga County",
            "retail_and_recreation": -0.15,
            "grocery_and_pharmacy": -0.02,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.42,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Cherokee County",
            "retail_and_recreation": -0.39,
            "grocery_and_pharmacy": -0.2,
            "parks": 0.59,
            "transit_stations": None,
            "workplaces": -0.4,
            "residential": 0.12,
            "transit_stations_not_enough_data": True,
        },
        {
            "subregion": "Clarke County",
            "retail_and_recreation": -0.51,
            "grocery_and_pharmacy": -0.24,
            "parks": -0.21,
            "transit_stations": -0.3,
            "workplaces": -0.41,
            "residential": 0.12,
        },
        {
            "subregion": "Clayton County",
            "retail_and_recreation": -0.3,
            "grocery_and_pharmacy": -0.18,
            "parks": 0.15,
            "transit_stations": -0.8,
            "workplaces": -0.33,
            "residential": 0.11,
        },
        {
            "subregion": "Clinch County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": -0.02,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.25,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Cobb County",
            "retail_and_recreation": -0.49,
            "grocery_and_pharmacy": -0.22,
            "parks": -0.47,
            "transit_stations": -0.38,
            "workplaces": -0.41,
            "residential": 0.13,
        },
        {
            "subregion": "Coffee County",
            "retail_and_recreation": -0.41,
            "grocery_and_pharmacy": -0.08,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.23,
            "residential": 0.11,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Colquitt County",
            "retail_and_recreation": -0.31,
            "grocery_and_pharmacy": -0.06,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.25,
            "residential": 0.13,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Columbia County",
            "retail_and_recreation": -0.35,
            "grocery_and_pharmacy": -0.07,
            "parks": -0.2,
            "transit_stations": -0.44,
            "workplaces": -0.37,
            "residential": 0.11,
        },
        {
            "subregion": "Cook County",
            "retail_and_recreation": -0.17,
            "grocery_and_pharmacy": 0.02,
            "parks": None,
            "transit_stations": -0.21,
            "workplaces": -0.21,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Coweta County",
            "retail_and_recreation": -0.46,
            "grocery_and_pharmacy": -0.16,
            "parks": -0.56,
            "transit_stations": -0.15,
            "workplaces": -0.35,
            "residential": 0.11,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Crawford County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": None,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.2,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Crisp County",
            "retail_and_recreation": -0.28,
            "grocery_and_pharmacy": -0.22,
            "parks": None,
            "transit_stations": -0.1,
            "workplaces": -0.35,
            "residential": None,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Dade County",
            "retail_and_recreation": -0.49,
            "grocery_and_pharmacy": -0.09,
            "parks": None,
            "transit_stations": -0.16,
            "workplaces": -0.23,
            "residential": None,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Dawson County",
            "retail_and_recreation": -0.49,
            "grocery_and_pharmacy": -0.25,
            "parks": 0.17,
            "transit_stations": None,
            "workplaces": -0.37,
            "residential": 0.0,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "DeKalb County",
            "retail_and_recreation": -0.47,
            "grocery_and_pharmacy": -0.26,
            "parks": -0.15,
            "transit_stations": -0.27,
            "workplaces": -0.42,
            "residential": 0.13,
        },
        {
            "subregion": "Decatur County",
            "retail_and_recreation": -0.24,
            "grocery_and_pharmacy": -0.1,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.19,
            "residential": -0.03,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Dodge County",
            "retail_and_recreation": -0.26,
            "grocery_and_pharmacy": -0.05,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.26,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Dooly County",
            "retail_and_recreation": -0.59,
            "grocery_and_pharmacy": -0.25,
            "parks": None,
            "transit_stations": -0.28,
            "workplaces": -0.21,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Dougherty County",
            "retail_and_recreation": -0.51,
            "grocery_and_pharmacy": -0.24,
            "parks": -0.37,
            "transit_stations": -0.3,
            "workplaces": -0.34,
            "residential": 0.11,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Douglas County",
            "retail_and_recreation": -0.4,
            "grocery_and_pharmacy": -0.26,
            "parks": -0.02,
            "transit_stations": -0.28,
            "workplaces": -0.37,
            "residential": 0.11,
        },
        {
            "subregion": "Early County",
            "retail_and_recreation": -0.73,
            "grocery_and_pharmacy": -0.23,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.27,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Effingham County",
            "retail_and_recreation": -0.28,
            "grocery_and_pharmacy": -0.07,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.33,
            "residential": 0.16,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Elbert County",
            "retail_and_recreation": -0.13,
            "grocery_and_pharmacy": 0.03,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.25,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Emanuel County",
            "retail_and_recreation": -0.21,
            "grocery_and_pharmacy": 0.17,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.09,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Evans County",
            "retail_and_recreation": -0.22,
            "grocery_and_pharmacy": 0.04,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.23,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Fannin County",
            "retail_and_recreation": -0.45,
            "grocery_and_pharmacy": -0.21,
            "parks": 0.38,
            "transit_stations": None,
            "workplaces": -0.38,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Fayette County",
            "retail_and_recreation": -0.4,
            "grocery_and_pharmacy": -0.29,
            "parks": 0.25,
            "transit_stations": None,
            "workplaces": -0.43,
            "residential": 0.13,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Floyd County",
            "retail_and_recreation": -0.36,
            "grocery_and_pharmacy": -0.08,
            "parks": 0.28,
            "transit_stations": None,
            "workplaces": -0.28,
            "residential": 0.09,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Forsyth County",
            "retail_and_recreation": -0.45,
            "grocery_and_pharmacy": -0.32,
            "parks": 0.03,
            "transit_stations": None,
            "workplaces": -0.42,
            "residential": 0.13,
            "transit_stations_not_enough_data": True,
        },
        {
            "subregion": "Franklin County",
            "retail_and_recreation": -0.42,
            "grocery_and_pharmacy": -0.15,
            "parks": -0.22,
            "transit_stations": -0.22,
            "workplaces": -0.28,
            "residential": None,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Fulton County",
            "retail_and_recreation": -0.54,
            "grocery_and_pharmacy": -0.26,
            "parks": -0.44,
            "transit_stations": -0.47,
            "workplaces": -0.43,
            "residential": 0.13,
        },
        {
            "subregion": "Gilmer County",
            "retail_and_recreation": -0.45,
            "grocery_and_pharmacy": -0.31,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.33,
            "residential": 0.02,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Glynn County",
            "retail_and_recreation": -0.45,
            "grocery_and_pharmacy": -0.22,
            "parks": -0.32,
            "transit_stations": -0.39,
            "workplaces": -0.4,
            "residential": 0.1,
        },
        {
            "subregion": "Gordon County",
            "retail_and_recreation": -0.3,
            "grocery_and_pharmacy": -0.08,
            "parks": None,
            "transit_stations": -0.2,
            "workplaces": -0.33,
            "residential": 0.15,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Grady County",
            "retail_and_recreation": -0.35,
            "grocery_and_pharmacy": -0.06,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.35,
            "residential": -0.01,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Greene County",
            "retail_and_recreation": -0.17,
            "grocery_and_pharmacy": -0.13,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.36,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Gwinnett County",
            "retail_and_recreation": -0.5,
            "grocery_and_pharmacy": -0.24,
            "parks": -0.09,
            "transit_stations": -0.42,
            "workplaces": -0.46,
            "residential": 0.15,
        },
        {
            "subregion": "Habersham County",
            "retail_and_recreation": -0.35,
            "grocery_and_pharmacy": -0.1,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.27,
            "residential": 0.13,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Hall County",
            "retail_and_recreation": -0.39,
            "grocery_and_pharmacy": -0.19,
            "parks": 0.51,
            "transit_stations": -0.2,
            "workplaces": -0.34,
            "residential": 0.1,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Hancock County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": 0.06,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.24,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Haralson County",
            "retail_and_recreation": -0.27,
            "grocery_and_pharmacy": -0.06,
            "parks": -0.29,
            "transit_stations": -0.22,
            "workplaces": -0.33,
            "residential": 0.08,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Harris County",
            "retail_and_recreation": -0.04,
            "grocery_and_pharmacy": 0.09,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.41,
            "residential": 0.13,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Hart County",
            "retail_and_recreation": -0.18,
            "grocery_and_pharmacy": -0.06,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.17,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Heard County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": 0.02,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.31,
            "residential": None,
            "residential_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Henry County",
            "retail_and_recreation": -0.42,
            "grocery_and_pharmacy": -0.13,
            "parks": 0.22,
            "transit_stations": None,
            "workplaces": -0.41,
            "residential": 0.12,
            "transit_stations_not_enough_data": True,
        },
        {
            "subregion": "Houston County",
            "retail_and_recreation": -0.39,
            "grocery_and_pharmacy": -0.15,
            "parks": -0.06,
            "transit_stations": None,
            "workplaces": -0.36,
            "residential": 0.1,
            "transit_stations_not_enough_data": True,
        },
        {
            "subregion": "Irwin County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": -0.02,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.26,
            "residential": None,
            "residential_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Jackson County",
            "retail_and_recreation": -0.61,
            "grocery_and_pharmacy": -0.38,
            "parks": None,
            "transit_stations": -0.22,
            "workplaces": -0.3,
            "residential": 0.16,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Jasper County",
            "retail_and_recreation": -0.39,
            "grocery_and_pharmacy": -0.02,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.09,
            "residential": None,
            "residential_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Jeff Davis County",
            "retail_and_recreation": -0.27,
            "grocery_and_pharmacy": -0.12,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.21,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Jefferson County",
            "retail_and_recreation": -0.28,
            "grocery_and_pharmacy": -0.03,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.13,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Jenkins County",
            "retail_and_recreation": -0.33,
            "grocery_and_pharmacy": 0.02,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.25,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Johnson County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": -0.09,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.26,
            "residential": None,
            "residential_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Jones County",
            "retail_and_recreation": -0.25,
            "grocery_and_pharmacy": 0.04,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.38,
            "residential": 0.08,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Lamar County",
            "retail_and_recreation": -0.34,
            "grocery_and_pharmacy": -0.06,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.36,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Lanier County",
            "retail_and_recreation": -0.43,
            "grocery_and_pharmacy": -0.06,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.35,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Laurens County",
            "retail_and_recreation": -0.42,
            "grocery_and_pharmacy": -0.15,
            "parks": None,
            "transit_stations": -0.27,
            "workplaces": -0.31,
            "residential": 0.14,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Lee County",
            "retail_and_recreation": -0.45,
            "grocery_and_pharmacy": -0.21,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.28,
            "residential": 0.11,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Liberty County",
            "retail_and_recreation": -0.32,
            "grocery_and_pharmacy": -0.17,
            "parks": -0.17,
            "transit_stations": -0.22,
            "workplaces": -0.27,
            "residential": 0.1,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Lincoln County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": None,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.27,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Long County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": None,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.3,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Lowndes County",
            "retail_and_recreation": -0.45,
            "grocery_and_pharmacy": -0.17,
            "parks": -0.13,
            "transit_stations": -0.21,
            "workplaces": -0.29,
            "residential": 0.08,
        },
        {
            "subregion": "Lumpkin County",
            "retail_and_recreation": -0.35,
            "grocery_and_pharmacy": 0.19,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.37,
            "residential": 0.06,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Macon County",
            "retail_and_recreation": -0.35,
            "grocery_and_pharmacy": -0.04,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.22,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Madison County",
            "retail_and_recreation": -0.51,
            "grocery_and_pharmacy": -0.17,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.24,
            "residential": 0.08,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Marion County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": 0.12,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.27,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "McDuffie County",
            "retail_and_recreation": -0.14,
            "grocery_and_pharmacy": 0.04,
            "parks": None,
            "transit_stations": -0.21,
            "workplaces": -0.18,
            "residential": None,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "McIntosh County",
            "retail_and_recreation": -0.49,
            "grocery_and_pharmacy": 0.0,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.39,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Meriwether County",
            "retail_and_recreation": -0.21,
            "grocery_and_pharmacy": -0.04,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.26,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Miller County",
            "retail_and_recreation": -0.58,
            "grocery_and_pharmacy": None,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.3,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Mitchell County",
            "retail_and_recreation": -0.21,
            "grocery_and_pharmacy": -0.25,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.13,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Monroe County",
            "retail_and_recreation": -0.39,
            "grocery_and_pharmacy": 0.03,
            "parks": 0.11,
            "transit_stations": -0.35,
            "workplaces": -0.32,
            "residential": -0.02,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Montgomery County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": -0.07,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.26,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Morgan County",
            "retail_and_recreation": -0.33,
            "grocery_and_pharmacy": -0.14,
            "parks": None,
            "transit_stations": -0.27,
            "workplaces": -0.3,
            "residential": None,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Murray County",
            "retail_and_recreation": -0.18,
            "grocery_and_pharmacy": 0.01,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.25,
            "residential": 0.13,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Muscogee County",
            "retail_and_recreation": -0.44,
            "grocery_and_pharmacy": -0.08,
            "parks": 0.19,
            "transit_stations": -0.56,
            "workplaces": -0.29,
            "residential": 0.09,
        },
        {
            "subregion": "Newton County",
            "retail_and_recreation": -0.31,
            "grocery_and_pharmacy": -0.14,
            "parks": -0.13,
            "transit_stations": None,
            "workplaces": -0.36,
            "residential": 0.1,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Oconee County",
            "retail_and_recreation": -0.46,
            "grocery_and_pharmacy": -0.07,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.37,
            "residential": 0.0,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Oglethorpe County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": 0.0,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.41,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Paulding County",
            "retail_and_recreation": -0.34,
            "grocery_and_pharmacy": -0.25,
            "parks": -0.55,
            "transit_stations": None,
            "workplaces": -0.36,
            "residential": 0.11,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Peach County",
            "retail_and_recreation": -0.39,
            "grocery_and_pharmacy": -0.16,
            "parks": None,
            "transit_stations": -0.24,
            "workplaces": -0.33,
            "residential": 0.07,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Pickens County",
            "retail_and_recreation": -0.27,
            "grocery_and_pharmacy": -0.16,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.3,
            "residential": 0.09,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Pierce County",
            "retail_and_recreation": -0.48,
            "grocery_and_pharmacy": -0.14,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.26,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Pike County",
            "retail_and_recreation": -0.38,
            "grocery_and_pharmacy": 0.03,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.38,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Polk County",
            "retail_and_recreation": -0.21,
            "grocery_and_pharmacy": -0.04,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.31,
            "residential": 0.12,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Pulaski County",
            "retail_and_recreation": -0.54,
            "grocery_and_pharmacy": -0.12,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.31,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Putnam County",
            "retail_and_recreation": -0.03,
            "grocery_and_pharmacy": 0.02,
            "parks": None,
            "transit_stations": -0.59,
            "workplaces": -0.28,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Rabun County",
            "retail_and_recreation": -0.42,
            "grocery_and_pharmacy": -0.02,
            "parks": 0.37,
            "transit_stations": None,
            "workplaces": -0.4,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Randolph County",
            "retail_and_recreation": -0.64,
            "grocery_and_pharmacy": None,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.32,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Richmond County",
            "retail_and_recreation": -0.4,
            "grocery_and_pharmacy": -0.05,
            "parks": 0.26,
            "transit_stations": -0.51,
            "workplaces": -0.31,
            "residential": 0.08,
        },
        {
            "subregion": "Rockdale County",
            "retail_and_recreation": -0.43,
            "grocery_and_pharmacy": -0.11,
            "parks": -0.18,
            "transit_stations": None,
            "workplaces": -0.39,
            "residential": 0.12,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Schley County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": None,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.36,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Screven County",
            "retail_and_recreation": -0.37,
            "grocery_and_pharmacy": 0.0,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.29,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Seminole County",
            "retail_and_recreation": -0.07,
            "grocery_and_pharmacy": -0.18,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.22,
            "residential": None,
            "residential_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Spalding County",
            "retail_and_recreation": -0.27,
            "grocery_and_pharmacy": -0.13,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.31,
            "residential": 0.08,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Stephens County",
            "retail_and_recreation": -0.24,
            "grocery_and_pharmacy": -0.09,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.27,
            "residential": 0.01,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Sumter County",
            "retail_and_recreation": -0.29,
            "grocery_and_pharmacy": -0.25,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.21,
            "residential": 0.01,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Talbot County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": None,
            "parks": -0.09,
            "transit_stations": None,
            "workplaces": -0.29,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Tattnall County",
            "retail_and_recreation": -0.32,
            "grocery_and_pharmacy": 0.03,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.23,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Taylor County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": 0.04,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.15,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Telfair County",
            "retail_and_recreation": -0.55,
            "grocery_and_pharmacy": 0.0,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.28,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Terrell County",
            "retail_and_recreation": -0.27,
            "grocery_and_pharmacy": -0.17,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.33,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Thomas County",
            "retail_and_recreation": -0.35,
            "grocery_and_pharmacy": -0.09,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.28,
            "residential": 0.15,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Tift County",
            "retail_and_recreation": -0.4,
            "grocery_and_pharmacy": -0.26,
            "parks": None,
            "transit_stations": -0.24,
            "workplaces": -0.25,
            "residential": 0.14,
            "residential_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Toombs County",
            "retail_and_recreation": -0.31,
            "grocery_and_pharmacy": -0.12,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.23,
            "residential": -0.02,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Towns County",
            "retail_and_recreation": -0.38,
            "grocery_and_pharmacy": -0.03,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.22,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Treutlen County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": -0.04,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.26,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Troup County",
            "retail_and_recreation": -0.36,
            "grocery_and_pharmacy": -0.1,
            "parks": None,
            "transit_stations": -0.28,
            "workplaces": -0.27,
            "residential": 0.1,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Turner County",
            "retail_and_recreation": -0.61,
            "grocery_and_pharmacy": 0.23,
            "parks": None,
            "transit_stations": -0.22,
            "workplaces": -0.23,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Twiggs County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": None,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.36,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Union County",
            "retail_and_recreation": -0.3,
            "grocery_and_pharmacy": 0.11,
            "parks": 0.22,
            "transit_stations": None,
            "workplaces": -0.36,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Upson County",
            "retail_and_recreation": -0.25,
            "grocery_and_pharmacy": -0.08,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.36,
            "residential": -0.04,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Walker County",
            "retail_and_recreation": -0.2,
            "grocery_and_pharmacy": 0.07,
            "parks": -0.28,
            "transit_stations": None,
            "workplaces": -0.28,
            "residential": 0.15,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Walton County",
            "retail_and_recreation": -0.28,
            "grocery_and_pharmacy": 0.07,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.35,
            "residential": 0.09,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Ware County",
            "retail_and_recreation": -0.39,
            "grocery_and_pharmacy": -0.18,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.23,
            "residential": 0.11,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Warren County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": None,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.32,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Washington County",
            "retail_and_recreation": -0.12,
            "grocery_and_pharmacy": -0.31,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.13,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Wayne County",
            "retail_and_recreation": -0.3,
            "grocery_and_pharmacy": -0.08,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.33,
            "residential": -0.02,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "White County",
            "retail_and_recreation": -0.43,
            "grocery_and_pharmacy": -0.02,
            "parks": -0.16,
            "transit_stations": None,
            "workplaces": -0.29,
            "residential": 0.09,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Whitfield County",
            "retail_and_recreation": -0.34,
            "grocery_and_pharmacy": -0.07,
            "parks": -0.45,
            "transit_stations": -0.23,
            "workplaces": -0.25,
            "residential": 0.09,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Wilcox County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": 0.13,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.24,
            "residential": None,
            "residential_not_enough_data": True,
            "grocery_and_pharmacy_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Wilkes County",
            "retail_and_recreation": -0.31,
            "grocery_and_pharmacy": -0.14,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.22,
            "residential": None,
            "workplaces_not_enough_data": True,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Wilkinson County",
            "retail_and_recreation": None,
            "grocery_and_pharmacy": 0.0,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.24,
            "residential": None,
            "residential_not_enough_data": True,
            "workplaces_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "retail_and_recreation_not_enough_data": True,
            "parks_not_enough_data": True,
        },
        {
            "subregion": "Worth County",
            "retail_and_recreation": -0.28,
            "grocery_and_pharmacy": -0.09,
            "parks": None,
            "transit_stations": None,
            "workplaces": -0.28,
            "residential": None,
            "residential_not_enough_data": True,
            "transit_stations_not_enough_data": True,
            "parks_not_enough_data": True,
        },
    ]

    @pytest.fixture
    def report(self, us_georgia_report):
        return us_georgia_report


@pytest.fixture(scope="session")
def ar_report():
    return _read_fixture("2020-03-29_AR_Mobility_Report_en.txt")


@pytest.fixture(scope="session")
def br_report():
    return _read_fixture("2020-03-29_BR_Mobility_Report_en.txt")


@pytest.fixture(scope="session")
def gb_report():
    return _read_fixture("2020-03-29_GB_Mobility_Report_en.txt")


@pytest.fixture(scope="session")
def cz_report():
    return _read_fixture("2020-03-29_CZ_Mobility_Report_en.txt")


@pytest.fixture(scope="session")
def us_georgia_report():
    return _read_fixture("2020-03-29_US_Georgia_Mobility_Report_en.txt")


@pytest.fixture(scope="session")
def kr_report():
    return _read_fixture("2020-03-29_KR_Mobility_Report_en.txt")


def _read_fixture(name):
    path = pathlib.Path(__file__).parent / f"fixtures/{name}"
    with open(path, "rt") as fp:
        contents = fp.read()
    return contents
