MAIN_LOCAL_FEATUERS = []

MAIN_GLOBAL_FEATUERS = ['distortion', 'monotonicity']

ELECTION_GLOBAL_FEATURES = {
    'clustering',
    'clustering_kmeans',
    'distortion_from_all',
    'id_vs_un',
    'an_vs_st'
}

RULE_NAME_MATRIX = {
    "av": "AV",
    "sav": "SAV",
    "pav": "PAV",
    "slav": "SLAV",
    "cc": "CC",
    "seqpav": "seq-PAV",
    "revseqpav": "Rev.Gr.PAV",
    "seqslav": "seq-SLAV",
    "seqcc": "seq-CC",
    "seqphragmen": "seq-Phrag.",
    "greedy-monroe": "Gr. Monroe",
    "monroe": "Monroe",
    "minimaxav": "Minimax AV",
    "rule-x": "Eq. Shares",
    "geom2": "Geom. 2",
    "geom3": "Geom. 3",
    "geom4": "Geom. 4",
    "geom5": "Geom. 5",
}

RULE_NAME_MAP = {
    "av": "AV",
    "sav": "SAV",
    "pav": "PAV",
    "slav": "SLAV",
    "cc": "CC",
    "seqpav": "Gr.PAV",
    "revseqpav": "Rev.Gr.PAV",
    "seqslav": "Gr.SLAV",
    "seqcc": "Gr.CC",
    "seqphragmen": "Gr.Phrag.",
    "greedy-monroe": "Gr.Monroe",
    "monroe": "Monroe",
    "minimaxav": "Minimax AV",
    "rule-x": "Rule X",
    "geom2": "Geo 2",
    "geom3": "Geo 3",
    "geom4": "Geo 4",
    "geom5": "Geo 5",
}

NICE_NAME = {
    '1d_interval': '1D_Interval',
    '1d_gaussian': '1D_Gaussian',
    '2d_disc': '2D_Disc',
    '2d_square': '2D_Square',
    '2d_gaussian': '2D_Gaussian',
    '3d_cube': '3D_Cube',
    '4d_cube': '4D_Cube',
    '5d_cube': '5D_Cube',
    '10d_cube': '10D_Cube',
    '20d_cube': '20D_Cube',
    '2d_sphere': '2D_Sphere',
    '3d_sphere': '3D_Sphere',
    '4d_sphere': '4D_Sphere',
    '5d_sphere': '5D_Sphere',
    'impartial_culture': 'Impartial_Culture',
    'iac': 'Impartial_Anonymous_Culture',
    'urn': 'Urn',
    'conitzer': 'Single-Peaked_(by_Conitzer)',
    'spoc_conitzer': 'SPOC',
    'walsh': 'Single-Peaked_(by_Walsh)',
    'mallows': 'Mallows',
    'norm-mallows': 'Norm-Mallows',
    'single-crossing': 'Single-Crossing',
    'didi': 'DiDi',
    'pl': 'Plackett-Luce',
    'netflix': 'Netflix',
    'sushi': 'Sushi',
    'formula': 'Formula',
    'meath': 'Meath',
    'dublin_north': 'North_Dublin',
    'dublin_west': 'West_Dublin',
    'identity': 'Identity',
    'antagonism': 'Antagonism',
    'uniformity': 'Uniformity',
    'stratification': 'Stratification',
    'real_identity': 'Real_Identity',
    'real_uniformity': 'Real_Uniformity',
    'real_antagonism': 'Real_Antagonism',
    'real_stratification': 'Real_Stratification',
    'group-separable': 'Group-Separable',
    'approval_id': 'Approval_ID',
    'approval_id_0.5': 'Approval_ID_0.5',
    'approval_ic': 'Approval_IC',
    'approval_ic_0.5': 'Approval_IC_0.5',
    'approval_resampling': 'Approval_Resampling',
    'approval_noise_model': 'Approval_Noise_Model',
    'approval_disjoint_resampling': 'approval_disjoint_resampling',
    'approval_urn': 'Approval_Urn',
    'core': 'Core',
    'approval_truncated_mallows': 'Approval_Truncated_Mallows',
    'approval_truncated_urn': 'Approval_Truncated_Urn',
    'approval_simplex_shumallows': 'approval_simplex_shumallows',
    'approval_vcr': 'Approval_VCR',
    'all_votes': 'All_Votes',
    'all': 'All',
    'approval_moving_resampling': 'Approval_Moving_Resampling',
    'unid': 'UNID',
    'anid': 'ANID',
    'stid': 'STID',
    'stan': 'STAN',
    'stun': 'STUN',
    'anun': 'ANUN',
    'approval_jaccard': 'Approval_Jaccard',
    'approval_skeleton': 'approval_skeleton',
    'approval_anti_pjr': 'approval_anti_pjr',
    'hamming': 'hamming',
    'noise_model': 'noise_model',
    'approval_partylist': 'Approval_Partylist',
    'norm-mallows_mixture': 'norm-mallows_mixture',
    'ic': 'IC',
    'id': 'ID',
}

SHORT_NICE_NAME = {
    'Impartial Culture': 'IC',
    'SP by Conitzer': 'SP (Con.)',
    'SP by Walsh': 'SP (Wal.)',
    'SPOC': 'SPOC',
    'Single-Crossing': 'SC',
    'Interval': 'Interval',
    'Disc': 'Disc',
    'Cube': 'Cube',
    'Circle': 'Circle',
    'Urn (gamma)': 'Urn',
    'Norm-Mallows (uniform)': 'N-Mallows',
    'GS Balanced': 'GS (Bal.)',
    'GS Caterpillar': 'GS (Cat.)',
    'ID': 'ID',
    'AN': 'AN',
    'ST': 'ST',
    'UN': 'UN',
    '1D Uniform': '1D',
    '2D Uniform': '2D',
    '3D Uniform': '3D',
    '2D Sphere': 'Circle',
}
