def METHOD_NAME():
    db = SupcrtDatabase("supcrtbl")
    phases = Phases(db)
    phases.add( AqueousPhase("H2O(aq) H+ OH- Na+ Cl- Ca+2 Mg+2 HCO3- CO3-2 CO2(aq) SiO2(aq)") )
    phases.add( GaseousPhase("H2O(g) CO2(g)") )
    phases.add( MineralPhase("Halite") )
    phases.add( MineralPhase("Calcite") )
    phases.add( MineralPhase("Magnesite") )
    phases.add( MineralPhase("Dolomite") )
    phases.add( MineralPhase("Quartz") )
    phases = PhaseList(phases.convert())
    system = ChemicalSystem(db, phases)
    props = ChemicalProps(system)
    reaction1 = db.reaction("Halite = Na+ + Cl-")
    reaction2 = db.reaction("Calcite")
    reaction1 = reaction1.withRateModel(createReactionRateModel(1.0))
    reaction2 = reaction2.withRateModel(createReactionRateModel(2.0))
    generalreaction1 = GeneralReaction("CO2(g) = CO2(aq)").setRateModel(createReactionRateModel(3.0))
    generalreaction2 = GeneralReaction("HCO3- + H+ = CO2(aq) + H2O(aq)").setRateModel(createReactionRateModelAsFunction(4.0))
    generalreaction3 = GeneralReaction("SiO2(aq) = Quartz").setRateModel(createReactionRateModelGeneratorAsFunction(5.0))
    reactionsA = Reactions()
    reactionsA.add(reaction1)
    reactionsA.add(reaction2)
    reactionsA.add(generalreaction1)
    reactionsA.add(generalreaction2)
    reactionsA.add(generalreaction3)
    reactionsA.add(ReactionGeneratorUsingClass())
    reactionsA.add(ReactionGeneratorUsingFunction)
    reactionsB = Reactions(
        reaction1,
        reaction2,
        generalreaction1,
        generalreaction2,
        generalreaction3,
        ReactionGeneratorUsingClass(),
        ReactionGeneratorUsingFunction
    )
    def checkReactionsConversion(reactions: Reactions):
        args = ReactionGeneratorArgs(
            system.database(),
            system.species(),
            system.phases(),
            system.surfaces()
        )
        converted: list[Reaction] = reactions.convert(args)
        assert len(converted) == 7
        assert str(converted[0].equation()) == "Halite = Na+ + Cl-"
        assert str(converted[1].equation()) == "Calcite"
        assert str(converted[2].equation()) == "CO2(g) = CO2(aq)"
        assert str(converted[3].equation()) == "HCO3- + H+ = CO2(aq) + H2O(aq)"
        assert str(converted[4].equation()) == "SiO2(aq) = Quartz"
        assert str(converted[5].equation()) == "H2O(aq) = H+ + OH-"
        assert str(converted[6].equation()) == "H2O(aq) = H2(aq) + 0.5*O2(aq)"
        assert converted[0].rate(props).val() == 1.0
        assert converted[1].rate(props).val() == 2.0
        assert converted[2].rate(props).val() == 3.0
        assert converted[3].rate(props).val() == 4.0
        assert converted[4].rate(props).val() == 5.0
        assert converted[5].rate(props).val() == 6.0
        assert converted[6].rate(props).val() == 7.0
    checkReactionsConversion(reactionsA)
    checkReactionsConversion(reactionsB)