def METHOD_NAME():
    thermodynamic_state = ThermodynamicState(
        temperature=1.0 * unit.kelvin, pressure=1.0 * unit.atmosphere
    )
    data_set = PhysicalPropertyDataSet()
    data_set.add_properties(
        Density(
            thermodynamic_state=thermodynamic_state,
            substance=Substance.from_components("O", "C"),
            value=0.0 * unit.kilogram / unit.meter**3,
        ),
        EnthalpyOfVaporization(
            thermodynamic_state=thermodynamic_state,
            substance=Substance.from_components("O", "C"),
            value=0.0 * unit.kilojoule / unit.mole,
        ),
        Density(
            thermodynamic_state=thermodynamic_state,
            substance=Substance.from_components("O", "CO"),
            value=0.0 * unit.kilogram / unit.meter**3,
        ),
        EnthalpyOfVaporization(
            thermodynamic_state=thermodynamic_state,
            substance=Substance.from_components("O", "CO"),
            value=0.0 * unit.kilojoule / unit.mole,
        ),
    )
    options = RequestOptions()
    submission = EvaluatorClient._Submission()
    submission.dataset = data_set
    submission.options = options
    with DaskLocalCluster() as calculation_backend:
        server = EvaluatorServer(calculation_backend)
        batches = server._batch_by_same_component(submission, "")
    assert len(batches) == 2
    assert len(batches[0].queued_properties) == 2
    assert len(batches[1].queued_properties) == 2