mzident 0.1.0

Handle all kinds of identified peptidoform files.
Documentation
#![allow(clippy::missing_panics_doc)]
use std::io::BufReader;

use crate::{PUniFindData, PUniFindVersion, test_format};

#[test]
fn punifind() {
    match test_format::<PUniFindData>(
        BufReader::new(DATA.as_bytes()),
        &mzcore::ontology::STATIC_ONTOLOGIES,
        false,
        false,
        Some(PUniFindVersion::V0_1),
    ) {
        Ok(n) => assert_eq!(n, 25),
        Err(e) => {
            println!("{e}");
            panic!("Failed identified peptides test");
        }
    }
}

const DATA: &str = r#""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.20022.20022.3 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=20022""",12.152746200561523,0.9222192764282227,2278.1103515625,8,0.0042724609375,['FYVHNDLFR'],FYVHNDIFR,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.27866.27866.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=27866""",17.457780838012695,0.92573082447052,2974.96142578125,0_11,0.0009765625,['GPSVFPLAPSSK'],GPSVFPLAPSSK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.22423.22423.3 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=22423""",7.220167636871338,0.8310971856117249,2491.435302734375,0_2_19,0.00830078125,['QSNNKYAASSYLSLTPEQWK'],QSNNKYAASSYLSLTPEQWK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.40878.40878.3 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=40878""",9.236455917358398,0.8798576593399048,4180.07763671875,8_10_12_15,0.006103515625,['EPQVYTLPPSRDELTK'],EPQVYTLPPSRDELTK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.15737.15737.3 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=15737""",6.5804314613342285,0.7998319268226624,1898.6900634765625,14,0.004638671875,['CSVMHEALHNHYTQK'],CSVMHEALHNHYTQK_1_Carbamidomethyl_4_Oxidation,"1,Carbamidomethyl[AnyN-term];4,Oxidation[M];"
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.17852.17852.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=17852""",15.043622970581055,0.9251171946525574,2085.66455078125,14,0.0045166015625,['LEDLSQQAQLAAAEK'],IEDLSQQAQLAAAEK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.37405.37405.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=37405""",2.306647777557373,0.7971277236938477,3855.26611328125,0_4_6_8,0.00128173828125,['NLETTTPSK'],NLETTTPSK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.7982.7982.3 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=7982""",9.057353973388672,0.9212836027145386,1202.89599609375,14,0.0006103515625,['SYSCQVTHEGSTVEK'],SYSCQVTHEGSTVEK_4_Carbamidomethyl_8_Carbamidomethyl,"4,Carbamidomethyl[C];8,Carbamidomethyl[H];"
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.15299.15299.3 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=15299""",10.379405975341797,0.8460844159126282,1859.6834716796875,0_4_11,0.004150390625,['DYQDNKADVLLK'],DYQDNKADVILK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.16976.16976.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=16976""",5.121734142303467,0.9518110156059265,2008.372314453125,7,0.00201416015625,['TSASLLLR'],TSASLILR,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.14636.14636.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=14636""",12.191280364990234,0.9730883836746216,1799.261962890625,10,0.0025634765625,['VTADVLNAAEK'],VTADVINAAEK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.15132.15132.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=15132""",6.433539867401123,0.9017998576164246,1844.801513671875,4_5_10,0.0015869140625,['AKEFGGSLYLK'],AKEFGGSLYLK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.24929.24929.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=24929""",14.542757034301758,0.9697195291519165,2714.61669921875,7,0.00286865234375,['LLEDFLAR'],LIEDFLAR,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.12082.12082.3 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=12082""",8.039690017700195,0.9018003344535828,1567.8992919921875,9,0.003662109375,['LHLVQVVCKK'],LHLVQVVCKK_8_Carbamidomethyl,"8,Carbamidomethyl[C];"
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.23132.23132.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=23132""",11.413284301757812,0.9490157961845398,2555.043212890625,9_13,0.0047607421875,['STSGGTAALGCLVK'],STSGGTAALGCLVK_11_Dioxidation,"11,Dioxidation[C];"
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.19632.19632.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=19632""",12.164674758911133,0.8136799335479736,2243.346923828125,9_15,0.0081787109375,['EPQVYTLPPSRDELTK'],EPQVYTLPPSRDELTK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.14711.14711.4 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=14711""",12.249876022338867,0.8865987658500671,1806.066162109375,0_24,0.00439453125,['SRWQQGNVFSCSVMHEALHNHYTQK'],SRWQQGNVFSCSVMHEALHNHYTQK_3_Dioxidation_11_Carbamidomethyl_14_Oxidation,"3,Dioxidation[W];11,Carbamidomethyl[C];14,Oxidation[M];"
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.9983.9983.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=9983""",4.155393123626709,0.753861129283905,1381.179443359375,12,0.0020751953125,['SCQVTHEGSTVEK'],SCQVTHEGSTVEK_2_Carboxymethyl,"2,Carboxymethyl[C];"
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.4699.4699.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=4699""",8.179214477539062,0.9519505500793457,909.192626953125,9,0.000244140625,['ADVETTTPSK'],ADVETTTPSK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.10854.10854.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=10854""",0.6242847442626953,0.9533525109291077,1458.8134765625,0_6_9,0.002685546875,['GTALGGGSLR'],GTALGGGSLR,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.11725.11725.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=11725""",10.469671249389648,0.9424508213996887,1536.24072265625,7,0.00262451171875,['TLDDLEEK'],TIDDLEEK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.13670.13670.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=13670""",13.988452911376953,0.9706538915634155,1713.6796875,9,0.0023193359375,['ALPNNQVLGK'],ALPNNQVLGK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.29947.29947.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=29947""",15.43852424621582,0.919549822807312,3159.948486328125,16,0.00634765625,['TTPPVLDSDGSFFLYSK'],TTPPVLDSDGSFFLYSK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.25474.25474.2 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=25474""",20.250802993774414,0.9022432565689087,2763.0458984375,0_10_17,0.0015869140625,['APSVTLFPPSSEELQANK'],APSVTLFPPSSEELQANK,
"20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.21976.21976.3 File:""20250515_EX1_UM1_plitt001_SA_EXT00_d5_T.raw"", NativeID:""controllerType=0 controllerNumber=1 scan=21976""",7.513821125030518,0.9057068228721619,2451.762451171875,13,0.0032958984375,['FNWYVDDVEVHNAK'],FNWYVDDVEVHNAK_3_Trp->Kynurenin,"3,Trp->Kynurenin[W];""#;