def test_regions_are_supported_invalid_uppercase_inputs(self):
        myregions = set(['MZ', 'TW', 'US', 'AZZZZ', '1212'])

        expected_incorrect_values = set(['AZZZZ', '1212'])

        supported, incorrect_values = _regions_are_supported(myregions)

        self.assertFalse(supported)
        self.assertSetEqual(incorrect_values, expected_incorrect_values)
    def test_regions_are_supported_valid_inputs_with_nulls(self):
        """
        verify that invalid regions return False and return the set of invalid regions
        """
        myregions = set(['MZ', 'TW', 'US', None, np.nan])

        supported, incorrect_values = _regions_are_supported(myregions)

        self.assertTrue(supported)
        self.assertIsNone(incorrect_values)
    def test_regions_are_supported_invalid_lowercase_inputs(self):
        # Currently, lowercase region abbreviations are not handled so they will be detected as invalid inputs
        myregions = set(['MZ', 'tw', 'us'])

        expected_incorrect_values = set(['tw', 'us'])

        supported, incorrect_values = _regions_are_supported(myregions)

        self.assertFalse(supported)
        self.assertSetEqual(incorrect_values, expected_incorrect_values)
    def test_regions_are_supported_valid_inputs(self):
        """
        verify that valid regions are handled correctly
        """
        myregions = set(['MZ', 'TW', 'US'])

        supported, incorrect_values = _regions_are_supported(myregions)

        self.assertTrue(supported)
        self.assertIsNone(incorrect_values)