test_LP() = CoreModel(
    zeros(4, 3),
    zeros(4),
    ones(3),
    ones(3),
    ones(3),
    ["r$x" for x = 1:3],
    ["m$x" for x = 1:4],
)

test_simpleLP() = CoreModel(
    [
        1.0 1.0
        -1.0 1.0
    ],
    [3.0, 1.0],
    [-0.25, 1.0],
    -ones(2),
    2.0 * ones(2),
    ["r$x" for x = 1:2],
    ["m$x" for x = 1:2],
)

test_simpleLP2() = CoreModel(
    zeros(2, 2),
    [0.0, 0.0],
    [-0.25, 1.0],
    -ones(2),
    2.0 * ones(2),
    ["r$x" for x = 1:2],
    ["m$x" for x = 1:2],
)

test_sparseLP() = CoreModel(
    sprand(4000, 3000, 0.5),
    sprand(4000, 0.5),
    sprand(3000, 0.5),
    sprand(3000, 0.5),
    sprand(3000, 0.5),
    ["r$x" for x = 1:3000],
    ["m$x" for x = 1:4000],
)

test_coupledLP() = CoreModelCoupled(
    CoreModel(
        sprand(4000, 3000, 0.5),
        sprand(4000, 0.5),
        sprand(3000, 0.5),
        sprand(3000, 0.5),
        sprand(3000, 0.5),
        ["r$x" for x = 1:3000],
        ["m$x" for x = 1:4000],
    ),
    sprand(2000, 3000, 0.5),
    sprand(2000, 0.5),
    sprand(2000, 0.5),
)

test_toyModel() = CoreModel(
    [
        -1.0 1.0 0.0 0.0 0.0 0.0 0.0
        -2.0 0.0 1.0 0.0 0.0 0.0 0.0
        1.0 0.0 0.0 0.0 0.0 0.0 -1.0
        0.0 -1.0 0.0 -1.0 0.0 0.0 0.0
        0.0 0.0 -1.0 0.0 -1.0 0.0 0.0
        0.0 0.0 0.0 0.0 0.0 -1.0 1.0
    ],
    zeros(6),
    [0, 0, 0, 0, 0, 0, 1.0],
    fill(-1000.0, 7),
    fill(1000.0, 7),
    ["r1", "m1t", "m3t", "EX_m1(e)", "EX_m3(e)", "EX_biomass(e)", "biomass1"],
    ["m1[c]", "m3[c]", "m2[c]", "m1[e]", "m3[e]", "biomass[c]"],
)

const reaction_standard_gibbs_free_energies = Dict(
    #=
    ΔᵣG⁰ data from Equilibrator using the E. coli core model's reactions
    To generate this data manually, go to https://equilibrator.weizmann.ac.il/ and
    enter each reaction into the search bar, fill in the ΔG⁰ below from there. To generate
    automatically, use the eQuilibrator.jl package.
    =#
    "ACALD" => -21.268198981756314,
    "PTAr" => 8.651025243027988,
    "ALCD2x" => 17.47260052762408,
    "PDH" => -34.246780702043225,
    "PYK" => -24.48733600711958,
    "CO2t" => 0.0,
    "MALt2_2" => -6.839209921974724,
    "CS" => -39.330940148207475,
    "PGM" => -4.470553692565886,
    "TKT1" => -1.4976299544215408,
    "ACONTa" => 8.46962176350985,
    "GLNS" => -15.771242654033706,
    "ICL" => 9.53738025507404,
    "FBA" => 23.376920310319235,
    "SUCCt3" => -43.97082007726285,
    "FORt2" => -3.4211767267069124,
    "G6PDH2r" => -7.3971867270165035,
    "AKGDH" => -28.235442362320782,
    "TKT2" => -10.318436817276165,
    "FRD7" => 73.61589524884772,
    "SUCOAS" => -1.1586968559555615,
    "FBP" => -11.606887851480572,
    "ICDHyr" => 5.398885342794983,
    "AKGt2r" => 10.085299238039797,
    "GLUSy" => -47.21690395283849,
    "TPI" => 5.621932460512994,
    "FORt" => 13.509690780237293,
    "ACONTb" => -1.622946931741609,
    "GLNabc" => -30.194559792842753,
    "RPE" => -3.3881719029747615,
    "ACKr" => 14.027197131450492,
    "THD2" => -33.84686533309243,
    "PFL" => -19.814421615735,
    "RPI" => 4.477649590945703,
    "D_LACt2" => -3.4223903975852004,
    "TALA" => -0.949571985515206,
    "PPCK" => 10.659841402564751,
    "ACt2r" => -3.4196348363397995,
    "NH4t" => -13.606633927039097,
    "PGL" => -25.94931748161696,
    "NADTRHD" => -0.014869680795754903,
    "PGK" => 19.57192102020454,
    "LDH_D" => 20.04059765689044,
    "ME1" => 12.084968268076864,
    "PIt2r" => 10.415108493818785,
    "ATPS4r" => -37.570267233299816,
    "PYRt2" => -3.422891289768689,
    "GLCpts" => -45.42430981510088,
    "GLUDy" => 32.834943812395665,
    "CYTBD" => -59.700410815493775,
    "FUMt2_2" => -6.845105500839001,
    "FRUpts2" => -42.67529760694199,
    "GAPD" => 0.5307809794271634,
    "H2Ot" => -1.5987211554602254e-14,
    "PPC" => -40.81304419704113,
    "NADH16" => -80.37770501380615,
    "PFK" => -18.546314942995934,
    "MDH" => 25.912462872631522,
    "PGI" => 2.6307087407442395,
    "O2t" => 0.0,
    "ME2" => 12.099837948872533,
    "GND" => 10.312275879236381,
    "SUCCt2_2" => -6.82178244356977,
    "GLUN" => -14.381960140443113,
    "ETOHt2r" => -16.930867506944217,
    "ADK1" => 0.3893321583896068,
    "ACALDt" => -3.197442310920451e-14,
    "SUCDi" => -73.61589524884772,
    "ENO" => -3.8108376097261782,
    "MALS" => -39.22150045995042,
    "GLUt2r" => -3.499043558772904,
    "PPS" => -6.0551989457468665,
    "FUM" => -3.424133018702122,
)
