def reformat_strand(input_value, format, case=False):
    """Converts common strand orientation formats.


    :param input_value: Value that will be edited.
    :type input_value: str, int
    :param format:
        Indicates how the value should be edited.
        Valid format types include:
        'fr_long' ('forward', 'reverse')
        'fr_short' ('f', 'r')
        'fr_abbrev1' ('for', 'rev')
        'fr_abbrev2' ('fwd', 'rev')
        'tb_long' ('top', 'bottom')
        'tb_short' ('t', 'b')
        'wc_long' ('watson', 'crick')
        'wc_short' ('w','c')
        'operator' ('+', '-')
        'numeric' (1, -1).
    :type format: str
    :param case:
        Indicates whether the output value should be capitalized.
    :type case: bool
    :returns: The re-formatted value as indicated by 'format'.
    :rtype: str, int
    """
    format_dict = {'fr_long': ['forward', 'reverse'], 'fr_short': ['f', 'r'
        ], 'fr_abbrev1': ['for', 'rev'], 'fr_abbrev2': ['fwd', 'rev'],
        'tb_long': ['top', 'bottom'], 'tb_short': ['t', 'b'], 'wc_long': [
        'watson', 'crick'], 'wc_short': ['w', 'c'], 'operator': ['+', '-'],
        'numeric': [1, -1]}
    strand1_values = set()
    strand2_values = set()
    for values in format_dict.values():
        strand1_values.add(values[0])
        strand2_values.add(values[1])
    if format in format_dict.keys():
        if isinstance(input_value, str):
            new_value = input_value.lower()
        else:
            new_value = input_value
        if new_value in strand1_values:
            new_value = format_dict[format][0]
        elif new_value in strand2_values:
            new_value = format_dict[format][1]
        else:
            new_value = 'NA'
    else:
        new_value = 'NA'
    if isinstance(new_value, str):
        if case == True:
            new_value = new_value.capitalize()
    return new_value
