def test_convert_inclusion_exclusion_string_to_lists_exclusion_with_space():
    u"""
    Test convert_inclusion_exclusion_string_to_lists in the case of exclusion with a space after ≠.

    This edge case occurs in the 2017 single source Excel file.
    """
    input_string = "≠ a, b, c"
    output = single_source_conversion_helpers.convert_inclusion_exclusion_string_to_lists(
        input_string)
    assert output.equals(pd.Series([[], ['a', 'b', 'c']]))
def test_convert_inclusion_exclusion_string_to_lists_exclusion_with_space():
    u"""
    Test convert_inclusion_exclusion_string_to_lists in the case of exclusion with a space after ≠.

    This edge case occurs in the 2017 single source Excel file.
    """
    input_string = "≠ a, b, c"
    output = single_source_conversion_helpers.convert_inclusion_exclusion_string_to_lists(
        input_string)
    assert output.equals(pd.Series([[], ['a', 'b', 'c']]))
def test_convert_inclusion_exclusion_string_to_lists_exclusion_only():
    """Test convert_inclusion_exclusion_string_to_lists in the case of only exclusion."""
    input_string = "≠a, b, c"
    output = single_source_conversion_helpers.convert_inclusion_exclusion_string_to_lists(
        input_string)
    assert output.equals(pd.Series([[], ['a', 'b', 'c']]))
def test_convert_inclusion_exclusion_string_to_lists_inclusion_with_equals():
    """Test convert_inclusion_exclusion_string_to_lists in the case of only inclusion with an =."""
    input_string = "=a, b, c"
    output = single_source_conversion_helpers.convert_inclusion_exclusion_string_to_lists(
        input_string)
    assert output.equals(pd.Series([['a', 'b', 'c'], []]))
def test_convert_inclusion_exclusion_string_to_lists_inclusion_and_exclusion():
    """Test convert_inclusion_exclusion_string_to_lists in the case of exclusion and inclusion."""
    input_string = "1P, ≠ 2P, 3P, 8P"
    output = single_source_conversion_helpers.convert_inclusion_exclusion_string_to_lists(
        input_string)
    assert output.equals(pd.Series([['1P'], ['2P', '3P', '8P']]))
def test_convert_inclusion_exclusion_string_to_lists_exclusion_with_or():
    """Test convert_inclusion_exclusion_string_to_lists in the case of exclusion containing 'or'."""
    input_string = "≠ 52, 53, 73 or 74"
    output = single_source_conversion_helpers.convert_inclusion_exclusion_string_to_lists(
        input_string)
    assert output.equals(pd.Series([[], ['52', '53', '73', '74']]))
def test_convert_inclusion_exclusion_string_to_lists_inclusion_with_equals():
    """Test convert_inclusion_exclusion_string_to_lists in the case of only inclusion with an =."""
    input_string = "=a, b, c"
    output = single_source_conversion_helpers.convert_inclusion_exclusion_string_to_lists(
        input_string)
    assert output.equals(pd.Series([['a', 'b', 'c'], []]))
def test_convert_inclusion_exclusion_string_to_lists_inclusion_and_exclusion():
    """Test convert_inclusion_exclusion_string_to_lists in the case of exclusion and inclusion."""
    input_string = "1P, ≠ 2P, 3P, 8P"
    output = single_source_conversion_helpers.convert_inclusion_exclusion_string_to_lists(
        input_string)
    assert output.equals(pd.Series([['1P'], ['2P', '3P', '8P']]))
def test_convert_inclusion_exclusion_string_to_lists_exclusion_with_or():
    """Test convert_inclusion_exclusion_string_to_lists in the case of exclusion containing 'or'."""
    input_string = "≠ 52, 53, 73 or 74"
    output = single_source_conversion_helpers.convert_inclusion_exclusion_string_to_lists(
        input_string)
    assert output.equals(pd.Series([[], ['52', '53', '73', '74']]))
def test_convert_inclusion_exclusion_string_to_lists_exclusion_only():
    """Test convert_inclusion_exclusion_string_to_lists in the case of only exclusion."""
    input_string = "≠a, b, c"
    output = single_source_conversion_helpers.convert_inclusion_exclusion_string_to_lists(
        input_string)
    assert output.equals(pd.Series([[], ['a', 'b', 'c']]))