def test_harmonize_undefined_inchi(metadata, aliases, undefined, expected):
    spectrum_in = SpectrumBuilder().with_metadata(metadata).build()

    spectrum = harmonize_undefined_inchi(spectrum_in,
                                         aliases=aliases,
                                         undefined=undefined)
    assert spectrum.get("inchi") == expected
def test_harmonize_undefined_inchi_empty_string():

    spectrum_in = Spectrum(mz=numpy.array([], dtype="float"),
                           intensities=numpy.array([], dtype="float"),
                           metadata={"inchi": ""})

    spectrum = harmonize_undefined_inchi(spectrum_in)
    assert spectrum.get("inchi") == ""
def test_harmonize_undefined_inchi_alias_nan_undefined_is_na():

    spectrum_in = Spectrum(mz=numpy.array([], dtype="float"),
                           intensities=numpy.array([], dtype="float"),
                           metadata={"inchi": "nan"})

    spectrum = harmonize_undefined_inchi(
        spectrum_in, aliases=["nodata", "NaN", "Nan", "nan"], undefined="n/a")
    assert spectrum.get("inchi") == "n/a"
def test_empty_spectrum():
    spectrum_in = None
    spectrum = harmonize_undefined_inchi(spectrum_in)

    assert spectrum is None, "Expected different handling of None spectrum."