From b8bb67cfc97b6694dfc56c8a4e15e811344e3f20 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Tue, 10 Feb 2026 09:54:34 -0600 Subject: [PATCH] add benches --- benches/lumina_bench.rs | 46 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 benches/lumina_bench.rs diff --git a/benches/lumina_bench.rs b/benches/lumina_bench.rs new file mode 100644 index 0000000..65ee6c1 --- /dev/null +++ b/benches/lumina_bench.rs @@ -0,0 +1,46 @@ +#![allow(unused)] +fn main() { + use std::{collections::HashMap, option::Option, path::PathBuf}; + + use criterion::{ + Criterion, black_box, criterion_group, criterion_main, + }; + use lumina::core::songs::test::*; + use lumina::core::songs::*; + + pub fn test_song(id: i32) -> Song { + let lyrics = "Some({Verse(number:4):\"Our Savior displayed\\nOn a criminal\\'s cross\\n\\nDarkness rejoiced as though\\nHeaven had lost\\n\\nBut then Jesus arose\\nWith our freedom in hand\\n\\nThat\\'s when death was arrested\\nAnd my life began\\n\\nThat\\'s when death was arrested\\nAnd my life began\",Intro(number:1):\"Death Was Arrested\\nNorth Point Worship\",Verse(number:3):\"Released from my chains,\\nI\\'m a prisoner no more\\n\\nMy shame was a ransom\\nHe faithfully bore\\n\\nHe cancelled my debt and\\nHe called me His friend\\n\\nWhen death was arrested\\nAnd my life began\",Bridge(number:1):\"Oh, we\\'re free, free,\\nForever we\\'re free\\n\\nCome join the song\\nOf all the redeemed\\n\\nYes, we\\'re free, free,\\nForever amen\\n\\nWhen death was arrested\\nAnd my life began\\n\\nOh, we\\'re free, free,\\nForever we\\'re free\\n\\nCome join the song\\nOf all the redeemed\\n\\nYes, we\\'re free, free,\\nForever amen\\n\\nWhen death was arrested\\nAnd my life began\",Other(number:99):\"When death was arrested\\nAnd my life began\\n\\nThat\\'s when death was arrested\\nAnd my life began\",Verse(number:2):\"Ash was redeemed\\nOnly beauty remains\\n\\nMy orphan heart\\nWas given a name\\n\\nMy mourning grew quiet,\\nMy feet rose to dance\\n\\nWhen death was arrested\\nAnd my life began\",Verse(number:1):\"Alone in my sorrow\\nAnd dead in my sin\\n\\nLost without hope\\nWith no place to begin\\n\\nYour love made a way\\nTo let mercy come in\\n\\nWhen death was arrested\\nAnd my life began\",Chorus(number:1):\"Oh, Your grace so free,\\nWashes over me\\n\\nYou have made me new,\\nNow life begins with You\\n\\nIt\\'s Your endless love,\\nPouring down on us\\n\\nYou have made us new,\\nNow life begins with You\"})".to_string(); + let verse_map: Option> = + ron::from_str(&lyrics).unwrap(); + Song { + id, + title: "Death Was Arrested".to_string(), + lyrics: Some(lyrics), + author: Some( + "North Point Worship".to_string(), + ), + ccli: None, + audio: Some("file:///home/chris/music/North Point InsideOut/Nothing Ordinary, Pt. 1 (Live)/05 Death Was Arrested (feat. Seth Condrey).mp3".into()), + verse_order: Some(vec!["Some([Chorus(number:1),Intro(number:1),Other(number:99),Bridge(number:1),Verse(number:4),Verse(number:2),Verse(number:3),Verse(number:1)])".to_string()]), + background: Some(Background::try_from("file:///home/chris/nc/tfc/openlp/Flood/motions/Ocean_Floor_HD.mp4").unwrap()), + text_alignment: Some(TextAlignment::MiddleCenter), + font: Some("Quicksand Bold".to_string()), + font_size: Some(80), + stroke_size: None, + verses: Some(vec![VerseName::Chorus { number: 1 }, VerseName::Intro { number: 1 }, VerseName::Other { number: 99 }, VerseName::Bridge { number: 1 }, VerseName::Verse { number: 4 }, VerseName::Verse { number: 2 }, VerseName::Verse { number: 3 }, VerseName::Verse { number: 1 } + ]), + verse_map, + ..Default::default() + } + } + + pub fn criterion_benchmark(c: &mut Criterion) { + let song = test_song(); + c.bench_function("fib 20", |b| { + b.iter(|| fibonacci(black_box(20))) + }); + } + + criterion_group!(benches, criterion_benchmark); + criterion_main!(benches); +}