use std::hint::black_box; use criterion::{criterion_group, criterion_main, Criterion}; use spyglys::contents_to_interpreter; const WORDS: [&str; 319] = [ "pamiršti", "pasišokti", "dainuoti", "sustabdyti", "eiti", "bet", "blemba", "abejoti", "abydyti", "abrakuoti", "abuojėti", "adyti", "aidinti", "aiškinti", "akcentuoti", "akėti", "alsuoti", "antsivalgyti", "apdaryti", "apgailestauti", "apgalėti", "apgauti", "apipjaustyti", "ir", "apkabinti", "apkalbėti", "ir", "apkaltinti", "ir", "apkeliauti", "ir", "aplaižyti", "ir", "apmirti", "ir", "apniukti", "apniūkti", "aprašyti", "apsakyti", "apsaugoti", "apsimesti", "apsiūti", "apskaičiuoti", "aptarti", "aptikti", "apvalgyti", "apžiūrėti", "ardyti", "arti", "atakuoti", "ateiti", "atidaryti", "atiduoti", "atkalbėti", "atkeliauti", "atlikti", "atmesti", "atnešti", "atrasti", "atrodyti", "atsakyti", "atsibosti", "žlugdyti", "kur", "pažaboti", "pilietė", "žuvėdra", "degus", "goda", "nuspėti", "telikti", "paprika", "pridengti", "saulėtekis", "pavaldumas", "įžymus", "gulti", "garbingai", "tramdyti", "išplauti", "gabumas", "ožys", "paristi", "vaiduoklis", "atsitraukti", "gyti", "fa", "elnias", "herojė", "tolygus", "praminti", "vena", "girtauti", "kartonas", "susukti", "pasivadinti", "išsitraukti", "terminuoti", "apvirsti", "savavališkai", "užmojis", "baidarė", "trispalvis", "įmokėti", "grietinėlė", "priverstinai", "klevas", "pilnametis", "apkalti", "plaukiojimas", "smiltynė", "ištvermė", "viadukas", "prikelti", "įdiegimas", "energinis", "gyvybiškai", "miškotvarka", "piligrimas", "kapsulė", "piktžolė", "perėmėjas", "spalvotas", "paskyra", "atsisukti", "pasivaikščiojimas", "priešraketinis", "dioksidas", "populiarinti", "dėjimas", "akademikas", "išsilieti", "aprėpti", "generatorius", "rotacija", "augalininkystė", "kapavietė", "tautodailininkas", "talka", "išmatuoti", "primityvus", "audituoti", "keblus", "užblokuoti", "vienkiemis", "kalvis", "smurtauti", "griežti", "smurtautojas", "pusšimtis", "numanyti", "išdaužti", "atsakomas", "starta", "beždžionė", "priešiškas", "vargonai", "sutvirtinti", "horizontas", "prieaugis", "analitinis", "pareiškėja", "sužeidimas", "barelis", "intelektualus", "kardas", "bagažinė", "triušis", "dešimtmetis", "juodaodis", "gervė", "vaistažolė", "optimizuoti", "atsiminti", "atsiprašyti", "atsirasti", "atsisėsti", "atsistebėti", "atsitikti", "atsitraukti", "atsižiūrėti", "atspindėti", "atverti", "atvykti", "augti", "aukoti", "ausčioti", "austi", "aušti", "auti", "badyti", "baidyti", "baigti", "balnoti", "balsuoti", "bandyti", "barti", "bauginti", "bausti", "belsti", "bendradarbiauti", "bendrauti", "berti", "besti", "bezdėti", "bėgti", "bijoti", "bildėti", "blefuoti", "blęsti", "bliauti", "bliežti", "blizgėti", "blogėti", "boikotuoti", "braidyti", "braukti", "brauti", "bręsti", "brėkšti", "brinkti", "bristi", "brukti", "bučiuoti", "budėti", "busti", "būti", "chujarinti", "čiaudėti", "čiulpt", "čiulpti", "čiuožti", "čiurlenti", "dainuoti", "dairytis", "dalinti", "dalyti", "dalyvauti", "daryti", "dažyti", "degti", "deklaruoti", "delbti", "dengti", "derėti", "dergėti", "dergti", "dėbti", "dėkoti", "dėstyti", "dėti", "didinti", "diegti", "dilti", "dingti", "dirbti", "dirginti", "dirti", "dygti", "dyrėti", "dobti", "dovanoti", "drausti", "drebėti", "drybsoti", "dumti", "duoti", "dupinuoti", "durti", "dūkinti", "dvokti", "džiaugtis", "egzistuoti", "eiti", "eksperimentuoti", "elgtis", "ėsti", "filmuoti", "finansuoti", "gadinti", "gailėti", "galabyti", "galėti", "galvoti", "gaminti", "gandėtis", "ganyti", "ganytis", "garbinti", "garėti", "gauti", "gąsti", "gedėti", "geibti", "geisti", "gelbėti", "gerbti", "gerinti", "gerti", "gesti", "giedoti", "gimdyti", "gimti", "ginti", "girdėti", "girdyti", "girgždėti", "girti", "gižti", "gydyti", "gyti", "gyventi", "glamonėti", "glemžti", "gobti", "gražinti", "grąžinti", "gręžti", "griauti", ]; fn run_benchmark(c: &mut Criterion) { c.bench_function("Simplify lithuanian verbs", |b| { b.iter(|| { let interpreter = contents_to_interpreter(include_str!("../examples/lithuanian.spyglys")).unwrap(); for word in WORDS { black_box( interpreter .run_function("remove_verb_prefix", black_box(word)) .unwrap(), ); black_box( interpreter .run_function("unreflexify", black_box(word)) .unwrap(), ); black_box( interpreter .run_function("root_verb", black_box(word)) .unwrap(), ); } }) }); } criterion_group!(benches, run_benchmark); criterion_main!(benches);