from .bt1 import BT1 as BT1
from .bt2 import BT2 as BT2
from .bt3 import BT3 as BT3
from .bt4 import BT4 as BT4
from .bt5 import BT5 as BT5
from .bt6 import BT6 as BT6
from .bt7 import BT7 as BT7
from .bt8 import BT8 as BT8
from .bt9 import BT9 as BT9
from .bt10 import BT10 as BT10
from .bt11 import BT11 as BT11
from .bt12 import BT12 as BT12
from .bt13 import BT13 as BT13
from .hs6 import HS6 as HS6
from .hs7 import HS7 as HS7
from .hs8 import HS8 as HS8
from .hs9 import HS9 as HS9
from .hs10 import HS10 as HS10
from .hs11 import HS11 as HS11
from .hs12 import HS12 as HS12
from .hs13 import HS13 as HS13
from .hs14 import HS14 as HS14
from .hs15 import HS15 as HS15
from .hs16 import HS16 as HS16
from .hs17 import HS17 as HS17
from .hs18 import HS18 as HS18
from .hs19 import HS19 as HS19
from .hs20 import HS20 as HS20
from .hs21 import HS21 as HS21
from .hs22 import HS22 as HS22
from .hs23 import HS23 as HS23
from .hs24 import HS24 as HS24
from .hs26 import HS26 as HS26
from .hs27 import HS27 as HS27
from .hs28 import HS28 as HS28
from .hs29 import HS29 as HS29
from .hs30 import HS30 as HS30
from .hs31 import HS31 as HS31
from .hs32 import HS32 as HS32
from .hs33 import HS33 as HS33
from .hs34 import HS34 as HS34
from .hs35 import HS35 as HS35
from .hs36 import HS36 as HS36
from .hs37 import HS37 as HS37
from .hs39 import HS39 as HS39
from .hs40 import HS40 as HS40
from .hs41 import HS41 as HS41
from .hs42 import HS42 as HS42
from .hs43 import HS43 as HS43
from .hs44 import HS44 as HS44
from .hs46 import HS46 as HS46
from .hs47 import HS47 as HS47
from .hs48 import HS48 as HS48
from .hs49 import HS49 as HS49
from .hs50 import HS50 as HS50
from .hs51 import HS51 as HS51
from .hs52 import HS52 as HS52
from .hs53 import HS53 as HS53
from .hs54 import HS54 as HS54
from .hs55 import HS55 as HS55
from .hs56 import HS56 as HS56
from .hs57 import HS57 as HS57

# from .hs59 import HS59 as HS59  # TODO: Human review - objective function discrepancy
from .hs60 import HS60 as HS60
from .hs61 import HS61 as HS61
from .hs62 import HS62 as HS62
from .hs63 import HS63 as HS63
from .hs64 import HS64 as HS64
from .hs65 import HS65 as HS65
from .hs66 import HS66 as HS66

# from .hs67 import HS67 as HS67  # TODO: Human review - several discrepancies
from .hs68 import HS68 as HS68
from .hs69 import HS69 as HS69
from .hs71 import HS71 as HS71
from .hs72 import HS72 as HS72
from .hs73 import HS73 as HS73
from .hs74 import HS74 as HS74
from .hs75 import HS75 as HS75
from .hs76 import HS76 as HS76
from .hs77 import HS77 as HS77
from .hs78 import HS78 as HS78
from .hs79 import HS79 as HS79
from .hs80 import HS80 as HS80
from .hs81 import HS81 as HS81
from .hs83 import HS83 as HS83
from .hs93 import HS93 as HS93

# from .hs99 import HS99 as HS99  # TODO: Needs human review - complex recursion
from .hs100 import HS100 as HS100
from .hs101 import HS101 as HS101
from .hs102 import HS102 as HS102
from .hs103 import HS103 as HS103
from .hs104 import HS104 as HS104
from .hs105 import HS105 as HS105
from .hs106 import HS106 as HS106
from .hs107 import HS107 as HS107
from .hs108 import HS108 as HS108
from .hs109 import HS109 as HS109
from .hs111 import HS111 as HS111
from .hs112 import HS112 as HS112
from .hs113 import HS113 as HS113
from .hs114 import HS114 as HS114
from .hs116 import HS116 as HS116
from .hs117 import HS117 as HS117
from .hs118 import HS118 as HS118
from .hs119 import HS119 as HS119
from .lukvle1 import LUKVLE1 as LUKVLE1

# from .lukvle2 import LUKVLE2 as LUKVLE2
from .lukvle3 import LUKVLE3 as LUKVLE3

# from .lukvle4 import LUKVLE4 as LUKVLE4  # Use LUKVLE4C instead
# from .lukvle4c import LUKVLE4C as LUKVLE4C
from .lukvle5 import LUKVLE5 as LUKVLE5
from .lukvle6 import LUKVLE6 as LUKVLE6
from .lukvle7 import LUKVLE7 as LUKVLE7
from .lukvle8 import LUKVLE8 as LUKVLE8
from .lukvle9 import LUKVLE9 as LUKVLE9
from .lukvle10 import LUKVLE10 as LUKVLE10
from .lukvle11 import LUKVLE11 as LUKVLE11

