def test_to_sirius(self):
        # Spectrum 1 -------------------
        spec = MBSpectrum(os.path.join(os.path.dirname(__file__), "example_massbank_records", "FIO00665.txt"))
        out = spec.to_sirius_format()
        self.assertIn("FIO00665.ms", out)
        self.assertIn("FIO00665.tsv", out)
        self.assertIsNone(out["FIO00665.tsv"])
        self.assertIn(">profile qtof", out["FIO00665.ms"])

        # check fragmentation peaks
        tmp = out["FIO00665.ms"].split("\n")
        for idx, _peak in enumerate(spec.get_peaks(), start=tmp.index(">ms2merged") + 1):
            _mz, _int = tmp[idx].split(" ")
            self.assertEqual(_peak, (float(_mz), float(_int)))

        # Spectrum 2 -------------------
        spec = MBSpectrum(os.path.join(os.path.dirname(__file__), "example_massbank_records", "EQ308406.txt"))
        out = spec.to_sirius_format()
        self.assertIn("EQ308406.ms", out)
        self.assertIn("EQ308406.tsv", out)
        self.assertIsNone(out["EQ308406.tsv"])
        self.assertIn(">profile orbitrap", out["EQ308406.ms"])

        # check fragmentation peaks
        tmp = out["EQ308406.ms"].split("\n")
        for idx, _peak in enumerate(spec.get_peaks(), start=tmp.index(">ms2merged") + 1):
            _mz, _int = tmp[idx].split(" ")
            self.assertEqual(_peak, (float(_mz), float(_int)))

        # Spectrum 3 --------------------
        spectra = []
        acc = []
        spec_cnt = 0
        original_accessions = [
            'EA000412', 'EA000414', 'EA000401', 'EA000413', 'EA000408', 'EA000409', 'EA000405', 'EA000402', 'EA000406',
            'EA000404', 'EA000411', 'EA000403', 'EA000407', 'EA000410'
        ]
        for oacc in original_accessions:
            mb_fn = os.path.join(os.path.dirname(__file__), "example_massbank_records", "%s.txt" % oacc)
            spectra.append(MBSpectrum(mb_fn))
            acc.append(spectra[-1].get("accession"))
            spec_cnt += 1

        self.assertIn(
            ">ms2merged",
            MBSpectrum.merge_spectra(spectra, merge_peak_lists=True).to_sirius_format()["EA33002987.ms"]
        )

        self.assertEqual(
            spec_cnt,
            MBSpectrum.merge_spectra(spectra, merge_peak_lists=False).to_sirius_format()["EA33002987.ms"].count(">ms2peaks")
        )
 def test_to_sirius__custom_candidate_db(self):
     # Spectrum 1 -------------------
     spec = MBSpectrum(os.path.join(os.path.dirname(__file__), "example_massbank_records", "FIO00665.txt"))
     out = spec.to_sirius_format(
         molecular_candidates=pd.read_csv(
             os.path.join(os.path.dirname(__file__), "example_massbank_records", "FIO00665.tsv"), sep="\t"
         )
     )
     self.assertIn("FIO00665.ms", out)
     self.assertIn("FIO00665.tsv", out)
     self.assertIsNotNone(out["FIO00665.tsv"])