# from .lukvle12 import LUKVLE12 as LUKVLE12  # Has constraint function inconsistencies
from .lukvle13 import LUKVLE13 as LUKVLE13
from .lukvle14 import LUKVLE14 as LUKVLE14
from .lukvle15 import LUKVLE15 as LUKVLE15
from .lukvle16 import LUKVLE16 as LUKVLE16
from .lukvle17 import LUKVLE17 as LUKVLE17
from .lukvle18 import LUKVLE18 as LUKVLE18
from .lukvli1 import LUKVLI1 as LUKVLI1

# from .lukvli2 import LUKVLI2 as LUKVLI2
from .lukvli3 import LUKVLI3 as LUKVLI3

# from .lukvli4 import LUKVLI4 as LUKVLI4  # Use LUKVLI4C instead
# from .lukvli4c import LUKVLI4C as LUKVLI4C
from .lukvli5 import LUKVLI5 as LUKVLI5
from .lukvli6 import LUKVLI6 as LUKVLI6
from .lukvli7 import LUKVLI7 as LUKVLI7
from .lukvli8 import LUKVLI8 as LUKVLI8
from .lukvli9 import LUKVLI9 as LUKVLI9
from .lukvli10 import LUKVLI10 as LUKVLI10
from .lukvli11 import LUKVLI11 as LUKVLI11

# from .lukvli12 import LUKVLI12 as LUKVLI12  # Has constraint function inconsistencies
from .lukvli13 import LUKVLI13 as LUKVLI13
from .lukvli14 import LUKVLI14 as LUKVLI14
from .lukvli15 import LUKVLI15 as LUKVLI15
from .lukvli16 import LUKVLI16 as LUKVLI16
from .lukvli17 import LUKVLI17 as LUKVLI17
from .lukvli18 import LUKVLI18 as LUKVLI18


constrained_minimisation_problems = (
    HS6(),
    HS7(),
    HS8(),
    HS9(),
    HS10(),
    HS11(),
    HS12(),
    HS13(),
    HS14(),
    HS15(),
    HS16(),
    HS17(),
    HS18(),
    HS19(),
    HS20(),
    HS21(),
    HS22(),
    HS23(),
    HS24(),
    HS26(),
    HS27(),
    HS28(),
    HS29(),
    HS30(),
    HS31(),
    HS32(),
    HS33(),
    HS34(),
    HS35(),
    HS36(),
    HS37(),
    HS39(),
    HS40(),
    HS41(),
    HS42(),
    HS43(),
    HS44(),
    HS46(),
    HS47(),
    HS48(),
    HS49(),
    HS50(),
    HS51(),
    HS52(),
    HS53(),
    HS54(),
    HS55(),
    HS56(),
    HS57(),
    # HS59(),  # TODO: Human review - objective function discrepancy
    HS60(),
    HS61(),
    HS62(),
    HS63(),
    HS64(),
    HS65(),
    HS66(),
    # HS67(),  # TODO: Human review - several discrepancies
    HS68(),
    HS69(),
    HS71(),
    HS72(),
    HS73(),
    HS74(),
    HS75(),
    HS76(),
    HS77(),
    HS78(),
    HS79(),
    HS80(),
    HS81(),
    HS83(),
    HS93(),
    # HS99(),  # TODO: Needs human review - complex recursive formulation
    HS100(),
    HS101(),
    HS102(),
    HS103(),
    HS104(),
    HS105(),
    HS106(),
    HS107(),
    HS108(),
    HS109(),
    HS111(),
    HS112(),
    HS113(),
    HS114(),
    HS116(),
    HS117(),
    HS118(),
    HS119(),
    BT1(),
    BT2(),
    BT3(),
    BT4(),
    BT5(),
    BT6(),
    BT7(),
    BT8(),
    BT9(),
    BT10(),
    BT11(),
    BT12(),
    BT13(),
    LUKVLE1(),
    # LUKVLE2(),
    LUKVLE3(),
    # LUKVLE4(),  # Has factor ~2380 error due to SIF bug, use LUKVLE4C instead
    # LUKVLE4C(),  # Has 3% discrepancy with pycutest
    LUKVLE5(),
    LUKVLE6(),
    LUKVLE7(),
    LUKVLE8(),
    LUKVLE9(),
    LUKVLE10(),
    LUKVLE11(),
    # LUKVLE12(),  # Has constraint function inconsistencies
    LUKVLE13(),
    LUKVLE14(),
    LUKVLE15(),
    LUKVLE16(),
    LUKVLE17(),
    LUKVLE18(),
    LUKVLI1(),
    # LUKVLI2(),
    LUKVLI3(),
    # LUKVLI4(),  # Has factor ~2380 error due to SIF bug, use LUKVLI4C instead
    # LUKVLI4C(),  # Has 3% discrepancy with pycutest
    LUKVLI5(),
    LUKVLI6(),
    LUKVLI7(),
    LUKVLI8(),
    LUKVLI9(),
    LUKVLI10(),
    LUKVLI11(),
    # LUKVLI12(),  # Has constraint function inconsistencies
    LUKVLI13(),
    LUKVLI14(),
    LUKVLI15(),
    LUKVLI16(),
    LUKVLI17(),
    LUKVLI18(),
)
